按照官網(wǎng)教程走一遍
創(chuàng)建項(xiàng)目
scrapy startproject tutorial
腳本編輯
(使用scrapy genspider task_name url
命令自動(dòng)生成任務(wù)腳本诈闺,但自己手寫一遍更利于理解)
爬蟲腳本位于項(xiàng)目中的spider/目錄中,任務(wù)流程封裝在一個(gè)類中对扶,該類繼承自scrapy.Spider
類妙黍。
- 任務(wù)類中的屬性/方法:
- name:同一項(xiàng)目下的各爬蟲任務(wù)name屬性必須唯一
- start_requests(self):通過
scrapy.Reuqest(url=url, callback=parse)
生成請求碾篡;不過通常情況下砍的,可以使用start_urls
這一類屬性進(jìn)行替代 - parse(self, response):對請求結(jié)果進(jìn)行解析/處理
交互環(huán)境
scrapy shell "http://quotes.toscrape.com"
注意:在windows操作系統(tǒng)下,url必須使用雙引號(hào)
響應(yīng)實(shí)體的解析
- response.css()解析
- response.xpath()解析
不過官方更推薦xpath方法解析
數(shù)據(jù)儲(chǔ)存
scrapy crawl quotes -o file_name.json
保存為json格式有一個(gè)歷史遺留問題氨肌,多次執(zhí)行是以追加的形式寫入文件中的
進(jìn)一步爬取
在parse()
方法中
scrapy.Request(url, callback=self.parse)
-
response.follow(relative_url, callback=self.parse)
鸿秆,支持相對路徑的解析
爬蟲參數(shù)
scrapy crawl task_name -o file_name.json -a para=sth
-a
后邊的參數(shù)會(huì)成傳入爬蟲任務(wù)類中的__init__()
方法中,c