python

PyQueryを使用し株式会社の決算速報をスクレイピング

投稿日:

今回はpythonを利用したスクレイピングの練習として、PyQueryを利用したスクレイピングを行うコードを作成しました。

注意

本記事ではWebサイトのスクレイピングを行っていますが、極端な短期間(秒単位やそれ以下等)のスクレイピングは違法と認定される場合があります。

スクリピングに当たって本サイトはすべての責任を負いかねますのでご注意ください。

参考:

要件と仕様

要件は以下とします。

  1. 決算速報の概要を取得できること
  2. 簡単であること

仕様は以下とします。

  1. 株式情報サイト「株探」(https://kabutan.jp/)の決算速報ページから、決算速報をスクレイピングする
  2. 言語はpythonで、モジュールはPyQueryを利用する

PyQueryとは

PyQueryは、pythonでjQueryのようにWebサイトから情報を取得できるモジュールです。
以下のサイトに簡単な説明とサンプルコードが記載されています。

PyQueryのインストールは、pipから行えます。

user@hostname:~/# pip install pyquery

今回は上記のサイトを参考に、株探の決算速報ページのhtmlを直接パースします。

設計・実装

作成したコード(get_stock_prompt.py)は以下になります。

from pyquery import PyQuery
import pandas as pd

pq = PyQuery(url='https://kabutan.jp/news/')

for td in pq('.s_news_list')('table'):
  time_array = pq(td)(".news_time").text().split()
  date = time_array[0::2]
  time = time_array[1::2]
  news = pq(td)("a").text().split()

  df = pd.DataFrame({"date":date, "time":time, "news":news})
  print(df)

これだけでできます。とても簡単です。

  • PyQueryのコンストラクタに、株探の決算速報ページのURL(https://kabutan.jp/news/)を渡します。
    • これだけで、htmlを取得することができます。
  • 決算速報のタグを探して、日付とニュース本文を抜き出します。
    • 決算速報全体はclass=s_news_listを持つtableタグ、各決算情報はaタグ(リンク)として抽出しています
    • 日付はtableタグ内の、class=news_timeをもつtdタグの本文から抽出しています。
  • 最後に、DataFrame化して標準出力に流します。

テスト

実際に動作させてみました。

user@hostname:~/# python get_stock_prompt.py 
     date                                             news   time
0   12/29                             スターティア、今期経常を2.7倍上方修正  15:00
1   12/29                        シベール、9-11月期(1Q)経常は赤字縮小で着地  15:00
2   12/29               きょくとう、3-11月期(3Q累計)経常は11%減益・通期計画を超過  14:00
3   12/28                        パイプドHD、9-11月期(3Q)経常は11%減益  17:00
4   12/28  Tアルファ、前期経常は15%減益で着地・9-11月期(4Q)経常は16%減益、今期業績は非開示  16:40
5   12/28        セキチュー、3-11月期(3Q累計)経常が57%減益で着地・9-11月期は赤字転落  16:00
6   12/28                         ジンズメイト、9-11月期(3Q)経常は赤字縮小  15:30
7   12/28                  北恵、今期経常は1%増益、前期配当を6円増額・今期は1円増配へ  15:30
8   12/28        ソーバル、3-11月期(3Q累計)経常が18%増益で着地・9-11月期も34%増益  15:30
9   12/28                               小島鉄、前期経常を一転赤字に下方修正  15:15
10  12/28                              ERIHD、上期経常は53%増益で着地  15:00
11  12/28                  三機サービス、上期経常を一転42%増益に上方修正・最高益更新へ  15:00
12  12/28                           一六堂、9-11月期(3Q)経常は43%減益  15:00
13  12/28         ハローズ、3-11月期(3Q累計)経常が4%増益で着地・9-11月期も12%増益  15:00
14  12/28       トライSTG、3-11月期(3Q累計)最終が赤字転落で着地・9-11月期は73%減益  15:00

正しくスクレイピングできています。
ここから、増益・減益の情報などを抽出する・・・など、いろいろ利用することができますね

-python
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

関連記事

Travis CIを使ったPythonプロジェクト構築

Travis CIを使ってみたかったのでメモ。 目次1 概要2 前準備2.1 Travis CIのアカウントを作成3 リポジトリ作成4 テストのための設定4.1 Travis CI用の設定5 コミット …

PythonでQuandlから株価を取得する

今回は、巷で流行りのプログラミング言語であるPythonの勉強として、Pythonを利用して株価を取得するコードを作成しました。 環境は以下です。 OS:Ubuntu16.04 Python:3.6. …

pythonで有価証券報告書(XBRL形式)をパースする

今年最後の更新になります。 pythonを使用して、株式会社の財務情報をパースするコードを作成しました。 目次1 要件・仕様2 XBRLとは3 有価証券報告書の会計基準について4 設計・実装5 テスト …