Webスクレイピングで自動画像収集するための画像の要素が取得できない
Q&A
Closed
解決したいこと
WebスクレイピングでPythonを使用し、下記のメルカリのWebページ(URL1,URL2)から画像を自動収集するための要素が取得できません。BeautifulSoupのfindの使い方が悪いのだと思いますが方法が分かりません。正しい取得方法を教えて下さいますでしょうか。
URL1
https://jp.mercari.com/item/m76917796117
URL2
https://jp.mercari.com/item/m69984898592
image_url = soup.find('img')
※image_urlがNone
発生している問題・エラー
エラーはありません。
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
# 画像のURLを取得
image_url = soup.find('img')
print(image_url)
該当するソースコード
import requests
from bs4 import BeautifulSoup
import os
def download_mercari_image(url, directory):
#商品ページを取得
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
# print(soup)
# 画像のURLを取得
image_url = soup.find('img')
print(image_url)
#画像ダウンロード
# image_response = requests.get(image_url)
# print(image_response)
# encodingを追加
# image_response.encoding = image_response.apparent_encoding
# image_data = image_response.text
#保存先ディレクトリ
os.makedirs(directory, exist_ok=True)
#ファイルパスの生成
file_name = url.split('/')[-1]
file_path = os.path.join(directory, file_name)
# print(file_path)
#画像をファイルに保存
# with open(file_path, mode='wb') as f:
# print(image_data)
# f.write(image_data)
# print('画像をダウンロードしました')
if __name__ == '__main__':
#WebサイトのURL
item_url1 = 'https://jp.mercari.com/item/m69984898592'
item_url2 = 'https://jp.mercari.com/item/m76917796117'
#画像の保存先ディレクトリ
output_directory = 'downloaded_images'
#画像のダウンロード
download_mercari_image(item_url1, output_directory)
download_mercari_image(item_url2, output_directory)
自分で試したこと
BeautifulSoup find、find_allについて調査
https://yu-nix.com/archives/beautifulsoup4-find/
修正1
image_url = soup.find('div', class_='imageContainer__f8ddf3a2')
結果:None
修正2
image_url = soup.find('img', src='https://static.mercdn.net/item/detail/orig/photos/m76917796117_1.jpg?1681360991')
結果:None