[PYTHON] Laden Sie Bilder automatisch mit Scraping herunter

Ist Prost auf gute Arbeit. @ibusan. Dieses Mal haben wir, wie der Titel schon sagt, ein Programm implementiert, das Bilder automatisch durch Scraping herunterlädt. Ich werde es im Artikel als Memorandum belassen, damit ich zurückblicken kann, wenn ich es vergesse.

Überblick

Es gibt verschiedene Ziele zum Schaben, aber dieses Mal das Fan Kit des Spiels "Princess Connect! Re: Dive", von dem ich süchtig bin. Ich möchte automatisch sammeln /). Es ist viel von Hand zu tun, nicht wahr?

Vorbereitung

Bereiten Sie zunächst die Umgebung für das Schaben vor. Die diesmal erstellte Umgebung ist wie folgt.

  1. Anaconda
  2. ChromDriver

Anaconda ist eine Plattform, die Python-Pakete für Data Science bereitstellt. Sie können es über den obigen Link installieren. ChromDriver ist ein Treiber, der für den automatischen automatischen Betrieb von Chrom erforderlich ist. Wenn Anaconda installiert ist

pip install chromedriver-binary=='Treiberversion'

Sie können es mit installieren. Die folgende Website ist hilfreich für die Installation des Chrom-Treibers. Installationsverfahren für den Chrom-Treiber

Die zu verwendende Bibliothek lautet wie folgt. Alle können mit pip installiert werden.

  1. selenium
  2. BeutifulSoup
  3. requests
  4. os
  5. time

Politik

