Python 爬取網頁中JavaScript動態添加的內容(一)


當我們進行網頁爬蟲時,我們會利用一定的規則從返回的 HTML 數據中提取出有效的信息。但是如果網頁中含有 JavaScript 代碼,我們必須經過渲染處理才能獲得原始數據。此時,如果我們仍采用常規方法從中抓取數據,那么我們將一無所獲。那么,通過Web kit可以簡單解決這個問題。Web kit 可以實現瀏覽器所能處理的任何事情。對於某些瀏覽器來說,Web kit就是其底層的網頁渲染工具。Web kit是QT庫的一部分,因此如果你已經安裝QTPyQT4庫,那么你可以直接運行之。

1、環境准備

Linux:sudo apt-get install python-qt4

Windows:https://www.cnblogs.com/Jimc/p/9717238.html

2、使用

首先通過 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代碼了,這里不做講解。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM