我有一个x网站列表,我想从中获取数据。 代码:
import urllib2
from urllib2 import Request, urlopen, HTTPError, URLError
def checkurl(z):
print urllib2.urlopen('http://'+z).read()
for x in t2w: #t2w is my list
print x
checkurl(x)
print "\n"
截至目前,整个过程一旦网站停止,就会停止 不可用。我该怎么办才能让urllib2尝试x时间,给出错误,例如“网站不可用”,然后转到列表中的下一个项目。
也许应该提到这是针对.onion
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()
答案 0 :(得分:0)
您可以使用timeout
参数。
try:
urllib2.urlopen("http://example.com", timeout=1)
except urllib2.URLError, e:
raise MyException("Error raised: %r" % e)
来自docs:
可选的timeout参数指定超时(以秒为单位) 阻塞操作,如连接尝试(如果未指定,则 将使用全局默认超时设置)。这实际上只有作用 用于HTTP,HTTPS和FTP连接。