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.
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?
Bereiten Sie zunächst die Umgebung für das Schaben vor. Die diesmal erstellte Umgebung ist wie folgt.
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.
Dieses Mal werden wir mit der Implementierung gemäß dem folgenden Verfahren fortfahren.
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.
Auf diese Weise werden die Bilder für jedes Fan-Kit heruntergeladen.
Recommended Posts