本文目錄一覽:
python 爬蟲遇到的一個小問題
這個應該是載入頁面驗證的問題,也就是實際上頁面已經載入完了,但驗證認為沒有載入完,一直在載入。
我用selenium的get(url)也會有這種問題,處理方法是自定義超時時間,然後重新連接,相當於我們用瀏覽器訪問,網頁載入一半卡住,按f5刷新,一樣的意思。
你可以去找找你的用的模塊有沒有類似的處理
python爬蟲問題求大神解決
代碼:
以下使用的是python3:
import re
test=”’a class=”link” href=”//dealer.autohomne.com.cn/10253/#pvareaid=20113601 target=” _blank”
span北京頁川斯達/span
/a”’
print(re.findall(‘a.*?link.*span(.*?)/span’,test,re.S)[0])
結果測試:
完美匹配
另外python2下有點差別,不過問題不大:
python2自帶的idle下默認使用的是ASCII編碼,不能正常顯示中文而已,結果是取到了的
請教一個問題,怎麼提高 python 爬蟲的爬取效率
很多爬蟲工作者都遇到過抓取非常慢的問題,尤其是需要採集大量數據的情況下。那麼如何提高爬蟲採集效率就十分關鍵,一塊了解如何提高爬蟲採集效率問題。
1.儘可能減少網站訪問次數
單次爬蟲的主要把時間消耗在網路請求等待響應上面,所以能減少網站訪問就減少網站訪問,既減少自身的工作量,也減輕網站的壓力,還降低被封的風險。
第一步要做的就是流程優化,盡量精簡流程,避免在多個頁面重複獲取。
隨後去重,同樣是十分重要的手段,一般根據url或者id進行唯一性判別,爬過的就不再繼續爬了。
2.分散式爬蟲
即便把各種法子都用盡了,單機單位時間內能爬的網頁數仍是有限的,面對大量的網頁頁面隊列,可計算的時間仍是很長,這種情況下就必須要用機器換時間了,這就是分散式爬蟲。
第一步,分散式並不是爬蟲的本質,也並不是必須的,對於互相獨立、不存在通信的任務就可手動對任務分割,隨後在多個機器上各自執行,減少每台機器的工作量,費時就會成倍減少。
例如有200W個網頁頁面待爬,可以用5台機器各自爬互不重複的40W個網頁頁面,相對來說單機費時就縮短了5倍。
可是如果存在著需要通信的狀況,例如一個變動的待爬隊列,每爬一次這個隊列就會發生變化,即便分割任務也就有交叉重複,因為各個機器在程序運行時的待爬隊列都不一樣了——這種情況下只能用分散式,一個Master存儲隊列,其他多個Slave各自來取,這樣共享一個隊列,取的情況下互斥也不會重複爬取。IPIDEA提供高匿穩定的IP同時更注重用戶隱私的保護,保障用戶的信息安全。含有240+國家地區的ip,支持API批量使用,支持多線程高並發使用。
python爬蟲程序有問題
IOError就說明你抓取的URL連接失效,在getpicture里加一個try except,無法打開鏈接時,
沒有辦法,繼續執行下一個Url
import sys
try:
urllib.urlretrieve(pictureurl,’%s.jpg’ %x)
except:
print “Unexpected error:”, sys.exc_info()[0]
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/198363.html