1. 程式人生 > >Python 爬取網頁中JavaScript動態新增的內容(一)

Python 爬取網頁中JavaScript動態新增的內容(一)

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

1、環境準備

Linux:sudo apt-get install python-qt4

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)

有需要Python學習資料的小夥伴嗎?小編整理【一套Python資料、原始碼和PDF】,感興趣者可以加學習群:548377875,反正閒著也是閒著呢,不如學點東西啦~~