提示コードの///コメント部ですがBeautifulSoup
ライブラリの使い方がわかりません。img_all = url_cont.find_all("meta")
コードで提示画像のmetaタグを取得しているはずなのですがfor d in img_all:
でfor文が回らず以下のエラー発生します。。これはなぜでしょうか?
エラー
>python Main.py <meta charset="utf-8"/> Traceback (most recent call last): File "C:\Users\yw325\Desktop\Main.py", line 15, in <module> if d.startswith("http") and (d.endswith("jpg") or d.endswith("png")): AttributeError: 'NoneType' object has no attribute 'startswith'
やりたいこと
読み取りサイトの検索欄にアルバム名を入力して(Python上でキー入力処理を実装)その検索結果のページを開いてそのページから画像ページを開いてその画像ページのOriginal file の高解像度の画像を保存する。
F12キーにるページのソース
参考サイト
読み取りサイト: https://project-imas.wiki/Main_Page
検索結果ページ: https://project-imas.wiki/THE_IDOLM@STER_SHINY_COLORS_SOLO_COLLECTION_-1stLIVE_FLY_TO_THE_SHINY_SKY-
画像ページ: https://project-imas.wiki/File:SOLO_COLLECTION_-1stLIVE_FLY_TO_THE_SHINY_SKY-.jpg
※やりたいこと部のでやる予定のもう一つのサイト: https://bendodson.com/projects/itunes-artwork-finder/
BeautifulSoup参考サイト: https://lets-hack.tech/programming/languages/python/beautifulsoup/
ソースコード
py
from bs4 import BeautifulSoup import requests img_list = []url = 'https://project-imas.wiki/THE_IDOLM@STER_SHINY_COLORS_SOLO_COLLECTION_-1stLIVE_FLY_TO_THE_SHINY_SKY-' # 任意のurlを指定url_cont = BeautifulSoup(requests.get(url).content,'lxml') # url解析#img_all = url_cont.find("meta") img_all = url_cont.find_all("meta") for d in img_all: print(d); d = d.get("content") if d.startswith("http") and (d.endswith("jpg") or d.endswith("png")): print(d); img_list.append(d) # srcの末尾が.jpgか.pngの場合リストに追加 for img_data in img_list: # 画像データをファイルに保存 with open(img_data.split('/')[-1], 'wb') as f: f.write(requests.get(img_data).content) # ファイル保存 print(img_data.split('/')[-1]) # 保存ファイル名出力 """ url_image = BeautifulSoup(requests.get(img_list[0]).content,'lxml') # url解析 for img_data in img_list: # 画像データをファイルに保存 with open(img_data.split('/')[-1], 'wb') as f: f.write(requests.get(url_image).content) # ファイル保存 print(img_data.split('/')[-1]) # 保存ファイル名出力 """
0 コメント