Ich wollte Bilder für Deep Learning sammeln und kam zu diesem Artikel. Es hat nicht funktioniert, weil sich der Inhalt der Webseite geändert hat, also habe ich es neu geschrieben.
image_download.py
import requests
import urllib.request
import time
import json
def scraping(url, max_page_num):
#Pagenation Implementierung
page_list = get_page_list(url, max_page_num)
#Bild-URL-Liste abrufen
all_img_src_list = []
for page in page_list:
try:
img_src_list = get_img_src_list(page)
all_img_src_list.extend(img_src_list)
except:pass
return all_img_src_list
def get_img_src_list(url):
#Rufen Sie die Suchergebnisseite auf
response = requests.get(url)
webtext = response.text
#Im Originalartikel habe ich Beatiful-Suppe verwendet, aber ich konnte das Bild nicht bekommen, also habe ich es geändert.
start_word='<script>__NEXT_DATA__ = '
start_num = webtext.find(start_word)
webtext_start = webtext[start_num + len(start_word):]
end_word = ';__NEXT_LOADED_PAGES__='
end_num = webtext_start.find(end_word)
webtext_all = webtext_start[:end_num]
web_dic = json.loads(webtext_all)
img_src_list = [img['imageSrc'] for img in web_dic["props"]["initialProps"]["pageProps"]["algos"]]
return img_src_list
def get_page_list(url, max_page_num):
img_num_per_page = 20 #Wenn Sie dies ändern, ändert sich die Anzahl der Downloads.
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)
try:
with urllib.request.urlopen(src) as data:
img = data.read()
with open(dist_path, 'wb') as f:
f.write(img)
except:
pass
def main():
search_words = ["Kanna Hashimoto"] #Übergeben Sie das zu suchende Wort in eine Liste.
for num, search_word in enumerate(search_words):
url = f"https://search.yahoo.co.jp/image/search?p={search_word}&ei=UTF-8&b="
max_page_num = 20
all_img_src_list = scraping(url, max_page_num)
#Bild herunterladen
for i, src in enumerate(all_img_src_list):
download_img(src, f'./img/image_{num}_{i}.jpg') #Bitte ändern Sie das Speicherziel entsprechend
if __name__ == '__main__':
main()
Wenn Sie einen img-Ordner erstellen und den obigen Vorgang mit Python ausführen, wird das Bild im img-Ordner gespeichert. Das ist das Bild.
Seien Sie vorsichtig, da das Scraping den Server der anderen Partei belastet!
Ich habe versucht, automatisch Bilder von Kanna Hashimoto mit Python zu sammeln! !!
Recommended Posts