我很困惑为什么不能使用urllib2从FriendFeed下载一些JSON响应的全部内容。
>>> import urllib2
>>> stream = urllib2.urlopen('http://friendfeed.com/api/room/the-life-scientists/profile?format=json')
>>> stream.headers['content-length']
'168928'
>>> data = stream.read()
>>> len(data)
61058
>>> # We can see here that I did not retrieve the full JSON
... # given that the stream doesn't end with a closing }
...
>>> data[-40:]
'ce2-003048343a40","name":"Vincent Racani'
如何使用urllib2检索完整响应?
使用tcpdump(或类似的东西)来监视实际的网络交互-然后您可以分析某些客户端库的站点被破坏的原因。通过编写测试脚本,确保重复多次,以便可以看到问题是否一致:
该网站一直在为我工作,所以我不能给出失败的例子:)
获取所有数据的最佳方式:
原因是,考虑到套接字的性质,
.read()
不能保证返回整个响应。我以为这已经在文档中讨论过了(可能是urllib
),但我找不到。继续调用stream.read()直到完成。。。
相关问题 更多 >
编程相关推荐