Python scrapy基礎教程(三)

HuangZhang_123發表於2017-04-12

歡迎加入學習交流QQ群:657341423


爬蟲最基本的就是對網頁的post和get,也就是http的post和get,這樣就可以動態實現自己想要那個網頁的資料。

scrapy的post和get使用是有一定限制的:
1.如果start_urls不是post介面,可以通過start_urls裡面找到介面路徑,然後在FormRequest
2.如果start_urls是post介面,只能重定義start_requests方法,定義為post方式。
3.如果get帶引數,直接在url引數化即可。

Get帶引數
這裡寫圖片描述
其中,Spider和CrawlSpider都適用
這個比較簡單
start_urls帶引數也是可以的

如果start_urls是post介面
這裡寫圖片描述
因為start_requests開始定義是get方法,如果介面是post的,會返回405錯誤碼,所以要重寫start_requests
這裡寫圖片描述

如果start_urls不是post介面
這裡寫圖片描述
start_urls為一個接收任務介面,為get,程式必需執行獲取到這個start_urls的內容後,在parse方法才執行post。
注意:start_urls的連結和parse裡面的turl必需有關聯才行,如果我把start_urls改為[‘https://www.baidu.com/’],parse是post不到的。
就是說,scrapy執行必需執行一次start_requests的方法才執行到自己寫的方法裡去。

scrapy與requests庫的post和get對比:
scrapy的post和get在寫法上比requests庫的要複雜一點。
scrapy必需按照流程一步一步走,雖然可以變動,但大體都是框架式的程式碼,靈活性低。基本流程:start_urls->start_requests->parse(Spider模式下,CrawlSpider差不了多小)
scrapy分散式爬蟲,工作分工明確,而且框架結構,便於維護和管理,利於大型的爬蟲

相關文章