実現したいこと
PythonでYahooニュースのリプライの表示
前提
現在、PythonにてYahooニュースのリプライの表示を試みています。
コメントは表示できますが、リプライの表示のみができません。
エラーが出ると言うより、データの読込ができていないと思われる状況です。
二つのデータの差はわからないです。
指定のclassを色々変更してみましたが、うまくいきません。
どなたか原因の目星がつく方はいますでしょうか?
よろしくお願いします。
※間違って質問を消去してしまったため、再掲となります
発生している問題・エラーメッセージ
======= RESTART: C:\Users\○○○\Desktop\xxxxx\xxxxxxxxxx\ファイル名.py =======
(うまくいけばここにメッセージが出てくるはずだが何も出てこない)
該当のソースコード
Python
1import requests#ライブラリ requestsをインポート 2from bs4 import BeautifulSoup 3 4url="https://news.yahoo.co.jp/articles/ca647186283eb79e2369e3f39a6418a2b2b212ac/comments"#任意のURLを入力 5html=requests.get(url)#URLを取得 6 7soup=BeautifulSoup(html.content,"html.parser")#htmlの解析 8 9 10comment=soup.find(id="contentsWrap") 11 12for element in comment.find_all(class_="Reply__Wrapper-kFYRQl bllLUu"): 13 print("リプライ:",element.text,"\n") 14 15
試したこと
スペルミスの確認
classの変更
補足情報(FW/ツールのバージョンなど)
IDLE Shell 3.11.5
Windows 11
「返信」ボタンをクリックしないとコメントが表示されません。Yahoo! ニュースの場合、API が提供されている様には見えないので、Selenium を利用するなどした方がよいかと思います。
コメントを表示するために「返信」は押しています。
ひとまずは指定のコメントを表示できるようになることを目標として、色々試していました。
現実的に、Selenium等を使わないとリプライを表示することは難しいのでしょうか?
requests + BeautifulSoup でアクセスする場合には「返信」ボタンを押している状態にはできません。
print(soup)
を実行すると HTML が表示されますので、その中に Reply__Wrapper-kFYRQl クラスの HTML 要素が存在しないことを確認してみてください。
上記について実行してみました。
確かに探してたクラスの要素はなさそうですね...
であれば、Seleniumのライブラリを使うと「返信」を押した状態にできると言うことでしょうか?
もし上記の問題について参考になるサイトなどあればお聞きしてもよろしいでしょうか?(ここの質問のみで問題を解決するのは大変だと思ったので...)