Dieses Mal werden wir mit der Implementierung gemäß dem folgenden Verfahren fortfahren.

  1. Rufen Sie die URL aller Seiten (häufig 1 Seite, 2 Seiten) von [Fankit-Seite] ab (https://priconne-redive.jp/fankit02/).
  2. Holen Sie sich alle Fan-Kit-URLs für jede Seite Gehen Sie zu der in 3.2 erhaltenen URL und laden Sie das Fan-Kit herunter

Codierung

Nachdem die Richtlinie festgelegt wurde, können wir mit dem Codieren beginnen.

from selenium import webdriver
import time
import os
from bs4 import BeautifulSoup
import requests

Importieren Sie zunächst die Bibliothek. Importieren Sie die 5 unter Vorbereitung aufgeführten Bibliotheken.

#Starten Sie Google Chrome
browser = webdriver.Chrome("/Users/ibuki_sakata/opt/anaconda3/lib/python3.7/site-packages/chromedriver_binary/chromedriver")
browser.implicitly_wait(3)

Verwenden Sie dann ChromDriver und Selen, um Chrom zu starten. Die zweite Zeile ist die Beschreibung zum Starten. Der Pfad in Klammern ist der Chrom-Treiberpfad. Die Beschreibung in der dritten Zeile dient zum Anhalten des Programms, damit der nächste Vorgang erst fortgesetzt wird, wenn der Browser gestartet wird.

#Gehen Sie zur URL
url_pricone = "https://priconne-redive.jp/fankit02/"
browser.get(url_pricone)
time.sleep(3)

Die URL der oberen Seite des Fan-Kits wird in der ersten Zeile angegeben, und der Übergang erfolgt zu der in der zweiten Zeile angegebenen URL. Die Browser-Get-Methode ähnelt der http-Kommunikations-Get-Methode.

#Erhalten Sie URLs für alle Fan-Kit-Webseiten
current_url = browser.current_url
html = requests.get(current_url)
bs = BeautifulSoup(html.text, "html.parser")
fankitPage = bs.find("ul", class_="page-nav").find_all("li")
page = []

for li_tag in fankitPage:
    a_tag = li_tag.find("a")
    if(a_tag.get('class')):
        page.append(current_url)
    else:
        page.append(a_tag.get("href"))

Hier erhalten Sie die URL aller Seiten wie der ersten und der zweiten Seite. Verwenden Sie BeautifulSoup, um die URL abzurufen. Es gibt viele Websites, auf denen die Verwendung von BeautifulSoup ausführlich erläutert wird. Daher werde ich hier nicht darauf eingehen.

#Laden Sie das Fan-Kit herunter
for p in page:
    html = requests.get(p)
    browser.get(p)
    time.sleep(1)
    bs = BeautifulSoup(html.text, "html.parser")
    ul_fankit_list = bs.find("ul", class_="fankit-list")
    li_fankit_list = ul_fankit_list.find_all("li")
    fankit_url = []
    for li_tab in li_fankit_list:
        a_tab = li_tab.find("a")
        fankit_url.append(a_tab.get("href"))

    for url in fankit_url:
        browser.get(url)
        time.sleep(1)
        html_fankit = requests.get(url)
        bs_fankit = BeautifulSoup(html_fankit.text, "html.parser")
        h3_tag = bs_fankit.find("h3")
        title = h3_tag.text
        os.makedirs(title, exist_ok=True)
        ul_dl_btns = bs_fankit.find_all("ul", class_="dl-btns")
        for i,ul_tag in enumerate(ul_dl_btns, start=0):
            li_tag = ul_tag.find("li")
            a_tag = li_tag.find("a")
            img_url = a_tag.get("href")
            browser.get(img_url)
            time.sleep(1)
            print(img_url)
            img = requests.get(img_url)
            with open(title + "/{}.jpg ".format(i), "wb") as f:
                f.write(img.content)
        browser.back()
    

Laden Sie hier das Fan-Kit herunter. Die Grundlagen sind die gleichen wie zuvor. Der Ablauf besteht darin, die HTML-Quelle mit Anforderungen abzurufen, sie mit BeautifulSoup zu analysieren und das gewünschte Tag abzurufen. Bilder werden heruntergeladen, indem die Datei im Binärmodus geöffnet und die in Anforderungen erhaltenen Bilddaten geschrieben werden.

Ausführungsergebnis

スクリーンショット 2020-06-07 14.53.32.png

Auf diese Weise werden die Bilder für jedes Fan-Kit heruntergeladen.

Recommended Posts

Laden Sie Bilder automatisch mit Scraping herunter
Speichern Sie Bilder mit Web Scraping
Bilder können mit Google_images_download nicht heruntergeladen werden
Laden Sie Bilder mit Falcon hoch und laden Sie sie herunter
Schaben mit Selen
Schaben mit Selen ~ 2 ~
Scraping mit Python
Scraping mit Python
Schaben mit Selen
100 Fortnite-Bilder kratzen
Suchen und laden Sie YouTube-Videos automatisch mit Python herunter
Massen-Download-Bilder von einer bestimmten URL mit Python
Erfolgreiches Schaben mit Selen
Scraping in Python (Vorbereitung)
Versuchen Sie es mit Python.
Laden Sie Bilder mithilfe von Anfragen herunter
Scraping mit Python + PhantomJS
Schaben mit kratzender Schale
Schaben mit Selen [Python]
Scraping mit Python + PyQuery
Kratzen mit schöner Suppe
Scraping von RSS mit Python
Bild mit Python-Pptx zentrieren
Fügen Sie Bilder mit Python + α automatisch in Powerpo-Materialien ein
Massen-Download-Bilder von einer bestimmten Site-URL mit Python
Bild herunterladen mit Flickr API
Angrenzende Bilder mit Python Teil 1
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
Sofort von Google-Bildern abkratzen!
Scraping mit Selen in Python
Einfaches Web-Scraping mit Scrapy
Scraping mit Tor in Python
Kratzwettervorhersage mit Python
Schaben Nikkei Durchschnitt mit Dramatiker-Python
Schaben mit Selen + Python Teil 2
Kombiniere zwei Bilder mit Django
Ich habe versucht, mit Python zu kratzen
Web Scraping Anfänger mit Python
Laden Sie die CSV-Datei mit Python herunter
I-Town-Seite mit Selen abkratzen
Tischkratzen mit schöner Suppe
Batch-Download-Bilder von einer bestimmten URL mit Python Modified-Version
Ich habe versucht, automatisch Bilder von Kanna Hashimoto mit Python zu sammeln! !!
Ich habe versucht, mich automatisch mit Selen bei Twitter anzumelden (RPA, Scraping)
Zahlenerkennung in Bildern mit Python
Versuchen Sie es mit Python + Beautiful Soup
Holen Sie sich Splunk Download-Link durch Scraping
Laden Sie Bilder von "Irasutoya" mit Scrapy herunter
Mehrere Seiten mit Beautiful Soup verschrotten
Scraping mit Node, Ruby und Python
Implementierter Dateidownload mit Python + Bottle
Scraping mit Selen in Python (Basic)
Scraping mit Python, Selen und Chromedriver
Scraping von Alexas Web Rank mit pyQuery
Web Scraping mit Python Erster Schritt