Lernen Sie das Schaben mit Python + Beautiful Soup.
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.
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.
Ü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.
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. Erstellen Sie einen neuen Ordner "folder01" im Standardordner. Der neu erstellte Ordner "folder01" ist das Skript "HTML2imglist.py". Sagen wir einen Weg mit. Sie können es später ändern, indem Sie "Kontexteinstellungen" aus dem Kontextmenü von "Ordner01" auswählen. "Ordner 01" wurde zu Irvine hinzugefügt. Wählen Sie "Extras" - "Optionseinstellungen" aus dem Menü. Öffnen Sie die Registerkarte "Zwischenablage" und aktivieren Sie das Kontrollkästchen "Direkt aus der Zwischenablage registrieren". 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.
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.
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/
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. 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. ↑ "folder01.zip" wird erstellt. 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. Es wurde sicher angezeigt. Image Viewer wechselt mit der Taste → zur nächsten Folie und mit der Taste ← zur vorherigen Folie.
Zeigen Sie den Quellcode der Zielwebsite "Download von Fotomaterial | Hot Ishikawa Tabi Net" an und überprüfen Sie das Titel-Tag. 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. 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'
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.
Gezielte Site
Referenz
Recommended Posts