我主要是一名c ++程序员,但我正在尝试在Python中进行一些网页抓取,并计划编写一个脚本,使用lxml
确定网页上最常用的单词。为了尽可能高效地执行此操作,我不想实际构建元素树,而是通过页面解析并将每个单词插入到哈希表中。
但是,在尝试跳过构建树时,我遇到了几个错误。现在我的控制台正在说
'lxml.etree.HTMLParser' object is not iterable.
这是我的代码(从lxml
介绍页面复制了大部分内容):
# classes
class ParserTarget:
events = []
close_count = 0
def start(self, tag, attrib):
self.events.append(("start", tag, attrib))
def end(self):
events, self.events = self.events, []
self.close_count += 1
return events
website = "https://en.wikipedia.org/wiki/Miles_Mosley"
opened = urlopen(website)
parserTarget = ParserTarget()
parser = etree.HTMLParser(target=parserTarget)
events = etree.iterparse(opened, parser, html=True, recover=True)
print(parser_target.close_count)
我错过了什么,或者有更好的方法来做我需要的事情吗?提前致谢!