Si vous n'êtes pas intéressé par le code et souhaitez une image ici
C'est un raclage du blog d'Hinatazaka Cette fois, nous nous concentrons uniquement sur le téléchargement d'images
Python:3.7 beautifulsoup4:4.8.1
Si vous avez des améliorations, tsukkomi, etc., veuillez laisser un commentaire ou Twitter (@Azumi_cpa).
from bs4 import BeautifulSoup
import requests
import time
def get_picture_url(url):
pic_urls = []
page_number = 0
#Obtenez l'url de l'image sur chaque page jusqu'à ce que l'article disparaisse
while True:
print(url + "&page=" + str(page_number))
response = requests.get(url + "&page=" + str(page_number))
soup = BeautifulSoup(response.text, 'lxml')
a = soup.find_all('div', class_='p-blog-article')
#Je pense que je peux écrire plus magnifiquement ici
if a != []:
for b in a:
for c in b.find_all('img'):
pic_urls.append(c["src"])
print(page_number)
page_number += 1
time.sleep(3)
else:
break
return pic_urls
def save_pictures(name, url):
#Obtenir l'URL de l'image
pic_urls = get_picture_url(url)
#Commencer à économiser
for i, url in enumerate(pic_urls):
try:
response = requests.get(url)
image = response.content
#Nom de membre/nombre.jpg
file_name = name + "/" + str(i) + ".jpg "
with open(file_name, "wb") as aaa:
aaa.write(image)
time.sleep(3)
except:
print("Erreur")
def get_members():
member_list = {}
response = requests.get('https://www.hinatazaka46.com/s/official/diary/member?ima=0000')
soup = BeautifulSoup(response.text, 'lxml')
members = soup.find_all("a", class_="p-blog-face__list")
for member in members:
#Supprimer les espaces et les sauts de ligne
member_name = member.text.replace(" ", "")
member_name = member_name.replace("\n", "")
#Obtenez également l'url de la 0ème page du blog(À partir de la page 1"&page=n"Ajouter
member_list[member_name] = "https://www.hinatazaka46.com" + member.attrs["href"]
return member_list
def main():
#Créer une liste de membres
members_list = get_members()
for name, url in members_list.items():
print(name + "début")
save_pictures(name, url)
main()