前提・実現したいこと
YahooニュースのRSSから各記事のURLを取得し、順次アクセスする。
URL先のニュース記事をbeautifulsoupで取得
発生している問題・エラーメッセージ
長いので、出力結果の一部を抜粋しています。 少し説明させてください。 ここでお伝えしたいことは、developerツールできちんとpタグのclass属性が"sc-dVhcbM hFPXIO yjDirectSLinkTarget"の要素を抽出したつもりだったのですが、なぜか指定以外の要素も混ざっているように見えることです。中にはclass属性すらないものもあります。 <p class="advanced"><a href="https://news.yahoo.co.jp/search/advanced">条件指定</a></p> <p>現在<em>JavaScriptが無効</em>になっています。Yahoo!ニュースのすべての機能を利用するためには、JavaScriptの設定を有 効にしてください。<br/>JavaScriptの設定を変更する方法は<a href="https://www.yahoo-help.jp/app/noscript">こちら</a>。</p> <p>お使いのInternet Explorerは古いバージョンのため、正しく表示されない可能性があります。最新のバージョンにアップデー トするか、別のブラウザーからご利用ください。<br/> <a href="https://about.yahoo.co.jp/info/msiesp/">Internet Explorerのアップデートについて</a> </p> <p class="source">6/4(木) 10:50配信 </p> <p class="ynCobrandBanner"><a href="https://rdsig.yahoo.co.jp/media/news/cobrand/bbcv/RV=1/RE=1592693958/RH=cmRzaWcueWFob28uY28uanA-/RB=/RU=aHR0cHM6Ly93d3cuYmJjLmNvbS9qYXBhbmVzZQ--/RS=^ADALFEpZ0qxbM3G5RmDIZMWwyCeq.s-"><img alt="BBC News" height="40" src="https://s.yimg.jp/images/news/cobranding/bbcv.png" width="170"/></a></p> <p class="cap">(c) BBC News</p> <p class="ynDetailText yjDirectSLinkTarget"> 「ジョージ・フロイドさんを大事にすべきだが、問題は400年前から続いている」<br/> <br/> 黒人男性ジョージ・フロイドさんが白人警官の暴行で死亡したことに全米各地で抗議が相次ぐなか、アフリカ系アメリカ人の暮ら しを映画で描き続けてきたスパイク・リー監督が、差別と格差の問題の大きさについてBBCに話した。<br/> <br/> リー監督は、動画配信大手ネットフリックスで公開する新作映画「Da 5 Bloods」についてBBCに語る中で、アメリカの人種対立は 「新しいことじゃない。もう400年も続いてきた」と述べた。<br/> <br/> 「それにアメリカだけのことでもない。アメリカは人種差別が得意だが、人種差別は世界中にある。人種差別がコロナウイルスよ り先の、世界的パンデミックだ」と、監督はBBCのウィル・ゴンバーツ芸能担当編集長に話した。<br/> <br/> 新作「Da 5 Blood」は、アフリカ系アメリカ人の退役軍人5人を描いた作品という。<br/> <br/> リー監督は、ニューヨーク・ブルックリンを舞台に人種の共存と対立、差別される側の抵抗と暴力などを描いた映画「ドゥ・ザ・ ライト・シング」(1989年)で米アカデミー賞の脚本賞候補になり、白人至上主義団体「クークラックスクラン(KKK)」を捜査し た黒人刑事を描いた「ブラック・クランズマン」(2019年)で同賞を受賞した。<br/> <br/> (英語記事 George Floyd death: Spike Lee says protesters were 'not just born angry')</p> <p class="ynDetailAuthor">(c) BBC News</p> <p class="ynCpName"> <span class="date">最終更新:6/4(木) 10:50</span><br/> <a href="https://news.yahoo.co.jp/media/bbcv" onmousedown="this.href='https://rdsig.yahoo.co.jp/media/news/medianame/articles/RV=1/RU=aHR0cHM6Ly9uZXdzLnlhaG9vLmNvLmpwL21lZGlhL2JiY3Y-'" style="font-size: 92%;">BBC News</a> </p> <p>読み込み中…</p> <p class="source"><span>シネマトゥデイ</span><span class="separate">6/4(木) 18:32</span></p> <p class="source"><span>時事通信</span><span class="separate">6/7(日) 7:51</span></p> <p class="source"><span>映画.com</span><span class="separate">6/4(木) 13:00</span></p> <p class="source"><span>SOCCER KING</span><span class="separate">6/3(水) 12:39</span></p> <p class="source"><span>CNN.co.jp</span><span class="separate">6/4(木) 13:17</span></p> <p class="source"><span>ぴあ</span><span class="separate">6/5(金) 11:31</span></p> <p class="source"><span>motorsport.com 日本版</span><span class="separate">6/3(水) 12:00</span></p> <p class="source"><span>ハフポスト日本版</span><span class="separate">6/5(金) 10:36</span></p> <p class="source"><span>Hint-Pot</span><span class="separate">6/4(木) 8:11</span></p> <p class="source"><span>コスモポリタン</span><span class="separate">6/4(木) 21:06</span></p> <p class="source"><span>ハーパーズ バザー・オンライン</span><span class="separate">6/3(水) 19:20</span></p> <p class="source"><span>FNNプライムオンライン</span><span class="separate">6/1(月) 17:30</span></p> <p class="source"><span>デイリースポーツ</span><span class="separate">6/3(水) 10:31</span></p> <p class="source"><span>ハフポスト日本版</span><span class="separate">5/31(日) 17:02</span></p> <p class="source"><span>BARKS</span><span class="separate">6/5(金) 10:14</span></p> <p class="source"><span>女子SPA!</span><span class="separate">6/4(木) 8:45</span></p> <p class="source"><span>バスケット・カウント</span><span class="separate">6/1(月) 18:05</span></p> <p class="source"><span>CINEMORE</span><span class="separate">6/3(水) 10:37</span></p> <p class="source"><span>ロイター</span><span class="separate">6/4(木) 13:00</span></p> <p class="source"><span>Movie Walker</span><span class="separate">6/6(土) 17:30</span></p> <p class="source"><span>BARKS</span><span class="separate">6/1(月) 16:33</span></p> <p class="source"><span>ABEMA TIMES</span><span class="separate">6/2(火) 13:16</span></p> <p class="source"><span>VOGUE JAPAN</span><span class="separate">6/2(火) 20:53</span></p> <p class="source"><span>cinemacafe.net</span><span class="separate">6/5(金) 14:30</span></p> <p class="source"><span>Game Spark</span><span class="separate">6/1(月) 10:57</span></p> <p class="source"><span>ABEMA TIMES</span><span class="separate">6/5(金) 12:57</span></p> <p class="source"><span>日刊スポーツ</span><span class="separate">6/4(木) 11:05</span></p> <p class="source"><span>IGN JAPAN</span><span class="separate">6/3(水) 12:06</span></p> <p class="source"><span>映画.com</span><span class="separate">6/4(木) 8:00</span></p> <p class="source"><span>シネマトゥデイ</span><span class="separate">6/5(金) 16:10</span></p> <p class="pointInfo"> <span class="pointInfo_paypay">PayPay残高</span><span class="pointInfo_tPoint"></span><span class="pointInfo_text">使 えます</span> </p> <p class="price">税込<em>55</em>円</p> <p class="price">税込<em>330</em>円</p> <p class="price">税込<em>55</em>円</p> <p class="price">税込<em>99</em>円</p> <p class="price">税込<em>55</em>円</p> <p><a class="goTopSide btnView" href="#" id="pageTopButton"><span>ページ上部に戻る</span></a></p> <p><em>アプリ</em><span>データ先読みで、電車でもサクサク</span></p> <p><em>Facebook</em><span>編集部による厳選記事を毎日配信</span></p> <p><em>Twitter</em><span>リアルタイムでニュースを配信</span></p> <p><em>news HACK</em><span>Yahoo!ニュースのオウンドメディア</span></p>
該当のソースコード
python
1import feedparser 2from bs4 import BeautifulSoup 3import pprint 4import requests 5 6RSS_URL = 'https://headlines.yahoo.co.jp/rss/bbc-c_int.xml' 7 8RSS = feedparser.parse(RSS_URL) 9link_list = [] 10for entry in RSS.entries: 11 link_list.append(entry.link) 12 13for link in link_list: 14 xml_doc = requests.get(link) 15 soup = BeautifulSoup(xml_doc.text, 'html.parser') 16 17 for script in soup.select("p", class_="sc-dVhcbM hFPXIO yjDirectSLinkTarget"): 18 pprint.pprint(script)
試したこと
findメソッドをselectメソッドの代わりに使用
17-18行目を変更しました。
script = soup.find('p', class_='sc-dVhcbM hFPXIO yjDirectSLinkTarget'
pprint.pprint(script)
結果
None
補足情報(FW/ツールのバージョンなど)
OS: windows10
editor: visual studio code
Python: 3.8.3 64bit
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/07 00:24
2020/06/07 01:05
2020/06/07 02:21 編集
2020/06/07 02:26
2020/06/07 02:36
2020/06/07 02:41
2020/06/07 04:02 編集
2020/06/07 05:11
2020/06/13 00:34 編集
2020/06/07 06:05