Heim Backend-Entwicklung Python-Tutorial Konvertieren Sie vom Python-Crawler erfasste Daten in PDF

Konvertieren Sie vom Python-Crawler erfasste Daten in PDF

May 08, 2017 pm 04:56 PM

In diesem Artikel erfahren Sie, wie Sie mit dem Python-Crawler das „Python-Tutorial von Liao Python. Es gibt so viele Crawler-Tools, die von der Python-Community bereitgestellt werden, dass Sie mit verschiedenen Bibliotheken, die direkt verwendet werden können, in wenigen Minuten einen Crawler schreiben können Liao Xuefengs Python-Tutorial. Erstellen Sie ein PDF-E-Book, das jeder offline lesen kann.

Bevor wir mit dem Schreiben eines Crawlers beginnen, analysieren wir zunächst die Seitenstruktur von Website 1. Die linke Seite der Webseite ist die Verzeichnisstruktur des Tutorials. Jede URL entspricht einem Artikel auf der rechten Seite Auf der rechten Seite befindet sich der Titel des Artikels. In der Mitte befindet sich der Textteil des Artikels. Der Textinhalt steht im Mittelpunkt unseres Interesses. Die Daten, die wir crawlen möchten, sind der Textteil aller Webseiten. Unten befindet sich der Kommentarbereich des Benutzers , der Kommentarbereich ist für uns nutzlos und kann daher ignoriert werden.

Tool-Vorbereitung

Nachdem Sie die Grundstruktur der Website herausgefunden haben, können Sie mit der Vorbereitung der Toolkits beginnen, auf die der Crawler angewiesen ist An. Anfragen und beaut

wenn

ulsoup zwei Artefakte von Crawlern sind, wird reuqests für Netzwerkanfragen verwendet und beautifusoup wird zum Betreiben von HTML-Daten verwendet. Mit diesen beiden Shuttles können wir unsere Arbeit schnell erledigen. Der Einsatz in kleinen Programmen ist wie das Töten eines Huhns mit einem Vorschlaghammer. Da Sie außerdem HTML-Dateien in PDF konvertieren, müssen Sie auch über entsprechende Bibliotheksunterstützung verfügen.topdf ist ein sehr gutes Tool, das zum Konvertieren von HTML in PDF auf mehreren Plattformen verwendet werden kann das Python-Paket von wkhtmltopdf. Zuerst installierendie folgenden Abhängigkeitspakete,dann wkhtmltopdf installieren

wkhtmltopdf installieren

pip install requests
pip install beautifulsoup
pip install pdfkit
Nach dem Login kopieren

Windows-Plattform direkt herunterladen Laden Sie die stabile Version von wkhtmltopdf von der offiziellen Website 2 herunter und installieren Sie sie. Nachdem die Installation abgeschlossen ist, fügen Sie den Ausführungspfad des Programms zur Systemumgebungsvariable $PATH hinzu, andernfalls kann pdfkit wkhtmltopdf nicht finden und der Fehler „Nein“ wird angezeigt „Ausführbare Datei „wkhtmltopdf gefunden““ wird angezeigt. Ubuntu und CentOS können direkt über die Befehlszeile installiert werden

Crawler-Implementierung

$ sudo apt-get install wkhtmltopdf # ubuntu
$ sudo yum intsall wkhtmltopdf   # centos
Nach dem Login kopieren

Wenn alles fertig ist, können Sie mit dem Codieren beginnen, aber Sie sollten es zuerst organisieren Bevor Sie den Code schreiben, denken Sie einen Moment nach. Der Zweck des Programms besteht darin, die allen URLs entsprechenden HTML-Textteile lokal zu speichern und diese Dateien dann mit pdfkit in eine PDF-Datei zu konvertieren. Teilen wir die Aufgabe auf. Speichern Sie zunächst den einer bestimmten URL entsprechenden HTML-Text lokal, suchen Sie dann alle URLs und führen Sie den gleichen Vorgang aus. Verwenden Sie den Chrome-Browser, um das Tag im Hauptteil der Seite zu suchen, und drücken Sie F12, um das p-Tag zu finden, das dem Hauptteil entspricht:

