校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > python爬蟲scrapy基于CrawlSpider類的全站數據爬取示例解析

python爬蟲scrapy基于CrawlSpider類的全站數據爬取示例解析

熱門標簽:高德地圖標注字母 千呼ai電話機器人免費 鎮江人工外呼系統供應商 400電話辦理費用收費 申請辦個400電話號碼 騰訊地圖標注有什么版本 柳州正規電銷機器人收費 外呼系統前面有錄音播放嗎 深圳網絡外呼系統代理商

一、CrawlSpider類介紹

1.1 引入

使用scrapy框架進行全站數據爬取可以基于Spider類,也可以使用接下來用到的CrawlSpider類?;赟pider類的全站數據爬取之前舉過栗子,感興趣的可以康康

scrapy基于CrawlSpider類的全站數據爬取

1.2 介紹和使用

1.2.1 介紹

CrawlSpider是Spider的一個子類,因此CrawlSpider除了繼承Spider的特性和功能外,還有自己特有的功能,主要用到的是 LinkExtractor()rules = (Rule(LinkExtractor(allow=r'Items/'), callback='parse_item', follow=True),)

LinkExtractor()鏈接提取器
LinkExtractor()接受response對象,并根據allow對應的正則表達式提取響應對象中的鏈接

link = LinkExtractor(
# Items只能是一個正則表達式,會提取當前頁面中滿足該"正則表達式"的url	
  allow=r'Items/'
)

rules = (Rule(link, callback='parse_item', follow=True),)規則解析器
按照指定規則從鏈接提取器中提取到的鏈接中解析網頁數據
link:是一個LinkExtractor()對象,指定鏈接提取器
callback:回調函數,指定規則解析器(解析方法)解析數據
follow:是否將鏈接提取器繼續作用到鏈接提取器提取出的鏈接網頁

import scrapy
# 導入相關的包
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule

class TextSpider(CrawlSpider):
 name = 'text'
 allowed_domains = ['www.xxx.com']
 start_urls = ['http://www.xxx.com/']

# 鏈接提取器,從接受到的response對象中,根據item正則表達式提取頁面中的鏈接
	link = LinkExtractor(allow=r'Items/')
	link2 = LinkExtractor(allow=r'Items/')
# 規則解析器,根據callback將鏈接提取器提取到的鏈接進行數據解析
# follow為true,則表示將鏈接提取器繼續作用到鏈接提取器所提取到的鏈接頁面中
# 故:在我們提取多頁數據時,若第一頁對應的網頁中包含了第2,3,4,5頁的鏈接,
# 當跳轉到第5頁時,第5頁又包含了第6,7,8,9頁的鏈接,
# 令follow=True,就可以持續作用,從而提取到所有頁面的鏈接
 rules = (Rule(link, callback='parse_item', follow=True),
 		Rule(link2,callback='parse_content',follow=False))
 # 鏈接提取器link使用parse_item解析數據
	def parse_item(self, response):
 item = {}
 
 yield item
 # 鏈接提取器link2使用parse_content解析數據
	def parse_content(self, response):
		item = {}
		
		yield item

1.2.2 使用

創建爬蟲文件:除了創建爬蟲文件不同外,創建項目和運行爬蟲使用的命令和基于Spider類使用的命令相同

scrapy genspider crawl -t spiderName www.xxx.com 

二、案例:古詩文網全站數據爬取

爬取古詩文網首頁古詩的標題,以及每一首詩詳情頁古詩的標題和內容。
最后將從詳情頁提取到的古詩標題和內容進行持久化存儲

2.1 爬蟲文件

import scrapy
from scrapy.linkextractors import LinkExtractor

from scrapy.spiders import CrawlSpider, Rule
from gushiPro.items import GushiproItem,ContentItem

class GushiSpider(CrawlSpider):
 name = 'gushi'
 #allowed_domains = ['www.xxx.com']
 start_urls = ['https://www.gushiwen.org/']

 # 鏈接提取器:只能使用正則表達式,提取當前頁面的滿足allow條件的鏈接
 link = LinkExtractor(allow=r'/default_\d+\.aspx')

 # 鏈接提取器,提取所有標題對應的詳情頁url
 content_link = LinkExtractor(allow=r'cn/shiwenv_\w+\.aspx')
 rules = (
 # 規則解析器,需要解析所有的頁面,所有follow=True
 Rule(link, callback='parse_item', follow=True),

 # 不需要寫follow,因為我們只需要解析詳情頁中的數據,而不是詳情頁中的url
 Rule(content_link, callback='content_item'),
 )

 # 解析當前頁面的標題
 def parse_item(self, response):
 p_list = response.xpath('//div[@class="sons"]/div[1]/p[1]')

 for p in p_list:
 title = p.xpath('./a//text()').extract_first()
 item = GushiproItem()
 item['title'] = title
 yield item
 
 # 解析詳情頁面的標題和內容
 def content_item(self,response):
 # //div[@id="sonsyuanwen"]/div[@class="cont"]/div[@class="contson"]
 # 解析詳情頁面的內容
 content = response.xpath('//div[@id="sonsyuanwen"]/div[@class="cont"]/div[@class="contson"]//text()').extract()
 content = "".join(content)
 # # 解析詳情頁面的標題
 title = response.xpath('//div[@id="sonsyuanwen"]/div[@class="cont"]/h1/text()').extract_first()
 # print("title:"+title+"\ncontent:"+content)
 item = ContentItem()
 item["content"] = content
 item["title"] = title
 # 將itme對象傳給管道
 yield item

