前提・実現したいこと
Pythonを使って画像スクレイピングをしていました
以下のコードを実行して’プログラミング’の画像を取得していたのですがエラーが出てしまいます
発生している問題・エラーメッセージ
FileNotFoundError Traceback (most recent call last) <ipython-input-1-5505e60c047c> in <module> 80 t.write(image.content) 81 else: ---> 82 with open(IMAGE_DIR + title_name + '.jpg', 'wb') as t: 83 t.write(image.content) 84 FileNotFoundError: [Errno 2] No such file or directory: './プログラミング/子供/小・中学生のプログラミング教室|スタープログラミングスクール.jpg'
該当のソースコード
import os
from time import sleep
import pandas as pd
import requests
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
url = 'https://search.yahoo.co.jp/image'
options = Options()
options.add_argument('--headless')
driver = webdriver.Chrome(options=options)
driver.get(url)
sleep(2)
key = input('何の画像を取得しますか? > ')
search = driver.find_element_by_class_name('SearchBox__searchInput')
search.send_keys(f'{key}')
sleep(1)
search.submit()
last_height = driver.execute_script("return document.body.scrollHeight")
while True:
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
sleep(2)
new_height = driver.execute_script("return document.body.scrollHeight")
if new_height == last_height:
break
last_height = new_height
contents = driver.find_elements_by_class_name('sw-Thumbnail')
print(f'{len(contents)}個の画像が見つかりました')
d_list = []
for content in contents:
figure = content.find_element_by_tag_name('figure')
image = figure.find_element_by_tag_name('img').get_attribute('src')
title = figure.find_element_by_tag_name('img').get_attribute('alt')
link = content.find_element_by_class_name('sw-ThumbnailGrid__details').get_attribute('href')
d = { 'title': title, 'image': image, 'link': link } d_list.append(d)
quit()
df = pd.DataFrame(d_list)
df.to_csv(f'{key}_image.csv', index=None, encoding='utf-8-sig')
Folder = input('フォルダー名は何にしますか? > ')
IMAGE_DIR = f'./{Folder}/'
if os.path.isdir(IMAGE_DIR):
pass
else:
os.makedirs(IMAGE_DIR)
df = pd.read_csv(f'{key}_image.csv')
for title_name, yahoo_image in zip(df.title, df.image):
image = requests.get(yahoo_image)
with open(IMAGE_DIR + title_name + '.jpg', 'wb') as t:
t.write(image.content)
sleep(2)
print(f'{key}の画像を取得しました')
Python
試したこと
もともと .jpg というのがあるからだめなのかと思いifでやってみたのですが、何も変わりませんでした
回答1件
あなたの回答
tips
プレビュー