Scrapy爬取頁面錯誤原因彙總
阿新 • • 發佈:2018-11-17
錯誤原因彙總
1.網址錯誤
2.縮排問題
3.網頁有反爬蟲
反爬蟲解決方案:
- 基本:請求頭user-agent
- IP代理
- 改機器人協議以及cookie
ROBOTSTXT_OBEY = False
COOKIES_ENABLED = False - 設定延遲
DOWNLOAD_DELAY = 3 - 在分段函式中所要爬取的url有反爬蟲
解決方案:在請求的url後面新增標頭檔案如以下,標頭檔案可以從問題三的附錄中隨機取
url獲取出錯示例
url = response.selector.xpath(’//*[@class=‘lbf-pagination-item-list’]//li[9]/a/@href’).extract()[0]
print(url)
yield scrapy.Request(url, callback=self.parse)
如上圖程式碼,scrapy 爬蟲過程中,在實現翻頁時,偶然遇見如下報錯:
Missing scheme in request url:
百度許多同學總結了一下原因:
1.requests版本太低:
2.scrapy.Resquest(URL),url 應該是一個list…
但是實際問題並不是這些原因所致
經過反覆研究,發現 上圖程式碼中獲取的到 url 連結內部,用“;”替代了“&”。因此scrapy 不能識別 該網頁所致。
解決辦法:
1.改用URL 拼接而成的url list 做yield 呼叫self.parse
2.頁面本來可能純在一些問題。等待頁面更新,正常頁面連結不應該使用“;”(剛開始使用1方法實現了。後來,準備用原始程式碼記錄錯誤時,發現頁面已經更新為“&”,該報錯已經不純在)。
相關文件:
https://blog.csdn.net/weixin_41931602/article/details/80200695