crawlSpider是根據(jù)鏈接提取器來(lái)獲取具體頁(yè)面數(shù)據(jù)
在普通的scrapy爬蟲(chóng)中,parse函數(shù)提前完當(dāng)前頁(yè)面數(shù)據(jù)之后獲取下一頁(yè)數(shù)據(jù)調(diào)用parse解析函數(shù),重新進(jìn)行發(fā)送請(qǐng)求
crawlSpider實(shí)際上可以理解為:鏈接提取器 從鏈接中能夠獲取具體數(shù)據(jù)
crawlSpider則是通過(guò)正則表達(dá)式進(jìn)行匹配只要是滿足某個(gè)等待的url都會(huì)對(duì)具體數(shù)據(jù)進(jìn)行爬取
增加了可以爬取數(shù)據(jù)的新的規(guī)則只要是滿足該規(guī)則就會(huì)對(duì)數(shù)據(jù)進(jìn)行提取,就是替代了scrapy.Request
創(chuàng)建爬蟲(chóng)項(xiàng)目 python -m scrapy startproject project_name
創(chuàng)建crawl爬蟲(chóng) python -m scrapy genspider spider_name url
運(yùn)行crawl爬蟲(chóng) python -m scrapy crawl spider_name
LinkExtractor 鏈接提取器通過(guò)鏈接來(lái)或許相應(yīng)的頁(yè)面數(shù)據(jù)
參數(shù)有:allow允許的url 只要是滿足該正則表達(dá)式的url地址即可允許訪問(wèn)和提取數(shù)據(jù)
deny禁止的url 所有滿足該正則表達(dá)式的url地址則不會(huì)被提取
allow_domain 允許的域名 只有在這里面指定的域名url才會(huì)被提取
deny_domain? 禁止的域名 所有在里面指定的域名不會(huì)被提取
restrict_xpath 嚴(yán)格的xpath 和allow共同過(guò)濾鏈接 具體查找某一個(gè)模塊中的鏈接
Rule 在網(wǎng)頁(yè)中提取的規(guī)則
參數(shù)有:link_extractor一個(gè)link對(duì)象用來(lái)定義爬取規(guī)則 也就是網(wǎng)頁(yè)鏈接
callback 定義的是爬取的網(wǎng)頁(yè)用哪個(gè)爬蟲(chóng)提取器的函數(shù)調(diào)用
follow? 指定該規(guī)則從response中提取的連接是否需要跟進(jìn)
process_links 從連接提取器過(guò)來(lái)的鏈接傳給process_links,用來(lái)過(guò)濾不需要爬取的鏈接
項(xiàng)目結(jié)構(gòu):

并且按照一定的正則表達(dá)式的規(guī)則
獲取當(dāng)前頁(yè)面的信息crawlSpider根據(jù)鏈接來(lái)獲取具體內(nèi)容

提取每頁(yè)數(shù)據(jù)或者進(jìn)行翻頁(yè)獲取數(shù)據(jù)


實(shí)現(xiàn)翻頁(yè)獲取數(shù)據(jù)分析截圖



啟動(dòng)爬蟲(chóng)文件
start.py

配置頁(yè)面
settings.py



數(shù)據(jù)存儲(chǔ)
pipelines.py


items.py

運(yùn)行結(jié)果截圖
控制臺(tái)結(jié)果截圖

json文件運(yùn)行結(jié)果截圖
