一句话总结:
方法一:用Web kit,Web kit 可以实现浏览器所能处理的任何事情,Web kit是QT库的一部分,因此如果你已经安装QT和PyQT4库,那么你可以直接运行之。
方法二:使用 selenium + phantomjs 实现
selenium(一个用于web应用程测试的工具)安装:pip install selenium
phantomjs(是一种无界面的浏览器,用于完成网页的渲染)下载:http://phantomjs.org/download.html
二、Python 爬取网页中JavaScript动态添加的内容
转自或参考:Python 爬取网页中JavaScript动态添加的内容(一)
https://www.cnblogs.com/Jimc/p/9717691.html
当我们进行网页爬虫时,我们会利用一定的规则从返回的 HTML 数据中提取出有效的信息。但是如果网页中含有 JavaScript 代码,我们必须经过渲染处理才能获得原始数据。此时,如果我们仍采用常规方法从中抓取数据,那么我们将一无所获。那么,通过Web kit可以简单解决这个问题。Web kit 可以实现浏览器所能处理的任何事情。对于某些浏览器来说,Web kit就是其底层的网页渲染工具。Web kit是
QT
库的一部分,因此如果你已经安装
QT
和
PyQT4
库,那么你可以直接运行之。
1、环境准备
Linux:
sudo apt
-
get install python
-
qt4
Windows:
https://www.cnblogs.com/Jimc/p/9717238.html
首先通过 Web kit 发送请求信息,然后等待网页被完全加载后将其赋值到某个变量中。接下来我们利用
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代码了,这里不做讲解。
三、使用 selenium + phantomjs 实现
selenium(一个用于web应用程测试的工具)安装:pip install selenium
phantomjs(是一种无界面的浏览器,用于完成网页的渲染)下载:
http://phantomjs.org/download.html
from selenium
import webdriver
url =
'http://jandan.net/ooxx'
driver = webdriver.PhantomJS(
executable_path=
'D:/Software/phantomjs-2.1.1-windows/bin/phantomjs.exe')
我的旨在学过的东西不再忘记(主要使用艾宾浩斯遗忘曲线算法及其它智能学习复习算法)的偏公益性质的完全免费的编程视频学习网站:
【读书编程笔记】fanrenyi.com
;有各种前端、后端、算法、大数据、人工智能等课程。
版权申明:欢迎转载,但请注明出处
一些博文中有一些参考内容因时间久远找不到来源了没有注明,如果侵权请联系我删除。