日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Scrapy爬取斗破苍穹漫画

發布時間:2023/12/14 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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如下:

代碼如下(示例):
修改以下部分

# Configure item pipelines # See https://docs.scrapy.org/en/latest/topics/item-pipeline.html ITEM_PIPELINES = {'huaqiangu.pipelines.HuaqianguPipeline': 300, }

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文件:(輸入下面代碼)

from scrapy import cmdline cmdline.execute('scrapy crawl spider --nolog'.split())

本人之前用cmd命令已經崩潰了,強烈推薦大家使用第二種方式,簡直是太舒服了。

總結

以上是生活随笔為你收集整理的Scrapy爬取斗破苍穹漫画的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。