J'ai essayé de collecter automatiquement des images de Kanna Hashimoto avec Python! !!

Grattage

C'est une technologie qui extrait automatiquement les informations des pages Web. Cette fois, nous collecterons automatiquement des images de Mme Kanna Hashimoto à partir de la page de résultats de recherche d'images du moteur de recherche.

Que mettre en œuvre

  1. Accédez à l'URL du résultat de la recherche d'image
  2. Pagénation
  3. Obtenez la liste d'URL des images
  4. Télécharger

Les détails sont présentés dans la vidéo suivante https://youtu.be/gqzC0jHdpgw

Édition anglaise https://youtu.be/XKrDqGPSfVw

Code source

scraping.py


import requests
from bs4 import BeautifulSoup
import urllib.request
import time

def scraping(url, max_page_num):
    #Mise en œuvre de la pagénation
    page_list = get_page_list(url, max_page_num)
    #Obtenir la liste des URL des images
    all_img_src_list = []
    for page in page_list:
        img_src_list = get_img_src_list(page)
        all_img_src_list.extend(img_src_list)
    return all_img_src_list


def get_img_src_list(url):
    #Accéder à la page des résultats de recherche
    response = requests.get(url)
    #Analyse de la réponse
    soup = BeautifulSoup(response.text, 'html.parser')
    img_src_list = [img.get('src') for img in soup.select('p.tb img')]
    return img_src_list


def get_page_list(url, max_page_num):
    img_num_per_page = 20
    page_list = [f'{url}{i*img_num_per_page+1}' for i in range(max_page_num)]
    return page_list

def download_img(src, dist_path):
    time.sleep(1)
    with urllib.request.urlopen(src) as data:
        img = data.read()
        with open(dist_path, 'wb') as f:
            f.write(img)
        
    
def main():
    url = "https://search.yahoo.co.jp/image/search?p=%E6%A9%8B%E6%9C%AC%E7%92%B0%E5%A5%88&ei=UTF-8&b="
    MAX_PAGE_NUM = 1
    all_img_src_list = scraping(url, MAX_PAGE_NUM)
    
    #Téléchargement d'image
    for i, src in enumerate(all_img_src_list):
        download_img(src, f'./img/kanna_{i}.jpg')


if __name__ == '__main__':
    main()

Recommended Posts

J'ai essayé de collecter automatiquement des images de Kanna Hashimoto avec Python! !!
J'ai essayé la "conversion de morphologie" de l'image avec Python + OpenCV
J'ai essayé d'envoyer automatiquement la littérature du nouveau virus corona à LINE avec Python
[Python] J'ai essayé de créer automatiquement un rapport quotidien de YWT avec la messagerie Outlook
J'ai essayé de corriger "J'ai essayé la simulation probabiliste du jeu de bingo avec Python"
J'ai essayé d'améliorer l'efficacité du travail quotidien avec Python
J'ai essayé des centaines de millions de SQLite avec python
J'ai essayé d'obtenir des données CloudWatch avec Python
J'ai essayé de sortir LLVM IR avec Python
J'ai essayé d'automatiser la fabrication des sushis avec python
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.
J'ai essayé d'extraire automatiquement les mouvements des joueurs Wiire avec un logiciel
J'ai essayé de rationaliser le rôle standard des nouveaux employés avec Python
[Outlook] J'ai essayé de créer automatiquement un e-mail de rapport quotidien avec Python
J'ai essayé d'obtenir les informations sur le film de l'API TMDb avec Python
J'ai essayé fp-growth avec python
J'ai essayé de gratter avec Python
J'ai essayé de lire et d'enregistrer automatiquement avec VOICEROID2 2
J'ai essayé de résumer comment utiliser matplotlib de python
J'ai fait une application d'envoi de courrier simple avec tkinter de Python
J'ai essayé d'implémenter Mine Sweeper sur un terminal avec python
J'ai essayé de démarrer avec le script python de blender_Part 01
J'ai essayé de toucher un fichier CSV avec Python
[OpenCV / Python] J'ai essayé l'analyse d'image de cellules avec OpenCV
J'ai essayé de résoudre Soma Cube avec python
J'ai essayé de lire et d'enregistrer automatiquement avec VOICEROID2
J'ai essayé d'implémenter le perceptron artificiel avec python
J'ai essayé de visualiser facilement les tweets de JAWS DAYS 2017 avec Python + ELK
J'ai essayé de résoudre le problème avec Python Vol.1
J'ai essayé gRPC avec Python
J'ai essayé de gratter avec du python
[Python] J'ai essayé d'obtenir Json de squid ring 2
J'ai essayé de résumer les opérations de chaîne de Python
J'ai essayé de résoudre la théorie des nombres entiers d'AOJ avec Python
Je voulais collecter beaucoup d'images, j'ai donc essayé d'utiliser "google image download"
J'ai essayé d'automatiser la mise à jour de l'article du blog Livedoor avec Python et sélénium.
J'ai essayé de générer automatiquement la chaîne de caractères à entrer dans M. Adjustment avec Python
J'ai essayé de collecter automatiquement des images érotiques de Twitter à l'aide de l'API Cloud Vision de GCP
J'ai essayé de comparer la vitesse de traitement avec dplyr de R et pandas de Python
Le 15e temps réel hors ligne, j'ai essayé de résoudre le problème de l'écriture avec python
J'ai essayé la "correction gamma" de l'image avec Python + OpenCV
Je souhaite spécifier une autre version de Python avec pyvenv
J'ai essayé de créer diverses "données factices" avec Python faker
J'ai essayé de trouver la moyenne de plusieurs colonnes avec TensorFlow
J'ai essayé différentes méthodes pour envoyer du courrier japonais avec Python
J'ai essayé de créer automatiquement un rapport avec la chaîne de Markov
J'ai essayé d'exécuter Movidius NCS avec python de Raspberry Pi3
Je veux assister automatiquement à des cours en ligne avec Python + Selenium!
[Python] J'ai essayé de visualiser des tweets sur Corona avec WordCloud
[Python] J'ai essayé de visualiser la relation de suivi de Twitter
Mayungo's Python Learning Episode 3: J'ai essayé d'imprimer des nombres
J'ai essayé d'implémenter ListNet d'apprentissage de rang avec Chainer
J'ai essayé de créer une interface graphique à trois yeux côte à côte avec Python et Tkinter
J'ai essayé de simuler la probabilité d'un jeu de bingo avec Python
J'ai essayé d'implémenter le blackjack du jeu Trump en Python
J'ai essayé de toucher Python (installation)
Comment collecter des images en Python
Je veux déboguer avec Python