在Python3中解析HTML,使用re、html.parser还是其他?

0 投票
2 回答
1701 浏览
提问于 2025-04-16 11:44

我想获取一个关于craigslist网站的各个州及其相关链接的列表。别担心,我并不打算进行垃圾邮件发送,如果你想知道我这么做的目的,可以看下面的*部分。

我想提取的内容是从“us states”那行之后开始的,接下来的50个< li >标签。我看过html.parser的文档,感觉这个工具太底层了,更适合用来做DOM解析或者在IDE中进行语法高亮和格式化,而不是用来搜索。这让我觉得,使用正则表达式可能是更好的选择。我希望能尽量使用标准库里的东西,这样可以更好地学习。我并不是在请求帮助写正则表达式,我会自己搞定,只是想确认一下在花时间之前有没有更好的方法。

*这是我第一次写程序,或者说超出简单Python脚本的东西。我正在做一个C++程序,用来管理我的帖子,并提醒我它们何时过期,以防我想重新发布。同时,我还在写一个Python脚本,下载所有美国州和城市/地区的列表,以便在图形界面中填充一个下拉框。我其实并不需要这个,但我想把它做得“生产就绪”/功能完整,既是为了学习,也是为了创建一个作品集,可能将来找工作用。我不确定这个程序是否会公开发布,毕竟它有明显的被滥用的潜力,而且可能也违反了他们的服务条款。

2 个回答

4

在Python的标准库里,有一个叫做 xml.etree 的XML解析器。解析XML的时候,不要用正则表达式。你应该直接找到包含你需要信息的特定节点,然后从那里提取链接。

1

使用 lxml.html。这是最好的Python HTML解析器,它支持xpath!

撰写回答