[Python] So kratzen Sie eine lokale HTML-Datei und geben sie mit Beautiful Soup als CSV aus

Einführung

Ich wollte Textdaten aus einer lokalen HTML-Datei kratzen, also habe ich verschiedene Dinge ausprobiert, aber da die Python-Bibliothek Beautiful Soup sehr praktisch war, werde ich erläutern, wie man sie verwendet und in eine CSV-Datei ausgibt.

Entwicklungsumgebung

pyenv: 1.2.15 python: 3.6.5 Beautiful Soup: 4.4.0 VSCode: 1.41.1

Aufbau einer Python-Umgebung

Für den Umgebungsaufbau habe ich mich auf die folgende Lektion von Progate bezogen. Bereiten Sie eine Python-Entwicklungsumgebung vor! (Mac)

Was ist schöne Suppe?

Eine Art Python-Bibliothek, die auf HTML-Tags und CSS-Selektoren aus HTML-Daten basiert Sie können das Scraping durchführen. Offizielle Referenz: https://www.crummy.com/software/BeautifulSoup/bs4/doc/ Referenz japanische Übersetzung (Version 3.0): https://tdoc.info/beautifulsoup/

Einführung der schönen Suppe

Installieren Sie mit pip. Ich habe auf den folgenden Artikel verwiesen.

[Einführung in Python] Was ist pip? Leicht verständliche Erklärung zur Verwendung! Lassen Sie uns mit einer schönen Python-Suppe kratzen

Sie können es mit dem folgenden Befehl installieren.

pip install beautifulsoup4

Vorbereitung der HTML-Datei

Bereiten Sie die HTML-Datei vor, die lokal gelöscht werden soll. Das Folgende ist eine Beispieldatei.

/sample_file/sample.html


<!--~ Abkürzung ~-->
<div>
  <ul lass="sample">
    <li class="sample">
      <a href="aaa">aaaaaa</a>
    </li>
    <li class="sample">
      <a href="bbb">bbbbb</a>
    </li>
  </ul>
  <div class="sample">
    <a href="ccc">ccc</a>
  </div>
  <div class="sample">
    <div class="sample">
        <a href="ddd">ddddd</a>
    </div>
  </div>
</div>
<!--~ Abkürzung ~-->

Kratzarbeiten

Erstellen einer Python-Datei

Erstellen Sie als Nächstes ein Python-Programm. Erstellen Sie es im selben Verzeichnis wie die HTML-Datei.

/sample_file/script.py


import bs4
import csv #Modul"CSV"Anruf

#Erstellen Sie eine Suppe aus einer HTML-Datei, die abgekratzt werden soll
soup = bs4.BeautifulSoup(open('sample.html'), 'html.parser')

links = soup.find_all('a') #Holen Sie sich alle Tag-Elemente

csvlist = [] #Erstellen Sie ein Array

for link in links: #Speichern Sie Textdaten eines Tags in einem Array
    sample_txt = link.text
    csvlist.append(sample_txt)

#Öffnen Sie die CSV-Datei. Wenn die Datei nicht vorhanden ist, erstellen Sie eine neue
f = open("output_sample.csv", "w")
writecsv = csv.writer(f, lineterminator='\n')

writecsv.writerow(csvlist) #Ausgabe

f.close() #CSV-Datei schließen

Ich habe auf den folgenden Artikel verwiesen.

HTML mit Python analysieren (Beautiful Soup) Geben Sie den von Beautiful Soup gekratzten HTML-Code in CSV aus

Python-Dateien ausführen

$ cd sample_file
$ python script.py

Ausgabeergebnis

Die CSV-Datei wird in dasselbe Verzeichnis wie unten gezeigt ausgegeben.

output_sample.csv


aaaaaa,bbbbb,ccc,ddddd

CSV-Verarbeitung

1. Verbesserte Lesbarkeit von CSV-Dateien

Wenn Sie VS-Code verwenden, können Sie die Anzeige der CSV erheblich vereinfachen, indem Sie eine Erweiterung namens Rainbow CSV einführen.

before

スクリーンショット 2020-01-05 10.12.25.png

after スクリーンショット 2020-01-05 10.12.49.png

Zur Einführung von Rainbow CSV habe ich auf den folgenden Artikel verwiesen. Einführung von "Rainbow CSV", das das Anzeigen von CSV mit VS-Code erleichtert

2. Prozess für Saatgutdaten

