[PYTHON] Scraping von Hinatazakas Blog-Bild

Einführung

Wenn Sie nicht an dem Code interessiert sind und ein Bild [hier] möchten (https://twitter.com/Azumi_cpa/status/1210042073316917248)

Es kratzt an Hinatazakas Blog Dieses Mal konzentrieren wir uns nur auf das Herunterladen von Bildern

Entwicklungsumgebung

Python:3.7 beautifulsoup4:4.8.1

Code

Wenn Sie Verbesserungen, Tsukkomi usw. haben, hinterlassen Sie bitte einen Kommentar oder Twitter (@Azumi_cpa).

from bs4 import BeautifulSoup
import requests
import time


def get_picture_url(url):
    pic_urls = []
    page_number = 0

    #Holen Sie sich die URL des Bildes auf jeder Seite, bis der Artikel verschwindet
    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')

        #Ich denke, ich kann hier schöner schreiben
        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):
    #URL des Bildes abrufen
    pic_urls = get_picture_url(url)

    #Beginne, zu sparen
    for i, url in enumerate(pic_urls):
        try:
            response = requests.get(url)
            image = response.content

            #Mitgliedsname/Nummer.jpg
            file_name = name + "/" + str(i) + ".jpg "
            with open(file_name, "wb") as aaa:
                aaa.write(image)

            time.sleep(3)
        except:
            print("Error")


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:
        #Leerzeichen und Zeilenumbrüche entfernen
        member_name = member.text.replace(" ", "")
        member_name = member_name.replace("\n", "")

        #Holen Sie sich auch die URL der 0. Seite des Blogs(Ab Seite 1"&page=n"Hinzufügen
        member_list[member_name] = "https://www.hinatazaka46.com" + member.attrs["href"]

    return member_list


def main():
    #Mitgliederliste erstellen
    members_list = get_members()
    
    for name, url in members_list.items():
        print(name + "Start")
        save_pictures(name, url)


main()

Was ist in Zukunft zu tun?

Recommended Posts

Scraping von Hinatazakas Blog-Bild
Bildersammlung mit Web Scraping
Umweltfreundliches Scraping mit Bildverarbeitung
Lassen Sie uns mit Python Image Scraping durchführen
Schaben 1
Nogizaka46 Holen Sie sich Blog-Bilder durch Schaben