いくつか検索ワードを用意し
yahoo画像検索で検索された
一枚目の画像を取得し保存したいと思い
下の様なコードを書いてみました。
参考にしたものは
selenium 画像 保存
selenium スクレイピング
selenium yahoo 画像
とかでググって出てきたサイトや動画を参考にして
作業を進めてみました。
python
1 2from selenium import webdriver 3from selenium.webdriver.chrome.options import Options 4import io 5from urllib import request 6from PIL import Image 7import requests 8 9fruits = ["リンゴ", "バナナ", "イチゴ"] 10 11chrome_path = r"C:\Users\81809\Downloads\chromedriver_win32\chromedriver.exe" 12 13options = Options() 14options.add_argument("--headless") 15 16driver = webdriver.Chrome(executable_path = chrome_path, options = options) 17 18 19url = "https://search.yahoo.co.jp/image" 20 21for query in fruits: 22 driver.get(url) 23 search_box = driver.find_element_by_class_name( 24 "SearchBox__searchInput") 25 search_box.send_keys(query) 26 search_box.submit() 27 28 get_class = driver.find_element_by_css_selector( 29 ".sw-Thumbnail__innerImage.sw-Thumbnail__innerImage--width.rapidnofollow") 30 elem = get_class.find_element_by_tag_name('img') 31 urls = elem.get_attribute('src') 32 print(urls)
このコードで実行すると画像のURLは取得できました。
ターミナル内の画像のURLをクリックすると
取得したい画像がブラウザで表示されます。
次に保存したいという事で
保存のやり方はこちらのサイト参照しました。
https://programming-beginner-zeroichi.jp/articles/73
python
1for url in urls: 2 re = requests.get(url) 3 with open(r'C:\Users\81809\OneDrive\Desktop\b\img' + url.split('/')[-1], 'wb') as f: # imgフォルダに格納 4 # .contentで画像データとして書き込む 5 f.write(re.content)
実行すると
requests.exceptions.MissingSchema: Invalid URL 'h': No schema supplied. Perhaps you meant http://h?
こう出ます。
そして、上のコードを合わせて実行してみましたが
フォルダには当然何も入っていませんでした。
他に
こんなコードも試してみました。
python
1for url in urls: 2 f = io.BytesIO(request.urlopen(url).read()) 3 img = Image.open(f) 4 img.save('./img{}.png'.format(i) for i in range(len(urls)))
このコードは調べて自分なりに書いたもので
こちらを実行すると
raise ValueError("unknown url type: %r" % self.full_url) ValueError: unknown url type: 'h'
と出ます。
エラーの内容を調べたりしましたが
いまいちどこを改善すればよいか
分かりませんでした。
取得した画像をimg.pngフォルダに保存する方法を
教えて頂けませんでしょうか?
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/20 10:24
2021/08/20 10:40
2021/08/20 10:55
2021/08/20 12:11