Versuchen Sie es mit Python + Beautiful Soup

Zweck

Lernen Sie das Schaben mit Python + Beautiful Soup.

Hintergrund

Ich möchte nur Bilder von der Website herunterladen. Ich dachte leicht, dass es einfach wäre, wenn ich es kratzen könnte, aber das war unerwartet schwierig, also werde ich schreiben, was ich vorerst getan habe.

Überblick

Ich habe keinen Teil zum Herunterladen des Bildes gemacht, weil ich das Schaben lernen wollte. Es verwendet die kostenlose Software Irvine des Downloaders. Nummerieren Sie die heruntergeladenen Bilddateien auch in die nummerierten Dateinamen um und kombinieren Sie sie zu einer Zip-Datei. Der Fluss ist wie folgt.

  1. Erstellen Sie mit dem Erstellungswerkzeug eine URL-Liste mit Bildern von der Website und kopieren Sie sie in die Zwischenablage
  2. In Irvine einfügen und herunterladen
  3. Benennen Sie die Datei mit dem Erstellungswerkzeug um und komprimieren Sie sie in eine Zip-Datei

Übrigens, wenn Sie die Funktionen von Irvine richtig nutzen, können Sie alles tun, ohne so etwas zu machen! Sag das nicht. Der Zweck ist es, das Schaben zu lernen.

Umgebung und Einstellungen

Unter Windows 10 durchgeführt. Wenn Sie Chocolatey verwenden, starten Sie zur Installation von Python3 cmd oder Windows PowerShell mit Administratorrechten und führen Sie den folgenden Befehl aus.

> choco install python

Wenn unterwegs Auswahlmöglichkeiten vorhanden sind, y + Alle eingeben. Öffnen Sie nach Abschluss der Installation cmd oder PowerShell erneut und führen Sie den folgenden Befehl aus.

> pip install requests
> pip install bs4
> pip install pyperclip

Laden Sie den Quellcode (zip) von Git herunter und entpacken Sie ihn. Der erweiterte Pfad lautet "Git / transing /". Laden Sie Irvine herunter, installieren Sie es und starten Sie es. image.png Erstellen Sie einen neuen Ordner "folder01" im Standardordner. image.png Der neu erstellte Ordner "folder01" ist das Skript "HTML2imglist.py". Sagen wir einen Weg mit. image.png Sie können es später ändern, indem Sie "Kontexteinstellungen" aus dem Kontextmenü von "Ordner01" auswählen. image.png "Ordner 01" wurde zu Irvine hinzugefügt. image.png Wählen Sie "Extras" - "Optionseinstellungen" aus dem Menü. Öffnen Sie die Registerkarte "Zwischenablage" und aktivieren Sie das Kontrollkästchen "Direkt aus der Zwischenablage registrieren". image.png Klicken Sie zum Schließen auf die Schaltfläche OK. Alternativ müssen Sie möglicherweise "Verwalten" - "Zwischenablage-Monitor" aus dem Menü auswählen, um es einzuschalten. An meiner Hand funktionierte es, ob es EIN oder AUS war.

Wie benutzt man

Die Erklärung richtet sich an die Website, die offene Daten aus der lokalen Präfektur Ishikawa enthält.

Zielen Sie auf die folgenden Miniaturbilder von Aussichtspunkten. image.png

Wenn Sie die Eingabeaufforderung (cmd) mit dem Pfad "Git / traning" starten, verschieben Sie den Pfad zu "Git / traning / python / Web_scraping". Führen Sie das Skript aus, indem Sie die URL der Website angeben, die das Bild enthält, das Sie als Argument herunterladen möchten.

> cd .\python\Web_scraping
> python Html2imglist.py https://www.hot-ishikawa.jp/photo/

image.png Anschließend werden der Titel und die URL-Liste des Bildes in die Zwischenablage kopiert. Starten Sie Irvine und fügen Sie es in "folder01" ein, um den Download zu starten. Warten Sie also, bis der Download abgeschlossen ist. image.png Wenn Sie zur Eingabeaufforderung zurückkehren und eine beliebige Taste drücken, wird die heruntergeladene Bilddatei in den nummerierten Dateinamen umbenannt und zu einer Zip-Datei zusammengefasst. image.png ↑ "folder01.zip" wird erstellt. image.png Wenn Sie eine beliebige Taste drücken, wird der Ordner "folder01" geleert. Versuchen Sie, "folder01.zip" auf eine Viewer-Software wie Image Viewer zu ziehen und dort abzulegen. image.png Es wurde sicher angezeigt. Image Viewer wechselt mit der Taste → zur nächsten Folie und mit der Taste ← zur vorherigen Folie.

Schaben

Zeigen Sie den Quellcode der Zielwebsite "Download von Fotomaterial | Hot Ishikawa Tabi Net" an und überprüfen Sie das Titel-Tag. image.png Wenn Sie dies mit einem CSS-Selektor ausdrücken, erhalten Sie den Titel "HTML-Kopf". Überprüfen Sie auch die Tag-Struktur bis zur Bilddatei. image.png Die Datei, die Sie herunterladen möchten, hat das folgende src-Attribut.

