Nogisaka 46 J'ai sauvé l'image du blog en grattant avec Python. J'ai gratté la première page de Midsummer Akimoto.
scraping.py
import requests
import urllib.request
import os
from bs4 import BeautifulSoup
def scraping():
#URL du membre
member_name = "manatsu.akimoto"
url = "http://blog.nogizaka46.com/" + member_name + "/"
#Créer le dossier
if not os.path.isdir(member_name): # ”member_S'il n'y a pas de dossier «nom»
print("Créer le dossier")
os.mkdir(member_name)
#Pour compter le nombre de feuilles enregistrées
cnt = 0
#Génération d'objets BeautifulSoup
headers = {"User-Agent": "Mozilla/5.0"}
soup = BeautifulSoup(requests.get(
url, headers=headers).content, 'html.parser')
#Trouvez le html où se trouve l'image
for entry in soup.find_all("div", class_="entrybody"): #Obtenir tous les corps d'entrée
for img in entry.find_all("img"): #Obtenir toutes les images
cnt += 1
urllib.request.urlretrieve(
img.attrs["src"], "./" + member_name + "/" + member_name + "-" + str(cnt) + ".jpeg ")
print("l'image" + str(cnt) + "J'ai enregistré une feuille.")
if __name__ == '__main__':
scraping()
Puisque le nom du membre est utilisé comme URL, je mets le nom du membre que je souhaite obtenir dans member_name.
member_name = "manatsu.akimoto"
url = "http://blog.nogizaka46.com/" + member_name + "/"
Il y a une explication facile à comprendre sur le site suivant. Site de référence: https://python.civic-apps.com/beautifulsoup4-selector/
En regardant le html qui compose le blog, Il y a un corps dans la balise div du nom de classe "entrybody" Il y a une image dans la balise img, alors enregistrez-la dans un dossier dès que vous la trouvez.
for entry in soup.find_all("div", class_="entrybody"):#Obtenir tous les corps d'entrée
for img in entry.find_all("img"):#Obtenir toutes les images
cnt += 1
urllib.request.urlretrieve(img.attrs["src"], "./" + member_name + "/" + member_name + "-" + str(cnt) + ".jpeg ")
Créer le dossier
J'ai enregistré 22 images.
Recommended Posts