warnings.warn("allowed_domains accepts only domains, not URLs. Ignoring URL entry %s in allowed_doma


多頁面循環爬取數據拋出如下異常

warnings.warn("allowed_domains accepts only domains, not URLs. Ignoring URL entry %s in allowed_doma

  

代碼沒有報錯,只是輸出了第一層的Web的爬取結果。但是第二層沒有執行爬取。

問題分析
從日志來進行分析,沒有發現錯誤信息;第一層代碼爬取正確,但是第二層web爬取,沒有被執行,代碼的編寫應該沒有問題的。 
那問題是什么呢?會不會代碼沒有被執行呢?通過添加日志,但是對應的代碼並沒有執行,日志也被正常輸出。是不是被過濾或者攔截了,從而代碼沒有被執行? 
經過代碼審查之后,發現allowed_domains設置的問題,由於起設置不正確,導致其余的鏈接被直接過濾了。 
關於allowed_domains需要是一組域名,而非一組urls。

問題的解決
需要將之前的domain name修改一下:

allowed_domains = [‘http://www.heao.gov.cn/‘]

將起修改為:

allowed_domains = [‘heao.gov.cn’]

重新執行爬蟲,發現多個層次是可以被正確爬取的。

總結
關於scrapy是一整套的解決方案,其中很多的設置和配置需要通過不同的實例來反復理解和應用的,才能如魚得水,庖丁解牛般快速定位問題。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM