Heim  >  Artikel  >  Backend-Entwicklung  >  Wie Python von js in Webseiten hinzugefügte Inhalte crawlt (Code)

Wie Python von js in Webseiten hinzugefügte Inhalte crawlt (Code)

不言
不言nach vorne
2018-09-28 14:14:578211Durchsuche

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.

1. Umgebungsvorbereitung

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.

Wie Python von js in Webseiten hinzugefügte Inhalte crawlt (Code)

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.

Wie Python von js in Webseiten hinzugefügte Inhalte crawlt (Code)

Schritt 3: Überprüfen Sie, ob die Installation erfolgreich ist.

Wie Python von js in Webseiten hinzugefügte Inhalte crawlt (Code)

Wie Python von js in Webseiten hinzugefügte Inhalte crawlt (Code)

2. Lösung

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen