Python urllib2返回空字符串
我正在尝试检索以下URL:Python urllib2返回空字符串,python,urllib2,Python,Urllib2,我正在尝试检索以下URL: 但是我得到了一个空字符串。当我通过浏览器或使用cURL进行尝试时,效果很好。知道发生了什么吗?我在使用请求库时得到了响应,但在使用urlib2时没有得到响应,所以我尝试了HTTP请求头 事实证明,服务器需要一个Accept头urlib2不发送一个,请求和cURL发送*/* 同时发送一个带有urllib2的: url = 'http://www.winkworth.co.uk/sale/property/flat-for-sale-in-masefield-court-
但是我得到了一个空字符串。当我通过浏览器或使用cURL进行尝试时,效果很好。知道发生了什么吗?我在使用
请求
库时得到了响应,但在使用urlib2
时没有得到响应,所以我尝试了HTTP请求头
事实证明,服务器需要一个Accept
头urlib2
不发送一个,请求
和cURL发送*/*
同时发送一个带有urllib2
的:
url = 'http://www.winkworth.co.uk/sale/property/flat-for-sale-in-masefield-court-london-n5/HIH140004'
req = urllib2.Request(url, headers={'accept': '*/*'})
response = urllib2.urlopen(req)
演示:
这里的服务器有故障;国家:
如果不存在接受标头字段,则假定
客户端接受所有媒体类型
urlopen
是异步的吗?如果是这样的话,当你试图阅读它时,它可能还没有完成下载?@blackvegeture:no,urlopen
是同步的。当不存在Accept
头时,服务器将因不返回任何内容而中断。
url = 'http://www.winkworth.co.uk/sale/property/flat-for-sale-in-masefield-court-london-n5/HIH140004'
req = urllib2.Request(url, headers={'accept': '*/*'})
response = urllib2.urlopen(req)
>>> import urllib2
>>> url = 'http://www.winkworth.co.uk/sale/property/flat-for-sale-in-masefield-court-london-n5/HIH140004'
>>> len(urllib2.urlopen(url).read())
0
>>> request = urllib2.Request(url, headers={'accept': '*/*'})
>>> len(urllib2.urlopen(request).read())
37197