python中scrapy點選按鈕
阿新 • • 發佈:2019-01-26
最初遇到的問題的是在用scrapy爬取微博時需要按照指定關鍵字來爬取特定微博,主要還是解決需要輸入關鍵字然後點選搜尋按鈕的問題。於是:
首先
找了scrapy的官方文件,發現有FormRequest.from_request()函式,於是試著用了,官方文件說函式預設會找到第一個submit的按鈕,試了下沒有結果,然後把clickdata設成d字典{'name':'button_name'},button_name為按鈕的名字,還是沒有任何反應(不知道是不是我的問題)。
然後
因為之前有用過selenium寫過簡單的爬蟲,但是爬取的資料到一定程度賬號就會被禁止。於是轉成scrapy準備用多賬號來對付反爬蟲。selenium是完全模擬瀏覽器的行為,click功能自然是與生俱來。所以萌生了,使用selenium來實現點選功能。
但是,這樣也需要先登入然後才能實現搜尋。怎麼登入呢?cookies!於是想利用scrapy的cookies來登入selenium賬號,經過了一段時間的探索,最終還是以失敗告終。(“error message:cannot only add cookies in current domain”)
最後
在無奈之際,手動搜尋了微博,然後點選到下一頁。發現連結字尾page=2(當前為第二頁),原來第一頁後面的連結都是隱藏的,發現這個規律之後,就用規則的方法實現的微博的搜尋和頁面的跳轉!
換個視角會發現世界很美好!