2.2 item文件

import scrapy

# 不同的item類是獨立的,他們可以創建不同的item對象
class GushiproItem(scrapy.Item):
 # define the fields for your item here like:
 # name = scrapy.Field()
 title = scrapy.Field()

class ContentItem(scrapy.Item):
 title = scrapy.Field()
 content = scrapy.Field()

2.3 管道文件

from itemadapter import ItemAdapter

class GushiproPipeline:
 def __init__(self):
 self.fp = None

 def open_spider(self,spider):
 self.fp = open("gushi.txt",'w',encoding='utf-8')
 print("開始爬蟲")

 def process_item(self, item, spider):
 # 從詳情頁獲取標題和內容,所以需要判斷爬蟲文件中傳來的item是什么類的item
 # item.__class__.__name__判斷屬于什么類型的item
 if item.__class__.__name__ == "ContentItem":
 content = "《"+item['title']+"》",item['content']
 content = "".join(content) 
 print(content)
 self.fp.write(content)
 return item

 def close_spider(self,spider):
 self.fp.close()
 print("結束爬蟲")

2.4 配置文件

2.5 輸出結果

到此這篇關于python爬蟲scrapy基于CrawlSpider類的全站數據爬取示例解析的文章就介紹到這了,更多相關python爬蟲scrapy數據爬取內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python scrapy項目下spiders內多個爬蟲同時運行的實現
  • Python爬蟲Scrapy框架CrawlSpider原理及使用案例
  • Python Scrapy框架:通用爬蟲之CrawlSpider用法簡單示例
  • Python爬蟲框架之Scrapy中Spider的用法

標簽:合肥 郴州 大慶 哈爾濱 海南 平頂山 烏蘭察布 烏蘭察布

