前提・実現したいこと
BeautifulSoupでimgタグを見つけたい
発生している問題・エラーメッセージ
気象庁HPの画像をスクレイピングしようとしましたが、HPの検証で出てくるimgタグの部分がsoupには記述されておらず、取得できません
該当のソースコード
python
1import requests 2from bs4 import BeautifulSoup, Comment 3from PIL import Image 4import io 5 6url = 'https://www.data.jma.go.jp/gmd/kaiyou/data/db/kaikyo/daily/sst_HQ.html' 7res = requests.get(url) 8#print(res) 9 10soup = BeautifulSoup(res.text, 'html.parser') 11for script in soup.find_all('script',src=False): 12 script.decompose() 13for comment in soup(text=lambda x: isinstance(x,Comment)): 14 comment.extract() 15# print(soup) 16div_tags = soup.find_all('div') 17print(div_tags[12])
試したこと
以下が上のコードの実行結果です。
Terminal
1<div id="right"> 2 3</div>
以下がHPの検証からコピーしてきた該当div部分です。
html
1<div id="right"> 2 <script type="text/javascript"> 3 <!-- 4 var i,pr,strtmp,stryye,strmme,strdde 5 for (i =0; i< document.input.yoso2.length; i++) { 6 if (document.input.yoso2[i].checked){ 7 pr = sYoso1[0] + "D" + document.input.yoso2[i].value; 8 } 9 } 10 strtmp = num2str_ymd(yye, mme, dde); 11 stryye = strtmp[0]; 12 strmme = strtmp[1]; 13 strdde = strtmp[2]; 14 var fname1 = pr + "_" + strArea[areano] + stryye + strmme + strdde + ".png"; 15 document.write("<IMG name='img' alt='日別海面水温図' src=" + ImgDir + strArea[areano] + "/" + stryye + "/" + fname1 + ">"); 16 //--> 17 </script><img name="img" alt="日別海面水温" src="./image/HQ/2021/sstD_HQ20211210.png"> 18</div>
divタグ内最後の行にあるimgタグは残ってほしいのですが、スクリプトとコメントを除去したら何も残らない結果となっています。
初学者につき原因が分かりません。
どなたかお分かりの方がいらっしゃれば教えて頂ければ幸いです。よろしくお願いします。
補足情報(FW/ツールのバージョンなど)
Python3.10.0
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/11 06:40
2021/12/11 06:47