使用Scrapy爬取豆瓣電影Top250
簡介
豆瓣經典電影Top250部排行是經典的爬蟲案例,屬于分頁式總入口,詳情頁有限發(fā)散層級(延伸一級就夠)的梳狀網頁結構。無需登錄即可獲取頁面信息,網頁屬靜態(tài)內容,沒有交互及異步加載,可直接請求并解析。
站點
https://movie.douban.com/top250
爬取目標
從電影目錄收集基本標題及詳情頁鏈接,依次翻頁收集所有排名電影。
在各詳情頁收集電影信息及封面圖片。
分析網頁結構
電影列表頁面


電影詳情頁面
代碼設計
使用scrapy命令新建項目
得到如下目錄結構

對settings.py的修改:
ROBOTSTXT_OBEY = False,因為默認scrapy會下載robot.txt文件,以分析并遵守站點的爬蟲限制規(guī)則。而豆瓣在對提供了無效User-Agent的請求是返回403禁止的,需要將此選項關閉。
DOWNLOAD_DELAY = 3,開啟限制請求頻率,以免影響網站運營,默認是各請求間有3秒等待
scrapy shell的使用,可輔助調試,查找元素
頁面信息提取說明,有些字段dom節(jié)點的寫法不統(tǒng)一,需要特殊處理,為了方便維護,使用專門的extract_xxx函數(shù)封裝,以后無論頁面如何變動,調用方無需改動,只需要更新相關的extract函數(shù)
執(zhí)行
也可以用main的方式去啟動,方便斷點調試
標簽: