使用Python从网站提取HTML部分

0 投票
2 回答
689 浏览
提问于 2025-04-17 07:07

我现在正在做一个项目,主要是用Python编写一个程序来检查网页的HTML代码。我的程序需要监控一个网页,当这个网页的HTML发生变化时,它会执行一系列的操作。我想知道怎么才能提取网页的一部分内容,以及如何监控网页的HTML,并在变化发生时几乎立即报告。谢谢。

2 个回答

1

Scrapy可能是一个不错的入门选择。你可以查看这个链接了解更多:http://doc.scrapy.org/en/latest/intro/overview.html

抓取网站的某些部分其实很简单,因为网站内容通常是用xml格式写的。你可以使用Scrapy或者BeautifulSoup这两个工具来实现。

2

以前我自己写过解析器。现在的HTML是HTML 5,内容更多,JavaScript也更多,开发者和他们的编辑器写的代码常常很糟糕,比如:

document.write('<SCR' + 'IPT

而且一些网页框架或开发者的糟糕编码会在每次请求时更改HTTP头中的最后修改时间,即使对人来说,你在页面上看到的文本并没有变化。

我建议你使用BeautifulSoup来处理解析的事情;如果你自己来做,就得小心选择观察的内容,以判断网页是否被修改。

它的介绍:

BeautifulSoup是一个Python库,可以解析那些有问题的HTML,就像lxml一样,它基于libxml2的解析器。BeautifulSoup使用了一种不同的解析方法。它并不是真正的HTML解析器,而是用正则表达式来处理那些杂乱的标签。因此,在某些情况下它更宽容,而在其他情况下则表现得不太好。lxml/libxml2通常能更好地解析和修复有问题的HTML,但BeautifulSoup在编码检测方面表现更佳。哪个解析器更好,实际上取决于输入的内容。

撰写回答