java爬虫抓取网页数据( 如何利用Webkit从JS渲染网页中获取数据代码?)
优采云 发布时间: 2022-04-18 02:16java爬虫抓取网页数据(
如何利用Webkit从JS渲染网页中获取数据代码?)
当我们进行网络爬取时,我们会使用一定的规则从返回的 HTML 数据中提取有效信息。但是如果网页收录 JavaScript 代码,我们必须渲染它以获取原创数据。在这一点上,如果我们仍然以通常的方式从中抓取数据,我们将一无所获。浏览器知道如何处理这段代码并显示出来,但是我们的程序应该如何处理这段代码呢?接下来,我将介绍一种简单粗暴的方法来抓取收录 JavaScript 代码的网页信息。
大多数人使用 lxml 和 BeautifulSoup 这两个包来提取数据。在这篇文章中我不会涉及任何爬虫框架的内容,因为我只使用了最基本的 lxml 包来处理数据。你可能想知道为什么我更喜欢 lxml。那是因为lxml使用元素遍历来处理数据,而不是像BeautifulSoup那样使用正则表达式来提取数据。在这篇文章中我将介绍一个非常有趣的案例——我突然发现我的文章出现在最近的Pycoders周刊147上,所以我想刮一下
导入请求复制代码
当我们运行上述代码时,我们无法获得任何信息。这怎么可能?网页清楚地显示了这么多文件的信息。接下来我们需要考虑如何解决这个问题?
如何获取内容信息?
接下来我将展示如何使用 Web 工具包从 JS 渲染的网页中获取数据。什么是网络套件?Web 工具包可以做任何浏览器可以处理的事情。对于某些浏览器,Web kit 是底层的网页渲染工具。Web kit 是 QT 库的一部分,所以如果你已经安装了 QT 和 PyQT4 库,你可以直接运行它。
您可以使用命令行安装存储库:
sudo apt-get install python-qt4
现在所有的准备工作都完成了,我们将使用一种全新的方法来提取信息。
解决方案
我们首先通过 Web kit 发送请求信息,然后等待页面完全加载,然后将其分配给变量。接下来我们使用 lxml 从 HTML 数据中提取有效信息。这个过程需要一点时间,但您会惊讶地看到整个页面加载完毕。
import sys复制代码
Render 类可用于渲染网页。当我们创建一个新的 Render 类时,它可以加载 url 中的所有信息并将其存储在一个新的框架中。