我らがハードオフの株価を自動で収集してみた(スクレイピング)
皆さんはじめまして、Sandyマンです。普段はアメブロでくだらないことを書いてます。良かったら、SandyマンのLinuxブログで検索してみてください。(宣伝)
ということで、今回はPythonを使って簡単にハードオフの株価を定期的に収集するプログラムを書いてみようと思います。それではやっていきましょう。
ハードオフってそもそも何
株式会社ハードオフコーポレーション(英: HARD OFF CORPORATION Co., Ltd. )は、新潟県 > 新発田市に本社を置く、中古品リユース販売業を直営店またフランチャイズ方式で全国に展開する > > 企業。(wikipediaから引用)
という感じのリサイクルショップです。なぜ私がこんなに愛しているかというと、ハードオフにあるジャンクコーナーが最高だからなんですね。いろいろな安いジャンク品が並んでいる中から宝を探すのがもう最高です。天国です。皆さんもぜひ行ってみてください。
少し話がそれましたが、早速やっていきましょう!
書いていく
今回は、Beautifulsoup4とrequestsの2つのライブラリを使って書いていきます!
# ライブラリを呼び出す
from bs4 import BeautifulSoup as bs
import requests
# サイトにアクセスする
url = 'https://finance.yahoo.co.jp/quote/2674.T'
res = requests.get(url)
# Beautifulsoupでいい感じに取り出す
soup = bs(res.text, 'lxml')
num = soup.select_one('._1mwPgJ2S > span:nth-child(1) > span:nth-child(1)').text
print(f'今日のハードオフの株価は{num}円です。')
別にこれでもいいんですが、なんかつまらないですよね。なので少し追加していこうと思います。
もう少し機能を増やす
ということで、何を増やすかなんですが、具体的にはcsvファイルへの書き込みと定期実行ができるようにしたいなと思います。早速やっていきましょう。
# ライブラリを読み込む
import requests
from bs4 import BeautifulSoup as bs4
import datetime
import csv
# サイトにアクセス
url = 'https://finance.yahoo.co.jp/quote/2674.T'
res = requests.get(url)
# 株価を収集して表示
soup = bs4(res.text, 'lxml')
num = soup.select_one('._1mwPgJ2S > span:nth-child(1) > span:nth-child(1)').text
print(f'今日のハードオフの株価は{num}円です。')
# datetimeを使って日時をなんかする
d_today = datetime.date.today()
# csvライブラリでファイルに書き込む
with open ('hardoff.csv', 'a') as f:
writer = csv.writer(f)
writer.writerow([d_today, num + '円です'])
print('csvファイルに保存しました。')
結構いい感じにできましたね!まだガチの初心者なので書き方がいいのかはわからないですが、動いたので良しとしましょう。
定期実行
ここに関しては、OSごとに差があってめんどいのでやめておきます。気になる人は
ググってください!!!!!
まとめ
ということで、「ハードオフの株価を自動で収集してみた」でした。たぶん、Yahooファイナンスのurlを別の会社にしても動くのでぜひ試してみてください!それではさようならーーー!
追記 Yahooファイナンスのスクレイピングは禁止されているようです...。少しなので許してくださいな。
Discussion