python#2.1 Webスクレイピング

 今年夏の記事と同様に、Pythonに関する学習事項を記録するためにnoteを用いることにする。冬休み時間ができたので再開した。以前の続きとして扱っているため、番号を2.1としている。

code1

 このコードは https://techacademy.jp/magazine/20930 の記事にあるもので、https://newspicks.com というサイトのトピック記事題名が表示される。参考にサイトのHTMLコードを一部抜粋する。

import requests
from bs4 import BeautifulSoup

result = requests.get('https://newspicks.com/') 
data_1 = BeautifulSoup(result.text, 'html.parser')
data_2 = data_1.find_all("div", class_="title _ellipsis")

for item in data_2:
print(item.getText())
<div class="contents"> <div class="labels">特集</div> </div> <div class="robot-name _ellipsis"></div> </div> <div class="picks"> <div class="picks-cover"></div> <div class="labels"><span class="value">179</span><span class="unit">Picks</span></div> </div> <div class="title _ellipsis">新型コロナ 東京都で新たに944人の感染確認</div> <div class="meta"><span class="publisher">FNNプライムオンライン</span><span class="published elapsed" data-datetime="2020-12-30T06:03:04+00:00"></span> </div> </div> </div> </a> </div>   <div class="eyecatch" data-id="5502118" style="display:none;"> <a href="/news/5502118?ref=index&amp;block=eyecatch"> <div class="eyecatch-image" style="background-image:url(https://contents.newspicks.com/images/news/5502118?updatedAt=20201230123130)"></div> </a> <div class="eyecatch-mask"></div> <a href="/news/5502118?ref=index&amp;block=eyecatch"> <div class="eyecatch-text-wrapper"> <div class="eyecatch-text"> <div class="eyecatch-info"> <div class="contents"> <div class="labels">特集</div> </div> <div class="robot-name _ellipsis">REUTERS</div> </div> <div class="picks"> <div class="picks-cover"></div> <div class="labels"><span class="value">126</span><span class="unit">Picks</span></div> </div> <div class="title _ellipsis">米サード・ポイント、インテルに事業見直し要求</div> <div class="meta"><span class="publisher">Reuters</span><span class="published elapsed" data-datetime="2020-12-30T00:39:48+00:00"></span> </div> </div> </div> </a> </div>   <div class="eyecatch" data-id="5501658" style="display:none;"> <a href="/news/5501658?ref=index&amp;block=eyecatch"> <div class="eyecatch-image" style="background-image:url(https://contents.newspicks.com/images/news/5501658?updatedAt=20201230063124)"></div> </a> <div class="eyecatch-mask"></div> <a href="/news/5501658?ref=index&amp;block=eyecatch"> <div class="eyecatch-text-wrapper"> <div class="eyecatch-text"> <div class="eyecatch-info">​

>>
新型コロナ 東京都で新たに944人の感染確認
米サード・ポイント、インテルに事業見直し要求
米上院共和党、個人給付を2000ドルに引き上げる民主党の試み阻止
「かつてない大きさの第3波 年末年始が分水れい」小池都知事
日経平均 終値2万7444円 年末株価としては31年ぶりの高水準
【酒井崇匡】「〇〇 増やし方」から読み解く日本人の傾向
【核心】混迷する世界を動かす「新時代の力学」とは?
日経平均 終値2万7444円 年末株価としては31年ぶりの高水準
上場企業、脱「中国依存」4割超 供給網、周辺国へ分散
小規模自治体に公認会計士ら「経営のプロ」派遣…上下水・公共施設の運営支援
「かつてない大きさの第3波 年末年始が分水れい」小池都知事
米上院共和党、個人給付を2000ドルに引き上げる民主党の試み阻止
米サード・ポイント、インテルに事業見直し要求
新型コロナ 東京都で新たに944人の感染確認

code2

 code1を、https://lets-hack.tech/programming/languages/python/beautifulsoup/ の記事を参考にして改造してみたものがこれ。https://www.lovelive-anime.jp/uranohoshi/news.php の <a>〜</a> の部分のテキストが表示される。ニュースの表題だけ取り出せるかと思ったが、HTMLを見ればわかる通りけっこう <a> タグが多用されていて、そこまで都合良くはいかなかった。参考までにサイトのHTMLコードを一部抜粋する。

import requests
from bs4 import BeautifulSoup

result = requests.get('https://www.lovelive-anime.jp/uranohoshi/news.php') 
data_1 = BeautifulSoup(result.text, 'html.parser')
data_2 = data_1.find_all("a")

for data in data_2:
   print(data.string)
