gpt4 book ai didi

python - 使用 Python 的 HTMLParser 获取适合定义的 CSS 选择器的标签之间的数据

转载 作者:行者123 更新时间:2023-11-30 23:45:11 27 4
gpt4 key购买 nike

我正在尝试从 thisisnthappiness.com 解析 HTML地点。为此,我使用 Python 的 HTMLParser图书馆。

我的目标是获取适合 div.post 的标签之间的所有数据(表示为 CSS 选择器)。

这是我到目前为止的代码:

import urllib2
from HTMLParser import HTMLParser


class MyHTMLParser(HTMLParser):
def handle_starttag(self, tag, attrs):
if tag == 'div' and ('class', 'post') in attrs:
print 'tag fits'


def main():
parser = MyHTMLParser()
resource = urllib2.urlopen('http://thisisnthappiness.com/')
parser.feed(resource.read())

if __name__ == "__main__":
main()

目前,它会多次打印标签适合。我已经半途而废了! :)

我一直在获取适合该CSS选择器的标签数据。在 handle_starttag() 中,我没有看到任何从该标签获取数据的方法。在那儿?我想保存列表中标记中的数据以供进一步使用。

感谢任何建议!

最佳答案

HTMLParser 是一个非常低级的接口(interface)。您必须找到结束标记,然后处理标记之间的 html。

这是 lxml.html 的样子:

import lxml.html

def main():
doc = lxml.html.parse("http://thisisnthappiness.com/").getroot()
for e in doc.cssselect("div.post"):
print e # this is an object representing the element

if __name__ == "__main__":
main()

这使您可以使用 xpath、CSS 选择器、etree API 或 DOM 来查询数据,而不是重新发明轮子。

关于python - 使用 Python 的 HTMLParser 获取适合定义的 CSS 选择器的标签之间的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9703938/

27 4 0