, wobei p der Hauptinhalt der Webseite ist. Nachdem Sie Anforderungen zum lokalen Laden der gesamten Seite verwendet haben, können Sie mit beautifulsoup das HTML-Dom-Element bedienen, um den Textinhalt zu extrahieren.

<p >Der spezifische Implementierungscode lautet wie folgt: Verwenden Sie die Funktion „soup.find_all“

, um das Body-Tag zu finden, und speichern Sie dann den Inhalt des Body-Teils in a .html-Datei.
Der zweite Schritt besteht darin, alle URLs auf der linken Seite der Seite zu analysieren. Verwenden Sie dieselbe Methode, um die linke Menübezeichnung zu finden

def parse_url_to_html(url):
  response = requests.get(url)
  soup = BeautifulSoup(response.content, "html5lib")
  body = soup.find_all(class_="x-wiki-content")[0]
  html = str(body)
  with open("a.html", &#39;wb&#39;) as f:
    f.write(html)
Nach dem Login kopieren

<ul >

Die spezifische Code-Implementierungslogik: Da es zwei Klassen für UK-Nav und UK-Nav-Side gibt Seite

Attribute, und die eigentliche Verzeichnisliste ist die zweite. Alle URLs wurden abgerufen und im ersten Schritt wurde die Funktion zum Konvertieren von URLs in HTML geschrieben.

Der letzte Schritt besteht darin, das HTML in eine PDF-Datei zu konvertieren. Das Konvertieren in eine PDF-Datei ist sehr einfach, da pdfkit die gesamte Logik gekapselt hat. Sie müssen nur die Funktion pdfkit.from_file

def get_url_list():
  """
  获取所有URL目录列表
  """
  response = requests.get("http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000")
  soup = BeautifulSoup(response.content, "html5lib")
  menu_tag = soup.find_all(class_="uk-nav uk-nav-side")[1]
  urls = []
  for li in menu_tag.find_all("li"):
    url = "http://www.liaoxuefeng.com" + li.a.get(&#39;href&#39;)
    urls.append(url)
  return urls
Nach dem Login kopieren
aufrufen, um die Funktion save_pdf auszuführen, und die E-Book-PDF-Datei wird ausgeführt generiert werden. Das Rendering:

def save_pdf(htmls):
  """
  把所有html文件转换成pdf文件
  """
  options = {
    &#39;page-size&#39;: &#39;Letter&#39;,
    &#39;encoding&#39;: "UTF-8",
    &#39;custom-header&#39;: [
      (&#39;Accept-Encoding&#39;, &#39;gzip&#39;)
    ]
  }
  pdfkit.from_file(htmls, file_name, options=options)
Nach dem Login kopieren

Zusammenfassung

Die gesamte Codemenge beträgt weniger als 50 Zeilen, aber warten Sie Tatsächlich wurde der oben angegebene Code weggelassen. Einige Details, z. B. wie der Titel des Artikels abgerufen wird, verwenden das img-Tag des Textinhalts, wenn Sie das Bild normalerweise anzeigen möchten PDF müssen Sie den relativen Pfad in einen absoluten Pfad ändern und die heruntergeladenen temporären HTML-Dateien

löschen

speichern. Diese Details werden alle auf Github veröffentlicht. 【Verwandte Empfehlungen】

1. Kostenloses Python-Video-Tutorial

2. Python-Objektorientiertes Video-Tutorial

3. Python-Lernhandbuch

Das obige ist der detaillierte Inhalt vonKonvertieren Sie vom Python-Crawler erfasste Daten in PDF. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Muss MySQL bezahlen? Muss MySQL bezahlen? Apr 08, 2025 pm 05:36 PM

MySQL hat eine kostenlose Community -Version und eine kostenpflichtige Enterprise -Version. Die Community -Version kann kostenlos verwendet und geändert werden, die Unterstützung ist jedoch begrenzt und für Anwendungen mit geringen Stabilitätsanforderungen und starken technischen Funktionen geeignet. Die Enterprise Edition bietet umfassende kommerzielle Unterstützung für Anwendungen, die eine stabile, zuverlässige Hochleistungsdatenbank erfordern und bereit sind, Unterstützung zu bezahlen. Zu den Faktoren, die bei der Auswahl einer Version berücksichtigt werden, gehören Kritikalität, Budgetierung und technische Fähigkeiten von Anwendungen. Es gibt keine perfekte Option, nur die am besten geeignete Option, und Sie müssen die spezifische Situation sorgfältig auswählen.

So verwenden Sie MySQL nach der Installation So verwenden Sie MySQL nach der Installation Apr 08, 2025 am 11:48 AM

Der Artikel führt den Betrieb der MySQL -Datenbank vor. Zunächst müssen Sie einen MySQL -Client wie MySQLworkBench oder Befehlszeilen -Client installieren. 1. Verwenden Sie den Befehl mySQL-uroot-P, um eine Verbindung zum Server herzustellen und sich mit dem Stammkonto-Passwort anzumelden. 2. Verwenden Sie die Erstellung von Createdatabase, um eine Datenbank zu erstellen, und verwenden Sie eine Datenbank aus. 3.. Verwenden Sie CreateTable, um eine Tabelle zu erstellen, Felder und Datentypen zu definieren. 4. Verwenden Sie InsertInto, um Daten einzulegen, Daten abzufragen, Daten nach Aktualisierung zu aktualisieren und Daten nach Löschen zu löschen. Nur indem Sie diese Schritte beherrschen, lernen, mit gemeinsamen Problemen umzugehen und die Datenbankleistung zu optimieren, können Sie MySQL effizient verwenden.

Braucht MySQL das Internet? Braucht MySQL das Internet? Apr 08, 2025 pm 02:18 PM

MySQL kann ohne Netzwerkverbindungen für die grundlegende Datenspeicherung und -verwaltung ausgeführt werden. Für die Interaktion mit anderen Systemen, Remotezugriff oder Verwendung erweiterte Funktionen wie Replikation und Clustering ist jedoch eine Netzwerkverbindung erforderlich. Darüber hinaus sind Sicherheitsmaßnahmen (wie Firewalls), Leistungsoptimierung (Wählen Sie die richtige Netzwerkverbindung) und die Datensicherung für die Verbindung zum Internet von entscheidender Bedeutung.

Wie optimieren Sie die MySQL-Leistung für Hochlastanwendungen? Wie optimieren Sie die MySQL-Leistung für Hochlastanwendungen? Apr 08, 2025 pm 06:03 PM

Die MySQL-Datenbankleistung Optimierungshandbuch In ressourcenintensiven Anwendungen spielt die MySQL-Datenbank eine entscheidende Rolle und ist für die Verwaltung massiver Transaktionen verantwortlich. Mit der Erweiterung der Anwendung werden jedoch die Datenbankleistung Engpässe häufig zu einer Einschränkung. In diesem Artikel werden eine Reihe effektiver Strategien zur Leistungsoptimierung von MySQL -Leistung untersucht, um sicherzustellen, dass Ihre Anwendung unter hohen Lasten effizient und reaktionsschnell bleibt. Wir werden tatsächliche Fälle kombinieren, um eingehende Schlüsseltechnologien wie Indexierung, Abfrageoptimierung, Datenbankdesign und Caching zu erklären. 1. Das Design der Datenbankarchitektur und die optimierte Datenbankarchitektur sind der Eckpfeiler der MySQL -Leistungsoptimierung. Hier sind einige Kernprinzipien: Die Auswahl des richtigen Datentyps und die Auswahl des kleinsten Datentyps, der den Anforderungen entspricht, kann nicht nur Speicherplatz speichern, sondern auch die Datenverarbeitungsgeschwindigkeit verbessern.

Hadidb: Eine leichte, horizontal skalierbare Datenbank in Python Hadidb: Eine leichte, horizontal skalierbare Datenbank in Python Apr 08, 2025 pm 06:12 PM

Hadidb: Eine leichte, hochrangige skalierbare Python-Datenbank Hadidb (HadIDB) ist eine leichte Datenbank in Python mit einem hohen Maß an Skalierbarkeit. Installieren Sie HadIDB mithilfe der PIP -Installation: PipinstallHadIDB -Benutzerverwaltung erstellen Benutzer: createUser (), um einen neuen Benutzer zu erstellen. Die Authentication () -Methode authentifiziert die Identität des Benutzers. fromHadidb.operationImportUseruser_obj = user ("admin", "admin") user_obj.

Navicat -Methode zum Anzeigen von MongoDB -Datenbankkennwort Navicat -Methode zum Anzeigen von MongoDB -Datenbankkennwort Apr 08, 2025 pm 09:39 PM

Es ist unmöglich, das MongoDB -Passwort direkt über Navicat anzuzeigen, da es als Hash -Werte gespeichert ist. So rufen Sie verlorene Passwörter ab: 1. Passwörter zurücksetzen; 2. Überprüfen Sie die Konfigurationsdateien (können Hash -Werte enthalten). 3. Überprüfen Sie Codes (May Hardcode -Passwörter).

Kann sich MySQL Workbench mit Mariadb verbinden? Kann sich MySQL Workbench mit Mariadb verbinden? Apr 08, 2025 pm 02:33 PM

MySQL Workbench kann eine Verbindung zu MariADB herstellen, vorausgesetzt, die Konfiguration ist korrekt. Wählen Sie zuerst "Mariadb" als Anschlusstyp. Stellen Sie in der Verbindungskonfiguration Host, Port, Benutzer, Kennwort und Datenbank korrekt ein. Überprüfen Sie beim Testen der Verbindung, ob der Mariadb -Dienst gestartet wird, ob der Benutzername und das Passwort korrekt sind, ob die Portnummer korrekt ist, ob die Firewall Verbindungen zulässt und ob die Datenbank vorhanden ist. Verwenden Sie in fortschrittlicher Verwendung die Verbindungspooling -Technologie, um die Leistung zu optimieren. Zu den häufigen Fehlern gehören unzureichende Berechtigungen, Probleme mit Netzwerkverbindung usw. Bei Debugging -Fehlern, sorgfältige Analyse von Fehlerinformationen und verwenden Sie Debugging -Tools. Optimierung der Netzwerkkonfiguration kann die Leistung verbessern

Benötigt MySQL einen Server? Benötigt MySQL einen Server? Apr 08, 2025 pm 02:12 PM

Für Produktionsumgebungen ist in der Regel ein Server erforderlich, um MySQL auszuführen, aus Gründen, einschließlich Leistung, Zuverlässigkeit, Sicherheit und Skalierbarkeit. Server haben normalerweise leistungsstärkere Hardware, redundante Konfigurationen und strengere Sicherheitsmaßnahmen. Bei kleinen Anwendungen mit niedriger Last kann MySQL auf lokalen Maschinen ausgeführt werden, aber Ressourcenverbrauch, Sicherheitsrisiken und Wartungskosten müssen sorgfältig berücksichtigt werden. Für eine größere Zuverlässigkeit und Sicherheit sollte MySQL auf Cloud oder anderen Servern bereitgestellt werden. Die Auswahl der entsprechenden Serverkonfiguration erfordert eine Bewertung basierend auf Anwendungslast und Datenvolumen.

See all articles