<div id="main">

		<div id="sidebar">
			<a href="./"><img src="img/common/lovelive_sunshine.png" style="padding-bottom: 10px;"></a><br><br>
			<a class="various" data-fancybox-type="iframe" href="sp/news01.html"><img src="img/news/button01.png" style="padding-left: 10px;"></a><br><br>
			<div id="list">
				<div id="midashibar2">ニュース一覧</div>
						<div id="newsbase">
																																																	
									<div class="container"><div>■2020/12/30</div><div><a href="#7252">ラブライブ!サンシャイン!! Aqours浦の星女学院RADIO!!! 第240回配信開始</a></div></div><br><div class="container"><div>■2020/12/29</div><div><a href="#7254">国木田花丸役・高槻かなこ イベント・TV番組出演見合わせのお知らせとお詫び</a></div></div><br><div class="container"><div>■2020/12/29</div><div><a href="#7253">Aqours結成5周年記念!<br />
伊豆箱根鉄道1日乗り放題乗車券「旅助け」発売・ヘッドマーク取り付けのお知らせ</a></div></div><br><div class="container"><div>■2020/12/28</div><div><a href="#7251">2021年お正月企画! お正月絵柄のAZALEA組のまちあるきスタンプ&缶バッジが登場!</a></div></div><br><div class="container"><div>■2020/12/28</div><div><a href="#7249">「ラブライブ!シリーズ×アトレ秋葉原」のオリジナルグッズがA-onストアにて受注販売受付中!</a></div></div><br>							
						</div>
			</div>
			<div id="list">
				<div id="midashibar2">カテゴリ</div>
						<div id="newsbase2">
							<a href="news41.php">■ CD情報</a><br><br>
							<a href="news42.php">■ Blu-ray</a><br><br>
							<a href="news52.php">■ 劇場情報</a><br><br>
							<a href="news43.php">■ 放送情報</a><br><br>
							<a href="news44.php">■ 配信番組</a><br><br>
							<a href="news45.php">■ イベント</a><br><br>
							<a href="news46.php">■ 書籍・雑誌</a><br><br>
							<a href="news47.php">■ 商品</a><br><br>
							<a href="news48.php">■ ゲーム</a><br><br>
							<a href="news50.php">■ メディア</a><br><br>
							<a href="news51.php">■ 沼津情報</a><br><br>
							<a href="news49.php">■ その他</a><br><br>
						</div>
			</div>

<br>
			<div id="navigation">
 <div id="toggle"><a href="#">menu</a></div>
 <div id="menu">
   <ul>
     <li><a href="news.php"><img src="img/common/menu01_off.png"></a></li>
     <li><a href="onair.php"><img src="img/common/menu03_off.png"></a></li>
     <li><a href="caststaff.php"><img src="img/common/menu05_off.png"></a></li>
     <li><a href="story.php"><img src="img/common/menu06_off.png"></a></li>
     <li><a href="member.php"><img src="img/common/menu07_off.png"></a></li>
     <li><a href="live.php"><img src="img/common/menu08_off.png"></a></li>
     <li><a href="radio.php"><img src="img/common/menu09_off.png"></a></li>
     <li><a href="https://www.youtube.com/playlist?list=PLYpy4kJmEo75V0sC4SmwTouRRwSBadxm5" target="_blank"><img src="img/common/menu10_off.png"></a></li>
     <li><a href="bd.php"><img src="img/common/menu11_off.png"></a></li>
     <li><a href="cd.php"><img src="img/common/menu12_off.png"></a></li>
      <li><a href="books.php"><img src="img/common/menu13_off.png"></a></li>
   </ul>
 </div>
</div><br>
			<div id="submenu">
	
	<div id="event">
		<a href="5th-anniversary.php"><img src="img/common/event/event36.png?v=201216"></a>
		<a href="https://www.lovelive-anime.jp/live_guideline.php" target="_blank"><img src="img/common/event/event53.png"></a>

>>
World Wide Website ▶︎
None
None
ラブライブ!サンシャイン!! Aqours浦の星女学院RADIO!!! 第240回配信開始
国木田花丸役・高槻かなこ イベント・TV番組出演見合わせのお知らせとお詫び
None
2021年お正月企画! お正月絵柄のAZALEA組のまちあるきスタンプ&缶バッジが登場!
「ラブライブ!シリーズ×アトレ秋葉原」のオリジナルグッズがA-onストアにて受注販売受付中!
■ CD情報
■ Blu-ray
■ 劇場情報
■ 放送情報
■ 配信番組
■ イベント
■ 書籍・雑誌
■ 商品
■ ゲーム
■ メディア
■ 沼津情報
■ その他
menu
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
Tweets by LoveLive_staff
http://hibiki-radio.jp/description/llss/detail
http://www.onsen.ag/program/llss/
http://hibiki-radio.jp/description/llss/detail
Tweet
Tweet
None
https://izuhakone-railway-shop.raku-uru.jp/
 http://www.izuhakone.co.jp/
Tweet
None
None
None
None
http://www.llsunshine-numazu.jp/
Tweet
None
https://a-onstore.jp/lovelive_chara_pop_fes/index.html
Tweet
次の5件 >>
None
None
None
None
None
None
None



この記事が気に入ったらサポートをしてみませんか?