Python urllib2返回空字符串

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-

我正在尝试检索以下URL:


但是我得到了一个空字符串。当我通过浏览器或使用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