Vive le bon travail. @ibusan. Cette fois, comme le titre l'indique, nous avons implémenté un programme qui télécharge automatiquement les images par grattage. Je le laisserai dans l'article sous forme de mémorandum afin de pouvoir regarder en arrière quand je l'oublierai.
Il existe différentes cibles pour le scraping, mais cette fois, le Fan Kit du jeu "Princess Connect! Re: Dive" auquel je suis accro. Je souhaite collecter automatiquement /). C'est beaucoup à faire à la main, n'est-ce pas?
Tout d'abord, préparez l'environnement pour le grattage. L'environnement construit cette fois est le suivant.
Anaconda est une plate-forme qui fournit des packages Python pour la science des données. Vous pouvez l'installer à partir du lien ci-dessus. ChromDriver est un pilote requis pour le fonctionnement automatique de Chrom par programmation. Si Anaconda est installé
pip install chromedriver-binary=='Version du pilote'
Vous pouvez l'installer avec. Le site suivant sera utile pour installer Chrom Driver. Procédure d'installation du pilote Chrom
La bibliothèque à utiliser est la suivante. Tous peuvent être installés avec pip.
Cette fois, nous procéderons à la mise en œuvre selon la procédure suivante.
Maintenant que la politique a été décidée, nous pouvons commencer à coder.
from selenium import webdriver
import time
import os
from bs4 import BeautifulSoup
import requests
Tout d'abord, importez la bibliothèque. Importez les 5 bibliothèques répertoriées dans Préparation.
#Lancez Google Chrome
browser = webdriver.Chrome("/Users/ibuki_sakata/opt/anaconda3/lib/python3.7/site-packages/chromedriver_binary/chromedriver")
browser.implicitly_wait(3)
Utilisez ensuite ChromDriver et le sélénium pour démarrer Chrom. La deuxième ligne est la description du démarrage. Le chemin entre parenthèses est le chemin du pilote Chrom. La description sur la troisième ligne est pour mettre le programme en pause afin que le processus suivant ne se poursuive pas tant que le navigateur n'est pas démarré.
#Aller à l'URL
url_pricone = "https://priconne-redive.jp/fankit02/"
browser.get(url_pricone)
time.sleep(3)
L'URL de la première page du kit de fans est spécifiée dans la première ligne et la transition est effectuée vers l'URL spécifiée dans la deuxième ligne. La méthode get du navigateur est similaire à la méthode get de communication http.
#Obtenez les URL de toutes les pages Web des kits de fans
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"))
Ici, obtenez l'URL de toutes les pages telles que la première page et la deuxième page. Utilisez BeautifulSoup pour obtenir l'URL. Il existe de nombreux sites qui expliquent en détail comment utiliser BeautifulSoup, je ne vais donc pas l'expliquer ici.
#Télécharger le fan kit
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()
Téléchargez le kit ventilateur ici. Les bases sont les mêmes qu'avant. Le flux consiste à obtenir la source html avec les requêtes, à l'analyser avec BeautifulSoup et à obtenir la balise souhaitée. Les images sont téléchargées en ouvrant le fichier en mode binaire et en écrivant les données d'image obtenues dans les requêtes.
De cette manière, les images sont téléchargées pour chaque fan kit.
Recommended Posts