def download(source_url):
socket.setdefaulttimeout(10)
agents = ['Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)','Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.1)','Microsoft Internet Explorer/4.0b1 (Windows 95)','Opera/8.00 (Windows NT 5.1; U; en)']
ree = urllib2.Request(source_url)
ree.add_header('User-Agent',random.choice(agents))
resp = urllib2.urlopen(ree)
htmlSource = resp.read()
return htmlSource
url = "http://myIP/details/?id=4"
result_html = download(url)
它不应该超时......即使超时10秒......
答案 0 :(得分:1)
如果您正在运行开发服务器,这将失败,因为它是单线程的并且它正在忙于提供原始请求。如果你想要它可以使用mod_wsgi或绑带CherryPy之类的东西。
答案 1 :(得分:0)
当你说“你自己的域名”时,你是否从NAT防火墙内部命中它?
这样的东西?
123.1.2.3(public myIP)< - NAT gateway - > 192.168.1.5(服务器的私有IP)< - > 192.168.1.10(你)
许多防火墙不允许内部地址在没有DNS重写的情况下访问外部接口。 DNS重写会导致防火墙拦截您的DNS查找并使用私有IP重写生成的公共IP。