【发布时间】:2010-12-31 17:52:47
【问题描述】:
在 Python 中使用 HTMLParser 类时,是否可以在 handle_* 函数中中止处理?在处理的早期,我得到了我需要的所有数据,所以继续处理似乎是一种浪费。下面是一个提取文档元描述的示例。
from HTMLParser import HTMLParser
class MyParser(HTMLParser):
def handle_start(self, tag, attrs):
in_meta = False
if tag == 'meta':
for attr in attrs:
if attr[0].lower() == 'name' and attr[1].lower() == 'description':
in_meta = True
if attr[0].lower() == 'content':
print(attr[1])
# Would like to tell the parser to stop now,
# since I have all the data that I need
【问题讨论】:
-
你不应该继承HTMLParser而不是Parser吗?
-
哦,我真的推荐 BeautifulSoup 来解析 HTML - 它更容易使用
-
我认为很容易得出结论,这只是一个错字。因为如果不是这个代码将无法工作。
-
@shylent:我并没有暗示这是他的问题的原因 - 因此这是一个评论,而不是一个答案