1

我已阅读html.parser文档,但找不到类的anchorlist 属性HTMLParser。Python 2.x 具有该属性。

我用谷歌搜索,但找不到答案。在 Python 3.x 中,这个类HTMLParser有吗?

4

1 回答 1

1

anchorlist属性是htmllib.HTMLParser的一部分。该模块在 Python 2.6 中已弃用,在 Python 3 中存在。

html.parser另一方面,Python 3 中的模块在 Python 2中被调用HTMLParser。它没有属性anchorlist

您可以通过侦听开始标记事件来模拟属性,对于任何a标记,将href属性(如果存在)添加到列表以构建相同的列表:

from html.parser import HTMLParser


class MyHTMLParser(HTMLParser):
    def __init__(self, *args, **kw):
        super().__init__(*args, **kw)
        self.archorlist = []

    def handle_starttag(self, tag, attrs):
        if tag == 'a':
            attributes = dict(attrs)
            if "href" in attributes:
                self.anchorlist.append(attributes["href"])

或者,使用像BeautifulSoup这样更友好的 API来收集链接锚点。

于 2013-08-03T14:33:07.250 回答