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.
Les détails sont présentés dans la vidéo suivante https://youtu.be/gqzC0jHdpgw
Édition anglaise https://youtu.be/XKrDqGPSfVw
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()