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...