Pythonのライブラリのrequestsを使って画像スクレイピングを行おうとしているのですが、srcタグの中身をうまく読み取ってくれず困っております。
python
1from bs4 import BeautifulSoup 2import requests 3 4url = "http://www.apple.com/jp/itunes/charts/free-apps/" 5images = [] # 画像リストの配列 6 7soup = BeautifulSoup(requests.get(url).content, 'lxml') # beautifulsoupでURL内解析 8 9for link in soup.find_all("img"): 10 if link.get("src").endswith(".jpg"): # imgタグ内の.jpgで終わるsrcタグを取得 11 images.append(link.get("src")) # imagesリストに格納 12 elif link.get("src").endswith(".png"): # imgタグ無いの.pngで終わるsrcタグを取得 13 images.append(link.get("src")) # imagesリストに格納 14 15for target in images: #imegesからtargetに入れる 16 re = requests.get(target) 17 with open("img/" + target.split('/')[-1], "wb") as f: #imgフォルダに格納(imgフォルダをあらかじめ作成しておく) 18 f.write(re.content) # .contentにて画像データとして書き込む 19 20print("finished")
ソースコードはこのようになっております。
python
1re = requests.get(target)
この行でエラーが発生しており、エラーコードは
MissingSchema: Invalid URL '/autopush/jp/itunes/charts/free-apps/images/2018/8/2318f495237310ba4905a4fbf07a7ab3fa2073f0f0559963092414d22acaa292.jpg': No schema supplied. Perhaps you meant http:///autopush/jp/itunes/charts/free-apps/images/2018/8/2318f495237310ba4905a4fbf07a7ab3fa2073f0f0559963092414d22acaa292.jpg?
このようになっております。srcタグの中身を取り出すことはできているのですが、それをrequestsが処理をしてくれていないように思われます。
画像スクレイピングは初めてで対処の仕方がまったく分からず困っております。
対処法ご存知の方がいらっしゃいましたらご教示いただきたいです。よろしくお願い致します。
ソフトウェア情報
Python3-anaconda custom
requests-2.19.1
Jupyter notebook使用
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/14 03:05