python爬蟲誤區集錦

2021-09-14 03:44:19 字數 1238 閱讀 2150

1.執行一段時間之後執行緒卡死

如果你使用的是requests庫,那麼請替換為urllib2,為什麼requests請參看: 但是兩種方式我都試過,無效。所以最後替換了requests。

note:如果你使用的是pyquery,那麼請注意你內部是使用的urllib庫還是request庫,如果你不清楚請手動替換 urllib2,然後使用pyquery直接解析網頁內容。

proxy_support = urllib2.proxyhandler(proxies)

opener = urllib2.build_opener(proxy_support)

urllib2.install_opener(opener)

req = urllib2.request(url=url, headers=headers(url=url))

res = urllib2.urlopen(req, timeout=30)

html = pq(res.read())

2.遇見 incompleteread異常

如果遇見這個問題,可以參見部落格

解決之後的**如下:

html = pq(res.read())3.遇見 badstatusline異常

這裡僅僅是我遇見的兩種情況

網域名稱後期被修改

增加header

req = urllib2.request(url=url, headers=headers(url=url))
4.總結

爬取前請一定要懂得python的字元編碼,否則可能出現各種異常。最好的方式是過程中統一使用unicode,然後最終結果按照要求儲存即可。

if not isinstance(keywords, unicode):

keywords = keywords.decode('utf-8')

2.處理異常,訪問網路的時候可能會出現各種網路異常。盡可能的獲取資料。

python報錯集錦

解決 把os.mkdir 修改為 os.makedirs即可 1.mkdir path mode 作用 建立乙個目錄,可以是相對或者絕對路徑,mode的預設模式是0777。2.makedirs path mode 作用 建立遞迴的目錄樹,可以是相對或者絕對路徑,mode的預設模式也是0777。ope...

python知識集錦

程式執行方式 互動式 也稱為解釋語言或指令碼語言 和檔案式 也稱為編譯語言或靜態語言 解釋語言 逐條轉換為目標 編譯語言 整體轉換為目標 程式語言 對計算機能夠理解和識別使用者操作的一種互動體系,按照特定規則組織計算機指令,使計算機自動進行運算處理。電腦程式 按照程式語言規則組織起來的一組計算機指令...

python錯誤集錦

1.python連線資料庫時,報錯如下 原因 程式執行時,後面多了個 已至於把它當做元組來處理,host傳入getaddrinfo的值不是字串 它很可能是乙個元組。解決方案 去掉逗號 2.python在呼叫函式的時候,函式明明不需要引數,呼叫的時候報錯 typeerror read mysql mi...