2
7

More than 3 years have passed since last update.

Pythonで日経新聞ウェブサイトから個別銘柄の株価をスクレイピングする方法

Last updated at Posted at 2020-04-26

株価を分析して買い時の銘柄を見つけようと思い、日経新聞のサイトからスクレイピングをしてみました。無料で株価を提供するサイトは株式投資メモなど色々あるのですが、不定期更新のことが多いです。日経新聞のサイトは毎日ちゃんと更新されます。

まず、サイトをスクレイピングする際には色々とルールを守らないと犯罪になってしまいますが、日経新聞のrobots.txtとか利用規約をみる限りは個人利用の範囲なら問題なさそう(?)です。(ダメそうだったら教えてください)

pandasというモジュールのread_html()というメソッドを使うと秒でかけます。

nikkei_scrape.py
import pandas as pd

def get_stock_prices(stock_number):
    url = "https://www.nikkei.com/nkd/company/history/dprice/?scode={}&ba=1".format(stock_number)
    headers = {
        "User-Agent": "User-Agent情報"
    }
    dfs = pd.read_html(url)
    for i in range(len(dfs)):
        if "日付" in str(dfs[i]):
            return dfs[i]
    return False

User-Agent情報はこのサイトを開いたときに出てくる文字列をコピペして貼ればオッケーです。例えば僕の場合、Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Safari/537.36でした。詳しく知りたい人はこちら

stock_numberには数字四桁の株式銘柄コードを入れてください。例えば1301と入れると極洋という会社の株価ページのURLであるhttps://www.nikkei.com/nkd/company/history/dprice/?scode=1301&ba=1をスクレイピングします。銘柄コードはググっても簡単にわかると思いますし、東証のwebサイトからも一覧のEXCELファイルがダウンロードできます。

株価のwebページ内に余計なテーブルが存在することがあり、株価のテーブルだけを取得するため、for文を回して、"日付"という単語が入っているテーブルだけを返すようにしています。

以上です。

2
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
7