簡介
現在在整理原來寫過的東西,這是一個比較簡單的爬蟲項目,就是進行動態頁面的爬取,主要的難點是實現模擬點擊。
查看目標網站
查看目標網站:
但是這不是我們的目標,我們要爬取的是點擊熱搜榜之後的熱搜話題:
是這樣的:
然後才能爬取,所以這是一個爬取動態頁面的項目。
這裏我用到了selenium庫進行模擬操作,首先使用該庫模擬點擊然後進行數據的爬取。
要在scrapy中爬取動態頁面需要添加中間件,也就是說再middleware中添加模擬操作。
代碼部分
添加如下代碼:
DAYCOUNT設置在setting.py中作爲一個全局變量,用來控制爬取幾天的熱搜。
這裏使用的是xpath用來定位:
然後右鍵:
然後我們能希望能找到歷史的熱搜數據,所有又模擬了多次鼠標點擊:
大致的順序就是先點擊”熱搜榜”,然後點擊”實時”,再然後選擇”熱搜歷史”。分別對應下面代碼中的三次模擬點擊事件:
每一次操作爲了等待網頁反應的時間所以都使用了sleep函數。
然後爲了能得到更多的數據,還模擬了鼠標下拉的這一個動作:
最後得到網頁源代碼,然後返回html文件。
這就是中間件模塊的全部工作。
然後是parse解析函數,這裏同樣使用了xpath的方法,具體操作見上述對於xpath的copy操作,然後我們選擇‘title’‘hotcounts’和‘rank’這三個維度的數據,具體的定義在item.py中已經寫完。
爲了能做到循環爬取固定天數,所以還有循環機制:
存儲
數據的存儲由pipeline模塊完成:
我直接寫入到txt文件下。
運行後得到結果:
哈哈,從我爬的結果就知道這是比較久之前的了,做個小總結,也和大家共勉~~