通过Webkit可以简单解决这个问题!(附详细内容)
优采云 发布时间: 2021-04-25 06:04通过Webkit可以简单解决这个问题!(附详细内容)
本文文章的内容与Python如何抓取js在网页中添加的内容(代码)有关。它具有一定的参考价值。有需要的朋友可以参考一下。希望对您有帮助。
当我们爬行网页时,我们将使用某些规则从返回的HTML数据中提取有效信息。但是,如果网页收录JavaScript代码,则必须进行渲染处理以获取原创数据。在这一点上,如果我们仍然使用常规方法从中获取数据,那么我们将一无所获。然后,只需使用Web工具包即可解决此问题。 Web工具包可以实现浏览器可以处理的任何事情。对于某些浏览器,Web kit是基础的网页呈现工具。 Web kit是QT库的一部分,因此,如果您已经安装了QT和PyQT4库,则可以直接运行它。
1、环境准备
Linux:sudo apt-get install python-qt4
Windows:
第一步:下载.whl,地址:在这里您可以下载与不同python版本相对应的软件包。
第2步:选择一个目录,将下载的文件放在该目录中,然后在cmd下,将cd放入目录中,然后执行以下命令:pip install PyQt4- 4. 1 1. 4-cp36-cp36m -win_amd6 4. whl,完成安装。
第3步:验证安装是否成功。
2、解决方案
首先通过Web工具包发送请求信息,然后等待网页完全加载并将其分配给变量。接下来,我们使用lxml从HTML数据中提取有效信息。此过程将需要一段时间。
import sys
from PyQt4.QtWebKit import *
from PyQt4.QtGui import *
from PyQt4.QtCore import *
class Render(QWebPage): # 用来渲染网页,将url中的所有信息加载下来并存到一个新的框架中
def __init__(self,url):
self.app = QApplication(sys.argv)
QWebPage.__init__(self)
self.loadFinished.connect(self._loadFinished)
self.mainFrame().load(QUrl(url))
self.app.exec_()
def _loadFinished(self, result):
self.frame = self.mainFrame()
self.app.quit()
url = 'http://jandan.net/ooxx'
r = Render(url)
html = r.frame.toHtml()
print(html)
然后,下一个工作是解析HTML代码,因此我在这里不做解释。
以上是Python如何抓取js在网页中添加的内容(代码)的详细内容。有关更多信息,请访问php中文网站和其他相关文章!
免责声明:本文转载于:Blog Park,如有任何违规行为,请联系以删除