Der Inhalt dieses Artikels handelt davon, wie Python den von js auf der Webseite hinzugefügten Inhalt (Code) crawlt. Ich hoffe, dass er für Sie hilfreich ist.
Wenn wir eine Webseite crawlen, verwenden wir bestimmte Regeln, um effektive Informationen aus den zurückgegebenen HTML-Daten zu extrahieren. Wenn die Webseite jedoch JavaScript-Code enthält, müssen wir eine Rendering-Verarbeitung durchführen, um die Originaldaten zu erhalten. Wenn wir an diesem Punkt immer noch herkömmliche Methoden verwenden, um Daten daraus zu extrahieren, erhalten wir nichts. Nun, dieses Problem kann leicht durch Web-Kit gelöst werden. Webkits können alles, was ein Browser kann. Bei einigen Browsern ist Web Kit das zugrunde liegende Tool zum Rendern von Webseiten. Das Webkit ist Teil der QT
-Bibliothek. Wenn Sie also die Bibliotheken QT
und PyQT4
installiert haben, können Sie es direkt ausführen.
Linux: sudo apt
-
get install python
-
qt4
Windows:
Schritt 1: Laden Sie .whl herunter, Adresse: https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyqt4, Hier können Sie Pakete herunterladen, die verschiedenen Python-Versionen entsprechen.
Schritt 2: Wählen Sie ein Verzeichnis aus, legen Sie die heruntergeladene Datei in das Verzeichnis, dann cmd und cd in das Verzeichnis, führen Sie den Befehl aus: pip install PyQt4- 4.11.4- cp36-cp36m-win_amd64.whl, schließen Sie die Installation ab.
Schritt 3: Überprüfen Sie, ob die Installation erfolgreich ist.
Senden Sie zuerst die Anforderungsinformationen über das Web-Kit und warten Sie dann auf die Webseite um es vollständig zu laden. Weisen Sie es einer Variablen zu. Als nächstes verwenden wir lxml
, um effektive Informationen aus HTML-Daten zu extrahieren. Dieser Vorgang dauert eine Weile.
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)
Dann besteht die nächste Arbeit darin, den HTML-Code zu analysieren, was hier nicht erklärt wird.
Das obige ist der detaillierte Inhalt vonWie Python von js in Webseiten hinzugefügte Inhalte crawlt (Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!