python爬取js动态网页_Python 爬取网页中JavaScript动态添加的内容(一)
當(dāng)我們進(jìn)行網(wǎng)頁(yè)爬蟲(chóng)時(shí),我們會(huì)利用一定的規(guī)則從返回的 HTML 數(shù)據(jù)中提取出有效的信息。但是如果網(wǎng)頁(yè)中含有 JavaScript 代碼,我們必須經(jīng)過(guò)渲染處理才能獲得原始數(shù)據(jù)。此時(shí),如果我們?nèi)圆捎贸R?guī)方法從中抓取數(shù)據(jù),那么我們將一無(wú)所獲。那么,通過(guò)Web kit可以簡(jiǎn)單解決這個(gè)問(wèn)題。Web kit 可以實(shí)現(xiàn)瀏覽器所能處理的任何事情。對(duì)于某些瀏覽器來(lái)說(shuō),Web kit就是其底層的網(wǎng)頁(yè)渲染工具。Web kit是QT庫(kù)的一部分,因此如果你已經(jīng)安裝QT和PyQT4庫(kù),那么你可以直接運(yùn)行之。
1、環(huán)境準(zhǔn)備
Linux:sudo apt-get install python-qt4
2、使用
首先通過(guò) Web kit 發(fā)送請(qǐng)求信息,然后等待網(wǎng)頁(yè)被完全加載后將其賦值到某個(gè)變量中。接下來(lái)我們利用lxml從 HTML 數(shù)據(jù)中提取出有效的信息。這個(gè)過(guò)程需要一點(diǎn)時(shí)間。
importsysfrom PyQt4.QtWebKit import *
from PyQt4.QtGui import *
from PyQt4.QtCore import *
class Render(QWebPage): #用來(lái)渲染網(wǎng)頁(yè),將url中的所有信息加載下來(lái)并存到一個(gè)新的框架中
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代碼了,這里不做講解。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的python爬取js动态网页_Python 爬取网页中JavaScript动态添加的内容(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: hive分区用2个字段有何限制_[特性]
- 下一篇: mnist手写数字数据集_mnist手写