発生している問題・エラーメッセージ
with open('img/' + target.split('/')[-1], 'wb') as f: [Errno 22] Invalid argument: 'img/latest?cb=20210602000018'
該当のソースコード
import requests from requests.compat import urljoin from bs4 import BeautifulSoup URL = 'https://apexlegends.fandom.com/wiki/Category:Ability_icons' images = [] soup = BeautifulSoup(requests.get(URL).content,'lxml') for link in soup.find_all("img"): #if link.get("src").endswith(".jpg"):if link.get("src").endswith(".png"): 画像保存形式の指定?モスのサイトで.pngにてpngで終わるリンクの画像取得を確認 if link.get("src").startswith("https://static.wikia.nocookie.net/apexlegends_gamepedia_en"): print(link.get("src")) # 相対URLから絶対URLに変換 images.append(urljoin(URL, link.get("src"))) for target in images: resp = requests.get(target) #1st with open('img/' + target.split('/')[-1], 'wb') as f: #2nd_Fail with open('img/' + target.split('FD')[-1], 'wb') as f: #re_1st with open('img/' + target.split('/')[-1], 'wb') as f: f.write(resp.content)
試したことなど
いくつかのサイトで画像のスクレイピングを試していて
できるサイトとできないサイトがあることに気付き、このコードの場合どうやら.endwithで検索しているのでpng形式のリンクは.jpgから.pngに書き換えることでスクレイピングできました。
しかし、上記のコードではスクレイピングしたいリンク先に末尾で統一された文字列はなかったようなのでstartwith関数を見つけてきて書き換えてみたところ、エラーが出てしまいスクレイピングできませんでした。
保存したい画像は以下の部分の系列の画像です。
<img src="https://static.wikia.nocookie.net/apexlegends_gamepedia_en/images/8/87/Black_Hole.svg/revision/latest/scale-to-width-down/512?cb=20210529125923" height="512">
よろしくお願いします。
補足情報(FW/ツールのバージョンなど)
Windows10 Python3.7 64bit Visual Studio
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/07 10:34
2021/09/07 10:53
2021/09/07 18:22