巨人網絡通訊聲明:本文標題《python爬蟲scrapy基于CrawlSpider類的全站數據爬取示例解析》,本文關鍵詞  python,爬蟲,scrapy,基于,CrawlSpider,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python爬蟲scrapy基于CrawlSpider類的全站數據爬取示例解析》相關的同類信息!
  • 本頁收集關于python爬蟲scrapy基于CrawlSpider類的全站數據爬取示例解析的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    亚洲影院理伦片| 欧美一级视频精品观看| 日本伊人精品一区二区三区观看方式| 日韩欧美国产麻豆| 99久久精品免费| 免费在线看成人av| 亚洲摸摸操操av| 26uuuu精品一区二区| 欧美中文字幕一区二区三区| 久久丁香综合五月国产三级网站| 伊人开心综合网| 欧美激情一区二区| 欧美不卡在线视频| 欧美精品乱人伦久久久久久| 91网页版在线| 盗摄精品av一区二区三区| 日本网站在线观看一区二区三区 | 成人福利视频在线| 日本aⅴ精品一区二区三区| 亚洲免费资源在线播放| 国产精品色一区二区三区| 日韩欧美美女一区二区三区| 欧美日韩的一区二区| 色偷偷久久一区二区三区| 福利一区二区在线| 老司机精品视频在线| 亚洲丶国产丶欧美一区二区三区| 日本一二三不卡| 国产视频一区二区在线| 精品美女一区二区| 日韩一区二区三区三四区视频在线观看 | 欧美午夜不卡视频| 99精品久久只有精品| 丁香天五香天堂综合| 狠狠色2019综合网| 黄色小说综合网站| 久久www免费人成看片高清| 五月婷婷综合网| 午夜精品久久久久久久99樱桃| 亚洲精品成a人| 亚洲最大成人网4388xx| 亚洲精品一二三| 亚洲欧美激情一区二区| 中文字幕日韩一区| 亚洲欧美一区二区三区孕妇| 亚洲欧美一区二区久久| 亚洲欧洲成人自拍| 亚洲三级在线看| 亚洲乱码国产乱码精品精98午夜| 亚洲精品中文在线观看| 尤物av一区二区| 亚洲国产日韩一级| 日韩电影在线免费看| 久久超碰97人人做人人爱| 国产精品中文有码| 成人免费毛片片v| 99re亚洲国产精品| 欧美在线观看视频在线| 717成人午夜免费福利电影| 91精品免费观看| 日韩精品自拍偷拍| 国产日韩精品一区| 欧美国产精品一区| 亚洲精品v日韩精品| 五月天精品一区二区三区| 麻豆精品一区二区三区| 韩国一区二区视频| 99久久精品国产一区| 欧美男同性恋视频网站| 欧美成人女星排行榜| 国产精品久久久久国产精品日日| 亚洲日本电影在线| 日本免费新一区视频| 国产精品主播直播| 欧美性猛交xxxx黑人交| 欧美精品一区二区三区久久久| 欧美激情中文不卡| 亚洲大片一区二区三区| 美女mm1313爽爽久久久蜜臀| 国内偷窥港台综合视频在线播放| eeuss鲁片一区二区三区在线看| 欧美中文字幕久久| 精品国产伦一区二区三区观看方式 | 午夜电影一区二区三区| 激情五月播播久久久精品| 色噜噜偷拍精品综合在线| 欧美一级片免费看| 国产精品久久久久久久岛一牛影视 | 亚洲精品中文在线影院| 免费日韩伦理电影| 99re66热这里只有精品3直播| 3d动漫精品啪啪1区2区免费 | 欧美日韩一区二区三区不卡| 欧美成人三级在线| 亚洲在线视频一区| 国产一区二区三区四区五区入口 | 日本精品一级二级| 精品动漫一区二区三区在线观看| 亚洲欧美色综合| 精品一区二区三区视频在线观看| 一本色道a无线码一区v| 2021中文字幕一区亚洲| 亚洲成人自拍偷拍| 波多野洁衣一区| 欧美mv日韩mv国产| 亚洲一区二区三区爽爽爽爽爽| 国产精品99久久久久久久女警| 欧美日韩免费观看一区三区| 国产精品看片你懂得 | 在线一区二区三区四区| 久久久久久**毛片大全| 日韩国产精品久久久| 在线国产亚洲欧美| 国产精品免费视频网站| 国内精品嫩模私拍在线| 7777精品伊人久久久大香线蕉完整版| 亚洲欧美偷拍卡通变态| 不卡视频一二三四| 久久久国产午夜精品| 久久精品国产精品亚洲综合| 欧美狂野另类xxxxoooo| 一区二区三区不卡在线观看| 成人av免费网站| 国产精品网站一区| 国产成人无遮挡在线视频| 欧美成人综合网站| 男男gaygay亚洲| 精品日韩在线一区| 免费xxxx性欧美18vr| 91.成人天堂一区| 亚洲成人资源在线| 91精品免费在线观看| 日韩电影免费在线看| 欧美精品欧美精品系列| 日韩电影免费一区| 欧美大胆一级视频| 九色porny丨国产精品| 欧美岛国在线观看| 国产呦精品一区二区三区网站| 精品福利视频一区二区三区| 国产一区二区三区四| 国产三级精品三级| 成人免费福利片| 亚洲欧美综合另类在线卡通| 成人免费视频免费观看| 亚洲天堂a在线| 色八戒一区二区三区| 亚洲福中文字幕伊人影院| 欧美日韩美女一区二区| 婷婷激情综合网| 欧美v日韩v国产v| 国产精品一二三四区| 欧美韩国日本不卡| 色呦呦日韩精品| 亚洲综合免费观看高清完整版在线 | 亚洲aaa精品| 91精品国产综合久久久久久久| 麻豆91精品视频| 久久久久成人黄色影片| 不卡的av在线播放| 亚洲一二三区不卡| 欧美一级黄色大片| 丁香六月久久综合狠狠色| 亚洲精品日韩一| 91精品国产黑色紧身裤美女| 国产酒店精品激情| 亚洲激情校园春色| 欧美一卡2卡三卡4卡5免费| 成人午夜大片免费观看| 亚洲高清久久久| 国产无人区一区二区三区| 91蜜桃免费观看视频| 日韩不卡一区二区三区| 国产欧美一区二区精品性 | 久久亚洲一区二区三区四区| 国产91丝袜在线18| 一区二区三区高清| 26uuu色噜噜精品一区| 99免费精品视频| 青青草伊人久久| 国产精品国产三级国产a | 久久精品亚洲麻豆av一区二区 | 亚洲第一福利视频在线| 久久一区二区视频| 欧美日韩亚洲不卡| 国产一区二区三区四区五区入口| 亚洲一区二区精品久久av| 久久久精品国产免大香伊| 色婷婷一区二区| 国产精品系列在线观看| 五月婷婷久久综合| 亚洲欧美综合另类在线卡通| 日韩免费电影网站| 色猫猫国产区一区二在线视频| 国产美女一区二区三区| 亚洲第一在线综合网站| 日韩一区日韩二区| 久久久www免费人成精品| 日韩一区二区视频在线观看| 97se亚洲国产综合在线|