本記事では、Pythonでサイト内のリンク先にある画像を一括取得する方法を紹介する。
広告
広告
実装例
下記、プログラムの実装例を示す。
(未インストールのライブラリがある場合は予めインストールしておくこと。)
from bs4 import BeautifulSoup
import requests
import pandas as pd
import time
import os
url = 'https://pictblog.com/'
response = requests.get(url)
time.sleep(3)
soup = BeautifulSoup(response.text, 'html.parser')
contents = soup.find(class_="list ect-vertical-card-2 ect-vertical-card ect-2-columns ecb-entry-border front-page-type-index")
get_a = contents.find_all('a')
title_texts = []
title_links = []
for i in range(len(get_a)):
if get_a[i].get("title") != None :
try:
text_ = get_a[i].get("title")
link_ = get_a[i].get("href")
title_texts.append(text_)
title_links.append(link_)
except:
pass
image_titles = []
image_lists = []
for j in range(len(title_links)):
title_link = title_links[j]
#print(title_link)
r = requests.get(title_links[j])
soup = BeautifulSoup(r.text, 'html.parser')
image_title = soup.find(class_="entry-title").text
image_titles.append(image_title)
get_contents = soup.find(class_="entry-content cf")
get_list_image = get_contents.find_all('img')
for k in range(len(get_list_image)):
if get_list_image[k].get("src") != None and 'https://pictblog.com/wp-content/uploads/' in get_list_image[k].get("src"):
try:
get_image_link = get_list_image[k].get("src")
image_lists.append(get_image_link)
except:
pass
os.mkdir('./images')
for image_data in image_lists:
r = requests.get(image_data)
time.sleep(3)
img_file = open('./images/' + image_data.split('/')[-1], mode='wb')
img_file.write(r.content)
img_file.close
上記プログラムを実行すると、本ブログのトップページに掲載されているリンクのURLを取得し、さらにリンク先の本文中の画像URLを一括取得、画像保存用フォルダを作成した上で画像を保存することができる。
(画像は、プログラムが保存されているフォルダ内の「image」フォルダに保存される。)
END
広告
コメント