Das Verschrotten mit der obigen Methode kann zu vielen Zeilenumbrüchen führen. Wenn Sie die CSV-Datei als Inhalt des Arrays in Startdaten usw. verwenden möchten. Möglicherweise möchten Sie die Zeilenumbrüche entfernen, um eine Zeile zu erstellen. In diesem Fall wird empfohlen, die VS-Code-Ersetzungsfunktion zu verwenden, um alle Zeilenumbrüche zu löschen. 970a4afb7683f49554298fc9937affa6.gif Ich habe für diese Methode auf den folgenden Artikel verwiesen. [[Visual Studio Code] So ersetzen Sie den Zeilenvorschubcode durch eine Zeile] (https://kukka.me/vsc-newline/)

Zusammenfassung

Sie können mit Beautiful Soup kratzen. Sie können eine CSV-Datei mit dem Modul "CSV" ausgeben. Wenn die CSV-Datei aufgrund der Struktur der HTML-Datei viele Zeilenumbrüche enthält, Die VS-Code-Ersetzungsfunktion ist praktisch.

Referenz-URL

https://prog-8.com/docs/python-env https://www.crummy.com/software/BeautifulSoup/bs4/doc/ https://www.sejuku.net/blog/50417 https://www.sejuku.net/blog/75137 https://maku77.github.io/python/parse-html-by-beautiful-soup.html https://5log.hateblo.jp/entry/2019/01/03/075552 https://qiita.com/0w0/items/07a481921a2ac09a049f https://kukka.me/vsc-newline/

Recommended Posts

[Python] So kratzen Sie eine lokale HTML-Datei und geben sie mit Beautiful Soup als CSV aus
[Python] Speichern einer CSV-Datei als eindimensionale Array-Daten
Lesen einer CSV-Datei mit Python 2/3
So suchen Sie HTML-Daten mit Beautiful Soup
Lesen Sie die CSV-Datei mit Python und konvertieren Sie sie unverändert in DataFrame
So geben Sie eine Zeichenfolge in Python ein und geben sie unverändert oder in die entgegengesetzte Richtung aus.
[Python] So benennen Sie Tabellendaten und geben sie mit csv aus (to_csv-Methode)
[Python] So geben Sie eine Pandas-Tabelle in eine Excel-Datei aus
Ausgabe in eine CSV-Datei mit Python
So fügen Sie eine CSV-Datei mit Pandas in eine Excel-Datei ein
Verarbeiten Sie das Ausführungsergebnis von Splunk mit Python und speichern Sie es in einer Datei
So erstellen Sie mit Faker eine CSV-Dummy-Datei mit Japanisch
[Python] So konvertieren Sie eine Datenbankdatei in CSV
[Python] Eine Tabelle mit Beautiful Soup kratzen
So installieren Sie das Python-Paket in einer lokalen Umgebung als allgemeiner Benutzer
[Python] Lesen der CSV-Datei (Methode read_csv des Pandas-Moduls)
So tarnen Sie eine ZIP-Datei als PNG-Datei
Lesen Sie JSON mit Python und geben Sie CSV aus
So erstellen Sie eine JSON-Datei in Python
Ich habe versucht, eine CSV-Datei mit Python zu lesen
Führen Sie Python-Dateien mit Django aus HTML aus
So geben Sie "Ketsumaimo" standardmäßig in Python aus
Erweitertes Lernen 35 Python Lokale Entwicklung, fügen Sie einen Link zu myModule hinzu und importieren Sie ihn.
[Einführung in Pandas] Lesen Sie eine CSV-Datei ohne Spaltennamen und geben Sie ihr einen Spaltennamen
Teilen Sie jede PowerPoint-Folie in eine JPG-Datei und geben Sie sie mit Python aus
So lesen Sie Seriennummerndateien in einer Schleife, verarbeiten sie und zeichnen sie grafisch auf
[Python] So erstellen Sie eine lokale Webserverumgebung mit SimpleHTTPServer und CGIHTTPServer
So richten Sie eine Python-Umgebung mit pyenv ein
Versuchen Sie, eine komprimierte Datei mit Python und zlib zu erstellen
So erstellen Sie eine schöne Python-Umgebung auf einem neuen Mac und installieren Jupter Notebook
So konvertieren Sie eine JSON-Datei mit Python Pandas in eine CSV-Datei
So erstellen Sie ein Python-Paket mit VS Code
Lesen Sie die json-Datei mit Python, formatieren Sie sie und geben Sie json aus
So speichern Sie eine von Python gekratzte Tabelle in CSV
Python-Skript, das eine JSON-Datei aus einer CSV-Datei erstellt
So führen Sie einen Befehl mit einem Unterprozess in Python aus
Geben Sie das Ausgabeergebnis von sklearn.metrics.classification_report als CSV-Datei aus
Geben Sie einen Binärspeicherauszug in Binärdatei und zurück in eine Binärdatei aus
So zeichnen Sie interaktiv eine Pipeline für maschinelles Lernen mit scikit-learn und speichern sie in HTML
Eine Geschichte, die es einfach macht, den Wohnbereich mit Elasticsearch und Python abzuschätzen
[Python / Ruby] Mit Code verstehen Wie man Daten aus dem Internet abruft und in CSV schreibt
[Python] Was ist ein Tupel? Erklärt, wie man es benutzt und wie man es benutzt, ohne zu tippen.
Versuchen Sie es mit GUI, PyQt in Python
So führen Sie eine Python-Datei an einer Windows 10-Eingabeaufforderung aus
Ändern Sie das Standardausgabeziel in eine Datei in Python
So importieren Sie Dateien in Python an eine beliebige Stelle
So verschieben Sie ein zweidimensionales Array nur mit Python [Hinweis]
Wie man Youtube in MP3 konvertiert und es super sicher herunterlädt [Python]
Grundlagen des Python-Lernens ~ Wie wird eine Zeichenkette ausgegeben (angezeigt)? ~
So schreiben Sie eine Meta-Klasse, die sowohl Python2 als auch Python3 unterstützt
So verwenden Sie eine andere Datei als .fabricrc als Konfigurationsdatei
Ausgabe von Produktinformationen an csv mithilfe der Rakuten-Produktsuch-API [Python]
Übersicht über die virtuelle Python-Umgebung und deren Erstellung
Führen Sie den Ausgabecode auf dem lokalen Webserver in Python als "A, gibt vor, B zu sein" aus
So laden Sie Dateien mit Python in den Cloud-Speicher hoch [Erstellen Sie mit Raspberry PI # 1 eine Festkommakamera]
Wie man Python 3.x und 2.x auf einem Mac koexistiert (ich habe auch opencv als Bonus hinzugefügt)
[Python-Scraping] Geben Sie die URL und den Titel der Site mit einem bestimmten Schlüsselwort in eine Textdatei ein
Extrahieren Sie das Bigquery-Dataset und die Tabellenliste mit Python und geben Sie es in CSV aus
So installieren Sie OpenCV in Cloud9 und führen es in Python aus