Python urllib2.urlopen(z).read()-尝试x秒,然后移动到下一项
我有一个x个网站的列表,我想从中获取数据。 代码: 到目前为止,只要一个网站被创建,整个过程就会停止 不可用的我该怎么做才能让urllib2尝试x次,给出一个错误,例如“网站不可用”,然后转到列表中的下一项 也许应该提到这是给洋葱的Python urllib2.urlopen(z).read()-尝试x秒,然后移动到下一项,python,python-2.7,urllib2,Python,Python 2.7,Urllib2,我有一个x个网站的列表,我想从中获取数据。 代码: 到目前为止,只要一个网站被创建,整个过程就会停止 不可用的我该怎么做才能让urllib2尝试x次,给出一个错误,例如“网站不可用”,然后转到列表中的下一项 也许应该提到这是给洋葱的 import socks import socket def create_connection(address, timeout=None, source_address=None): sock = socks.socksocket() sock.
import socks
import socket
def create_connection(address, timeout=None, source_address=None):
sock = socks.socksocket()
sock.connect(address)
return sock
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9150)
socket.socket = socks.socksocket
socket.create_connection = create_connection
#####
import urllib2
from urllib2 import Request, urlopen, HTTPError, URLError
def checkurl(z):
try:
urllib2.urlopen("http://"+z, timeout=1).read()
except urllib2.URLError, e:
raise MyException("Error raised: %r" % e)
#print urllib2.urlopen('http://'+z).read()
您可以使用timeout参数
try:
urllib2.urlopen("http://example.com", timeout=1)
except urllib2.URLError, e:
raise MyException("Error raised: %r" % e)
从:
可选的timeout参数指定的超时时间(以秒为单位)
阻塞操作(如连接尝试)如果未指定,则
将使用全局默认超时设置。这实际上只起作用
用于HTTP、HTTPS和FTP连接
try:
urllib2.urlopen("http://example.com", timeout=1)
except urllib2.URLError, e:
raise MyException("Error raised: %r" % e)