Ici, nous allons vous présenter "Comment enregistrer des images sur le Web à la fois" par Web scraping.
: avertissement: Attention: avertissement: S'il est protégé par le droit d'auteur ou s'il est OK mais que le grattage est interdit par les conditions d'utilisation, il existe une possibilité de réclamer des dommages-intérêts, veuillez donc comprendre la loi sur le droit d'auteur et les conditions d'utilisation sur le Web Raclons.
Le scraping Web peut être fait dans différents langages tels que "Ruby", "PHP" et "Javascript", mais cette fois nous allons introduire la méthode en utilisant "Beautiful Soup" de Python.
① Installez beautifulsoup4 avec pip
pip install beautifulsoup4
② Décidez du site pour effectuer le web scraping
③ Obtenez l'URL de chaque page de lien d'image à partir de la page de liste
url = "https://www.irasutoya.com/search/label/%E3%83%93%E3%82%B8%E3%83%8D%E3%82%B9"
#Préparez une liste pour stocker l'URL de la page d'image
link_list = []
response = urllib.request.urlopen(url)
soup = BeautifulSoup(response, "html.parser")
#Obtenir toutes les balises de lien d'image
image_list = soup.select('div.boxmeta.clearfix > h2 > a')
#Extraire les liens d'image un par un
for image_link in image_list:
link_url = image_link.attrs['href']
link_list.append(link_url)
④ Obtenez toutes les balises du fichier image
for page_url in link_list:
page_html = urllib.request.urlopen(page_url)
page_soup = BeautifulSoup(page_html, "html.parser")
#Obtenir toutes les balises pour les fichiers image
img_list = page_soup.select('div.separator > a > img')
⑤ Retirez les balises img une par une et obtenez l'URL du fichier image.
for img in img_list:
#Obtenez l'URL du fichier image
img_url = (img.attrs['src'])
file_name = re.search(".*/(.*png|.*jpg)$", img_url)
save_path = output_folder.joinpath(file_name.group(1))
⑥ Téléchargez les données depuis l'URL du fichier image
try:
#Obtenir des données à partir de l'URL du fichier image
image = requests.get(img_url)
#Enregistrer les données dans le chemin du fichier de destination
open(save_path, 'wb').write(image.content)
#Afficher le nom du fichier enregistré
print(save_path)
except ValueError:
print("ValueError!")
C'est tout pour la procédure.
↓ ↓ Résultat de l'exécution ↓ ↓
J'ai pensé qu'il était un peu difficile d'imaginer les étapes ③ à ⑤, j'ai donc créé un flux d'extraction grossier.
De plus, la source de cette heure est également publiée sur Github, veuillez donc vous y référer à partir de ce qui suit. https://github.com/miyazakikna/SaveLocalImageWebScraping.git
Ici, j'ai expliqué comment enregistrer des images en vrac en utilisant Beatiful Soup of Python. J'ai eu l'image d'Irasutoya cette fois, mais je pense que vous pouvez télécharger l'image de la même manière sur d'autres sites, veuillez donc l'utiliser.
Cliquez ici pour savoir comment changer le nom du fichier à la fois après le téléchargement de l'image ↓ ↓ [[Efficacité du travail] Comment changer les noms de fichiers par lots avec Python] (https://qiita.com/miyazakikna/items/b9c6d6d83ebcd529afd7)
・ Grattons des images avec Python ・ Collection d'images par web scraping
Recommended Posts