什麼時候到pipeline,什麼 時候到spider這個就不說了,這個是框架跳轉到的流程
關鍵是訪問之前要登入怎麼辦,資料還要注入呢
這是個列表,裡面就是爬取的鏈結了
我們前面爬取就只是寫了乙個,但是其實可以寫多個
鏈結又是怎麼訪問的呢
這東西你就可以手動提取鏈結返回了
這東西你就得好好注意了
從入參就可以發現,這東西必然和響應沒關係
因為這個是請求之前的東西
start_urls就是通過這個方法,把鏈結變成請求,然後才有後續故事的
預設就是他來解析的,大家都知道
所以流程是這樣的
0. start_urls:鏈結位址
1. start_reqeusts:鏈結變請求,開始訪問
2. paser_start_url:建立新請求
3. parse:解析網頁
這是預設情況,但是,有乙個東西那就很強大了
請求的指定解析方法
首先明確幾點
1. 任意返回:item或者request隨便返回,排程器會自動識別和下發
2. 任意指定:解析方法在於callback,預設parse,但是可以任意指定
所以,其實我們可以不按照它規定的流程走,解析方法也不一定只有乙個
多個解析方法的話,同乙個網頁我們就可以爬取多種組合的資源,而不是只有一種
換言之,item不一定所有的資料都要填充完畢
item的清單,我們可以部分進行組合,指定多樣的解析,乙個網頁同時分兩步,爬取兩類資源
0. 所以,工程裡面可以不要start_urls
1. 我們自己重寫start_reqeusts,構造請求,指定解析方法,比如login,然後返回請求
2. 然後login中進行引數的注入,完成登入操作,再指定解析方法,比如parse_source,返回新請求
3. 最後,parse_source,抓取資料
基於這兩點的配合
1. item和request的自動識別
2. callback的任意指定
只要進門了start_reqeusts,後面的流程 自己任意定義
不論跳轉還是引數注入
同時,不要忘記新發現並且可擴充套件的乙個東西--數量
1. 請求的數量
2. 資源的數量
所以1. start_urls中可以指定多個鏈結
2. start_request中可以構造多個請求
3. parse可以新增多個請求
4. parse可以解析多份資源
5. login中可以更換使用者登入,作為新遮蔽方式
很簡單,但是擴充套件性很強大,自定義程度灰常高
在進行登入爬取一類任務中不可或缺,十分重要
最後一句,別忘了cookie,要不登入一次後面都不認得你了
登入爬取值得試試
scrapy 爬取小說
速度是相當的快的 爬取整站的 最後結果儲存至mongodb資料庫 pycharm開發還是很好用的 建立專案 scrapy startproject daomubiji 執行專案 scrapy crawl daomubi settings default request headers items t...
scrapy爬取噹噹
import scrapy from items import dangdangitem class ddspider scrapy.spider name dd allowed domains dangdang.com start urls def parse self,response 使用xp...
scrapy 爬取桌布
scrapy startproject bizhi scrapy genspider bizhispider www.netbian.com 要爬取的桌布 網域名稱www.netbian.com 新建python檔案run.py from scrapy import cmdline cmdline....