1. Python爬蟲如何避免爬取網站訪問過於頻繁
一. 關於爬蟲
爬蟲,是一種按照一定的規則自動地抓取互聯網信息的程序。本質是利用程序獲取對我們有利的數據。
反爬蟲,從不是將爬蟲完全杜絕;而是想辦法將爬蟲的訪問量限制在一個可接納的范圍,不要讓它過於頻繁。
二. 提高爬蟲效率的方法
協程。採用協程,讓多個爬蟲一起工作,可以大幅度提高效率。
多進程。使用CPU的多個核,使用幾個核就能提高幾倍。
多線程。將任務分成多個,並發(交替)的執行。
分布式爬蟲。讓多個設備去跑同一個項目,效率也能大幅提升。
打包技術。可以將python文件打包成可執行的exe文件,讓其在後台執行即可。
其他。比如,使用網速好的網路等等。
三. 反爬蟲的措施
限制請求頭,即request header。解決方法:我們可以填寫user-agent聲明自己的身份,有時還要去填寫origin和referer聲明請求的來源。
限制登錄,即不登錄就不能訪問。解決方法:我們可以使用cookies和session的知識去模擬登錄。
復雜的交互,比如設置「驗證碼」來阻攔登錄。這就比較難做,解決方法1:我們用Selenium去手動輸入驗證碼;方法2:我們用一些圖像處理的庫自動識別驗證碼(tesserocr/pytesserart/pillow)。
ip限制。如果這個IP地址,爬取網站頻次太高,那麼伺服器就會暫時封掉來自這個IP地址的請求。 解決方法:使用time.sleep()來對爬蟲的速度進行限制,建立IP代理池或者使用IPIDEA避免IP被封禁。
2. 錯誤 7 (net::ERR_TIMED_OUT): 操作超時。
錯誤7(net::ERR_TIMED_OUT): 操作超時,是設置錯誤造成的,解決方法如下:
1、首先http請求超時可以在webconfig中進行全局配置,(單位為秒,默認為90秒)如下圖。
3. 以前常用的網站,突然打不開了,出現ERR_TIMED_OUT怎麼處理
以前常用的網站,突然打不開了,出現ERR_TIMED_OUT是的開錯誤造成的,解決方法為:
1、我們打開系統的搜索欄,如圖所示。