Python可用时逐行读取网站数据

我urllib2用来从url读取数据,下面是代码片段:


data = urllib2.urlopen(urllink)

for lines in data.readlines():

  print lines

我打开的网址实际上是一个cgi脚本,该脚本执行一些处理并并行打印数据。CGI脚本大约需要30分钟才能完成。因此,使用上述代码,当CGI脚本的执行完成时,我只能在3分钟后看到输出。


我如何从URL中读取数据,并立即将其打印出来。


一只名叫tom的猫
浏览 175回答 1
1回答

守着星空守着你

只需直接在文件对象上循环即可:for line in data:    print line这将逐行读取传入的数据流(在内部,.readline()每次迭代时都会调用套接字fileobject )。这确实假定您的服务器正在尽快发送数据。调用.readlines()(复数)可确保您在开始循环之前已阅读了整个请求,请不要这样做。或者,使用requests库,它对请求流具有更明确的支持:import requestsr = requests.get(url, stream=True)for line in r.iter_lines():    if line: print line请注意,这仅在服务器立即开始流传输数据时才起作用。如果您的CGI在过程完成之前不产生数据,则尝试流式传输数据毫无意义。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python