HTMLParser流式处理可以在python中使用urllib2实现吗

2024-09-24 16:35:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用python编写HTMLParser实现,它将处理从互联网下载的网页。在

这是我的代码:

class Parser(HTMLParser.HTMLParser):

...

parser=Parser()

httpRequest = urllib2.Request("http://www......")
pageContent = urllib2.urlopen(httpRequest)

while (True):
          htmlTextPortion = pageContent.read()
          parser.feed(htmlTextPortion)

我的问题是:“read”调用会在整个HTML页面被下载之前阻塞,还是每次都返回已经加载的页面块?在

这对我很重要,因为我需要尽快开始处理网页,而不是等到它结束。在

我听说pycurl库有一个流式处理的选项,但它确实需要切换到pycurl,还是可以用urllib2实现相同的功能?在

非常感谢。。。在


Tags: 代码parser网页readrequest互联网页面urllib2
1条回答
网友
1楼 · 发布于 2024-09-24 16:35:57

urllib2的默认处理程序实际上似乎是在urlopen()调用中获取整个页面。read()不阻止,因为整个页面已经可用。您可能可以编写自己的处理程序来流式处理数据(opener返回一个类似文件的对象,它通过响应上的read()公开,这可以是流式的),但是如果另一个库已经有了该功能,我会改为使用它。在

相关问题 更多 >