js 抓取网页内容(使用DOM格式有一个问题,如何抓取网页数据的?)
优采云 发布时间: 2021-09-27 18:16js 抓取网页内容(使用DOM格式有一个问题,如何抓取网页数据的?)
昨天,我们使用webdriver抓取了一个电子商务的商品数据信息网站。Webdriver实际上使用DOM格式获取web数据。但是,使用DOM格式有一个问题。研究过前端的学生知道,如果他们使用DOM格式获取数据,他们必须等待DOM树形成,也就是说,DOM格式只有在完全完成后才能使用。但是,对于某些特殊情况,您不需要所有DOM,您可能只需要DOM的一部分。在这种情况下,webdriver会显得有点低效
今天,我们使用另一种方式获取网页中的内容,HTMLPasser。HTMLPasser使用Sax作为数据流来获取网页中的内容、解析句子和处理句子。在形成DOM树结构后,不再对其进行处理。Sax的全称是“XML的简单API”。事实上,它用于处理XML格式的数据。然而,HTML和XML在格式上有很多相似之处,所以它也可以用来处理HTML语言。当然,HTML和XML之间有很多不同之处。例如,XML要求每个标记必须严格关闭,但HTML没有这样的要求。Html仍然是随意的。它通常看起来与
对于此类标签,我们可以单独处理
首先是准备
pip install HTMLParser
第二种方法更简单。在目录C:\users\Wilson\appdata\local\programs\Python\Python 36\lib\site packages中找到htmlparser.py文件,然后将其中的所有Markupbase替换为Markupbase,这样就不会再出现上述问题
嗯,准备工作已经做好了。在加载Python代码之前,我需要创建一个简单的hello.html文件,并使用Python获取该文件中的所有DOM。这是hello.html
Hello html
wilson is so good
一个非常简单的HTML文件主要取决于HTMLPasser如何获取它
HTMLdemo.close()
上面的代码实际上继承了基类Htmlparser,重写了几个基本函数,并添加了打印函数以进行调试。*敏*感*词*结果如下
结果是识别并打印DOM树中的所有标记。这样,我们可以根据不同的标签和内容捕获所需的数据