我目前正在开发一个项目,该项目涉及使用Python检查网页HTML的程序。我的程序必须监视一个网页,当对HTML进行更改时,它将完成一组操作。我的问题是你如何只提取网页的一部分,以及如何监控网页的HTML并在进行更改时立即报告。感谢。
答案 0 :(得分:2)
过去我编写了自己的解析器。现在HTML是HTML 5,更多的语句,更多的Javascript,开发人员及其编辑所做的很多困难,比如
document.write('<SCR' + 'IPT
一些Web框架/开发人员的错误编码会在每个请求中更改HTTP标头中的Last-Modified,即使对于人而言,您在页面上阅读的文本也不会更改。
我建议您BeautifulSoup进行解析;你自己必须仔细选择要观察的内容,以决定网页是否被修改。
介绍:
BeautifulSoup是一个解析破碎HTML的Python包,就像 lxml基于libxml2的解析器支持它。 BeautifulSoup使用了 不同的解析方法。它不是真正的HTML解析器,而是使用 正则表达式潜水标签汤。因此更多 在某些情况下宽容,在别人情况下则不太好。这并不罕见 lxml / libxml2更好地解析和修复损坏的HTML,但是 BeautifulSoup对编码检测有很好的支持。非常 很大程度上取决于解析器更好地工作的输入。
答案 1 :(得分:1)
Scrapy可能是一个很好的起点。 http://doc.scrapy.org/en/latest/intro/overview.html
获取网站的各个部分很简单,它只是xml,你可以使用scrapy或beautifulsoup。