Python scrapy 常見問題及解決 【遇到的坑】

來源:互聯網
上載者:User

標籤:協議   取數   發送   頁面   檔案中   post請求   false   解決方案   truncate   

1. 爬蟲出現Forbidden by robots.txt

解決方案:setting.py ROBOTSTXT_OBEY = True 改成False

原因:scrapy抓包時的輸出就能發現,在請求我們設定的url之前,它會先向伺服器根目錄請求一個txt檔案

這個檔案中規定了本網站允許的爬蟲機器爬取的範圍(比如你不想讓百度爬取你的頁面,就可以通過robot來限制),因為預設scrapy遵守robot協議,所以會先請求這個檔案查看自己的許可權,而我們現在訪問這個url得到

 1 User-agent: * 2 Disallow: / 

在setting改變ROBOTSTXT_OBEY為False,讓scrapy不要遵守robot協議,之後就能正常爬取

對於使用robot協議的網站,只需要我們的爬蟲不遵守該協議,就可以了,但是對於防止爬蟲爬取,網站還有檢查要求標頭、檢查ip等等手段,還需要其他的相應處理。

2. 如何進一步擷取資料並同時儲存

解決方案:參考文章——scrapy爬取新浪網導航頁所有大類、小類、小類裡的子連結,以及子連結頁面的新聞內容

3. ajax請求

解決方案:post請求

可以使用 yield scrapy.FormRequest(url, formdata, callback)方法發送POST請求

注意!!!

formdata的 參數值 必須是unicode , str 或者 bytes object,不能是整數。

4. 自動建立create_time

解決方案:將create_time欄位設定為timestamp 並設定預設值CURRENT_TIMESTAMP

5. mysql 讓清空表且自增的id重新從1開始

解決方案:truncate table table_name

Python scrapy 常見問題及解決 【遇到的坑】

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.