准備寫一個python腳本抓取網頁數據,前面抓了幾個都沒有什么問題,但總會抓取不完整,在中間過程中沒有反應,發現執行urlopen的地方總是提示超時,百度了一下,因為我使用的是urllib不是urllib2,所以無法直接在urlopen里面加timeout參數,只能是設置全局腳本的超時時間
首先:
import socket
然后:
socket.setdefaulttimeout(60)
設置全局的超時時間為60s。
之后再執行腳本的時候就沒有什么大問題了。
當然,如果是urllib2就更簡單,而且現實中,urllib,urllib2常會一起使用(兩者分別提供不同的功能)
html = urllib.urlopen(url).read()
修改為
import urllib2
html = urllib2.urlopen(url, timeout=60).read()