ど素人スクレイピングに会う
おはこんばんにちは。マタキチです。
2019年ももうね、半分も過ぎてあっとゆう間に9月が過ぎようとしている昨今。
・・・荒い。マタキチの2019年の作りが荒いよ。
某社長の会社買収やら某大統領と某首相の経済戦争やら、熱愛報道、電撃結婚、グループ解散、友人の結婚式、消費税増税(10月からでした)、恋人ができましたなどなど。
もうね、みんな臨場感がすごい。見たことないけど8Kってこんなかなってくらい鮮明。美は細部に宿るね。かたやこっちは紙芝居5枚くらいの荒さ。ナレーションでごまかしてるけど絵の荒さがすごい。まったく飛び出す気配がない。
そんなこんなで下半期に突入している今日この頃。
pythonを使ったスクレイピングを勉強しているのでまとめていこうかと思います。忘備録的な意味合いが強いので悪しからず。
スクレイピングとはなんぞ?
スクレイピングとは、要するにWebサイトのHTMLやXMLを解析して特定の情報を抽出しちゃいましょうとのこと。今はWeb上のほうがデータ多いもんね。でもやっていいサイトといけないサイトがあるようなので事前にサイトの規約等に目を通しておかないと犯罪になるケースもあるとか。とっても気をつけよう。
優秀なライブラリーBeautifulSoup
とっても優秀な子でHTMLやXMLの解析をしてくれるライブラリー。
from bs4 import BeautifulSoup
試しに次のサイトから為替情報を取得しよう。
yahoo!ファイナンス 為替情報
https://stocks.finance.yahoo.co.jp/stocks/detail/?code=usdjpy
▽ file名:usd_jpy.py
from bs4 import BeautifulSoup
import urllib.request as req
#HTMLを取得します
url = "https://stocks.finance.yahoo.co.jp/stocks/detail/?code=usdjpy"
res = req.urlopen(url)
#HTML解析
soul = BeautifulSoup(res, 'html.parser')
#データ抽出
price = soup.select_one(".stoksPrice").string
print("usd/jpy = ", price)
実行結果がこちら
$python3 usd_jpy.py
usd/jpy = 107.530000
表示される値は毎日変動するので実行する日にちによって異なる値が表示されます。まあ為替レートが表示されればOK。
まとめ
スクレイピング:Webサイト(HTML XML)を解析して情報を抽出してくれる技術。
BeautifulSoup:HTML、XMLを解析してくれる優秀なライブラリー。
いろんなスクレイピングの技術や抽出したデータの活用方法があるみたいだから
今後も調べて勉強しましょ。
この記事が気に入ったらサポートをしてみませんか?