前提
Visual Studio 2022
Python 3.9
実現したいこと
カリモク コモンズ トウキョウで、10代が考える「動く家」をテーマにした展示会を開催
https://www.elle.com/jp/decor/decor-interior-design/a40735952/karimoku-commons-tokyo-mobile-house22-07/
上記サイトに掲載されている写真3枚をスクレイピングで収集したいです
該当のソースコード
python
1 2 3import requests 4from bs4 import BeautifulSoup 5from pathlib import Path 6import time 7 8load_url = "https://www.elle.com/jp/decor/decor-interior-design/a40735952/karimoku-commons-tokyo-mobile-house22-07/" 9html = requests.get(load_url) 10soup = BeautifulSoup(html.content, "html.parser") 11 12out_folder = Path("download") 13out_folder.mkdir(exist_ok = True) 14 15imgs = soup.find_all("img") 16 17for img in imgs: 18 pic = requests.get(img["src"]) 19 filename = pic.split("/")[-1] 20 out_path = out_folder.joinpath(filename) 21 22with open(out_path, mode = "wb") as f: 23 f.write(pic.content) 24 25time.sleep(1) 26 27 28
発生している問題・エラーメッセージ
Message=No connection adapters were found for 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7' Source=C:\Users\Michiko\Desktop\app2\scraping\scraping\scraping.py スタック トレース: File "C:\Users\Michiko\Desktop\app2\scraping\scraping\scraping.py", line 18, in <module> (Current frame) pic = requests.get(img["src"])
試したこと
python
1 2mport requests 3from bs4 import BeautifulSoup 4from pathlib import Path 5import time 6 7load_url = "https://www.elle.com/jp/decor/decor-interior-design/a40735952/karimoku-commons-tokyo-mobile-house22-07/" 8html = requests.get(load_url) 9soup = BeautifulSoup(html.content, "html.parser") 10 11out_folder = Path("download") 12out_folder.mkdir(exist_ok = True) 13 14for element in soup.find.all("img"): 15 pic = requests.get("src") 16 filename = pic.split("/")[-1] 17 out_path = out_folder.joinpath(filename) 18 19with open(out_path, mode = "wb") as f: 20 f.write(pic.content) 21 22time.sleep(1) 23 24
エラーメッセージ
Message='function' object has no attribute 'all' Source=C:\Users\Michiko\Desktop\app2\PythonApplication1\PythonApplication1\PythonApplication1.py スタック トレース: File "C:\Users\Michiko\Desktop\app2\PythonApplication1\PythonApplication1\PythonApplication1.py", line 15, in <module> (Current frame) for element in soup.find.all("img"):
そのほか、HTMLのタグと属性をかえましたが、うまくいきません。
どなたかご教授いただけると嬉しいです。
よろしくお願いいたします。
追記
URLデコード: urllib.parse.unquote()など
https://note.nkmk.me/python-urllib-parse-quote-unquote/
ご回答を参考に、上記のサイトを見ながら書き換えてましたが、 同じエラーメッセージがでてしまいました。
python
1 2 3import requests 4from bs4 import BeautifulSoup 5from pathlib import Path 6import time 7import urllib 8 9load_url = "https://www.elle.com/jp/decor/decor-interior-design/a40735952/karimoku-commons-tokyo-mobile-house22-07/" 10decode_url=urllib.parse.unquote(load_url) 11html = requests.get(decode_url) 12soup = BeautifulSoup(html.content, "html.parser") 13 14out_folder = Path("download") 15out_folder.mkdir(exist_ok = True) 16 17imgs = soup.find_all("img") 18 19for img in imgs: 20 pic = requests.get(img["src"]) 21 filename = pic.split("/")[-1] 22 out_path = out_folder.joinpath(filename) 23 24with open(out_path, mode = "wb") as f: 25 f.write(pic.content) 26 27time.sleep(1) 28 29 30
エラーメッセージ
Message=No connection adapters were found for 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7' Source=C:\Users\Michiko\Desktop\app2\scraping\scraping\scraping.py スタック トレース: File "C:\Users\Michiko\Desktop\app2\scraping\scraping\scraping.py", line 20, in <module> (Current frame) pic = requests.get(img["src"])
回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2022/08/11 07:55
2022/08/11 08:04 編集
2022/08/11 08:09