Zeile 475:<img class="img-responsive" src="/photo/thumbnail/749/trim/1/1?v=0ca07195022078860363c009b75962f59c80bde5" alt="Kenrokuen">
~
Zeile 486:<img class="img-responsive" src="/photo/thumbnail/740/trim/1/1?v=f4145f658b274299f83a6038ef58f9b8d0cb5ac1" alt="Kanazawa Station">

Die Reihenfolge der Tags bis zu diesem Punkt ist wie folgt.

<html>
    <body>
        ~
        <div class="photoItems">
            <ul>
                <li>
                    <div class="photoItem">
                        <a>
                            <img src="1. Zielbild">
                        </a>
                    </div>
                 </li>
                <li>
                    <div class="photoItem">
                        <a>
                            <img src="2. Zielbild">
                        </a>
                    </div>
                 </li>

Diese mit CSS-Selektoren auszudrücken ist "html body div .photoItems ul li div .photoItem a img". Ein wenig abgekürzt als "html body div .photoItem img".

Da die Art und Weise, wie diese Bilddatei beschrieben wird, je nach Website unterschiedlich ist, kann sie mit den folgenden Variablen in der Datei HTML2imglist.py angegeben werden.

Zeile 50: Titel_css_select = 'html head title'
Zeile 51: img_css_select = 'html body div .photoItem img'
Zeile 52: img_attr = 'src'

abschließend

Ich dachte, der CSS-Selektor kratzt sich selbst. In diesem Sinne hat dieser Artikel nichts über das Schaben gelernt, aber es muss eine Schuld sein.

ähnliche Links

Gezielte Site

Referenz

Recommended Posts

Versuchen Sie es mit Python + Beautiful Soup
Kratzen mit Python und schöner Suppe
Versuchen Sie es mit Python.
Kratzen mit schöner Suppe
Tischkratzen mit schöner Suppe
Scraping mit Python
Mehrere Seiten mit Beautiful Soup verschrotten
Scraping mit Python
Kratzen mit schöner Suppe in 10 Minuten
Website-Scraping mit Beautiful Soup in Python
Versuchen Sie HTML-Scraping mit der Python-Bibliothek
[Python] Eine Tabelle mit Beautiful Soup kratzen
[Für Anfänger] Versuchen Sie Web Scraping mit Python
Scraping in Python (Vorbereitung)
Scraping mit Python + PhantomJS
Meine schöne Suppe (Python)
Schaben mit Selen [Python]
Scraping mit Python + PyQuery
Scraping von RSS mit Python
Schreiben Sie einen einfachen kopflosen Web-Scraping-Bot in Python mit Beautiful Soup 4
Ich habe versucht, mit Python zu kratzen
Web Scraping mit Python + JupyterLab
Schaben mit Selen in Python
Schaben mit Selen + Python Teil 1
Schaben mit Chromedriver in Python
Festliches Scraping mit Python, Scrapy
Probieren Sie die Python-Ausgabe mit Haxe 3.2 aus
Scraping mit Selen in Python
Scraping mit Tor in Python
Kratzwettervorhersage mit Python
Versuchen Sie, Python mit Try Jupyter auszuführen
Schaben mit Selen + Python Teil 2
Versuchen Sie die Gesichtserkennung mit Python
Ich habe versucht, mit Python zu kratzen
Web Scraping Anfänger mit Python
Krabbeltraining mit schöner Suppe
[Python] Löschen Sie, indem Sie ein Tag mit Beautiful Soup angeben
Versuchen Sie, COVID-19 Tokyo-Daten mit Python zu kratzen
Schöne Suppe
Scraping mit Node, Ruby und Python
Scraping mit Selen in Python (Basic)
Scraping mit Python, Selen und Chromedriver
Versuchen Sie, Facebook mit Python zu betreiben
[Python] Ein Memorandum der schönen Suppe4
Versuchen Sie die Singularwertzerlegung mit Python
Web Scraping mit Python Erster Schritt
Ich habe versucht, WebScraping mit Python.
Versuchen Sie Python
[Scraping] Python-Scraping
Lassen Sie uns mit Python Image Scraping durchführen
Versuchen Sie die Gesichtserkennung mit Python + OpenCV
Scraping von Google News-Suchergebnissen in Python (2) Verwenden Sie Beautiful Soup
Holen Sie sich Qiita-Trends mit Python-Scraping
Ich habe mit Python verschiedene Dinge ausprobiert: Schaben (Beautiful Soup + Selenium + PhantomJS) und morphologische Analyse
Versuchen Sie die Frequenzsteuerungssimulation mit Python
"Scraping & maschinelles Lernen mit Python" Lernnotiz
Holen Sie sich Wetterinformationen mit Python & Scraping
Abrufen von Eigenschaftsinformationen durch Scraping mit Python