多頁面循環爬取數據拋出如下異常 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是一整套的解決方案,其中很多的設置和配置需要通過不同的實例來反復理解和應用的,才能如魚得水,庖丁解牛般快速定位問題。