Scrapy爬取斗破苍穹漫画
生活随笔
收集整理的這篇文章主要介紹了
Scrapy爬取斗破苍穹漫画
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Scrapy爬取斗破蒼穹漫畫
文章目錄
- Scrapy爬取斗破蒼穹漫畫
- 前言
- 一、創建項目、創建爬蟲
- 二、實戰
- 1.items.py如下:
- 2.settings.py如下:
- 3.pipelines.py如下:
- 4.spider.py如下:
- 三、運行結果
- 總結
前言
原本想爬取斗羅大陸,項目都創建好了,結果不小心點開了斗破蒼穹,太好看了,沒有辦法便決定爬取斗破蒼穹。附上爬取的網頁地址:https://www.mkzhan.com/49733/
一、創建項目、創建爬蟲
詳細創建請參考之前博客或百度自學。
(創建一個名為douluodalu的項目)
cmd命令:scrapy startproject douluodalu
(創建一個名為spider的爬蟲)
cmd命令:scrapy genspider -t basic spider mkzhan.com
二、實戰
1.items.py如下:
代碼如下(示例):
import scrapyclass DouluodaluItem(scrapy.Item):# define the fields for your item here like:# name = scrapy.Field()title = scrapy.Field()img = scrapy.Field()url = scrapy.Field()2.settings.py如下:
代碼如下(示例):
修改以下部分
3.pipelines.py如下:
這里對獲得到的圖片的url進行爬取,保存到本地文件夾下:
代碼如下(示例):
import os import requests import sysclass DouluodaluPipeline:def process_item(self, item, spider):try:path = './{}'.format(item['title'][0])os.mkdir(path)#創建一個目錄名是爬取的漫畫章節#目錄下保存漫畫for j in range(len(item['img'])):content3 = requests.get(url=item['img'][j])with open(file=path + '/{}.jpg'.format(j + 1), mode='wb') as f:f.write(content3.content)f.close()except:print('已經存在相同的文件夾了,程序無法在繼續進行!')sys.exit()4.spider.py如下:
代碼如下(示例):
import scrapy from douluodalu.items import DouluodaluItem import re from scrapy.http import Requestclass SpiderSpider(scrapy.Spider):name = 'spider'allowed_domains = ['mkzhan.com']start_urls = ['https://www.mkzhan.com/49733/']def parse(self, response):item = DouluodaluItem()#獲取所有章節的urlurl_all = []for j in response.xpath("//a[@class='j-chapter-link']/@data-hreflink").extract():url_all.append("https://www.mkzhan.com" + j)url_all.reverse()#列表逆序item['url'] = url_all# print(item['title'])# print(item['url'])#進行回調函數for x in range(len(item['url'])):yield scrapy.Request(item['url'][x], callback=self.parse1)#獲取漫畫的地址和標題def parse1(self, response):item = DouluodaluItem()item['img'] = response.xpath("//img[@class='lazy-read']/@data-src").extract()item['title'] = response.xpath("//a[@class='last-crumb']/text()").extract()yield item# print(item['img'])# print(item['title'])三、運行結果
總結
最后雖然爬取漫畫成功,但是運行后我覺得是比較慢的,大概等了十幾分鐘爬取完。
我們在使用scrapy運行爬蟲的時候有兩種方法。
第一種是在命令行輸入:scrapy crawl 爬蟲名
第二種是創建一個.py文件:(輸入下面代碼)
本人之前用cmd命令已經崩潰了,強烈推薦大家使用第二種方式,簡直是太舒服了。
總結
以上是生活随笔為你收集整理的Scrapy爬取斗破苍穹漫画的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: word里画的流程图怎么全选_Word中
- 下一篇: Runtime library, CRT