Yahoo!ファイナンスのページから株価をスクレイピング

CentOS 7のpython3.6にbeautifulsoupとrequestsをインストールしたので、早速コードを書き、Yahoo!ファイナンスのページから株価をスクレイピングしてみました。


import requests
from bs4 import BeautifulSoup
code=[9418,9449,8142,3395,3048,4924,7818,9622,9861,3606]
base_url = "https://stocks.finance.yahoo.co.jp/stocks/detail/"
for i in range(len(code)):
    query={}
    query["code"] = str(code[i]) + ".T"
    ret = requests.get(base_url,params=query)
    soup = BeautifulSoup(ret.content,"html.parser")
    stocktime = soup.find('dd',{'class':'yjSb real'})
    realtime = soup.findAll('span',{'class':''})[0].text
    stocktable =  soup.find('table', {'class':'stocksTable'})
    symbol =  stocktable.findAll('th', {'class':'symbol'})[0].text
    stockprice = stocktable.findAll('td', {'class':'stoksPrice'})[1].text
    pricechange= stocktable.findAll('td',{'class':'change'})[0].text
    if len(symbol.replace('(株)',''))<4:
        print(symbol.replace('(株)',''),'\t','\t','\t','\t',stockprice,'\t',pricechange.replace('前日比',''),'\t',realtime)
    elif len(symbol.replace('(株)',''))<8:
        print(symbol.replace('(株)',''),'\t','\t','\t',stockprice,'\t',pricechange.replace('前日比',''),'\t',realtime)
    elif len(symbol.replace('(株)',''))<12:
        print(symbol.replace('(株)',''),'\t','\t',stockprice,'\t',pricechange.replace('前日比',''),'\t',realtime)
    else:
        print(symbol.replace('(株)',''),'\t',stockprice,'\t',pricechange.replace('前日比',''),'\t',realtime)
print()
inputkey=input('Press any key!')

出力結果は以下のようになりました:

U−NEXT                      1,015   +5(+0.50%)    10/20
GMOインターネット             1,604   +88(+5.80%)   10/20
トーホー                         2,743   -3(-0.11%)    10/20
サンマルクホールディングス       3,390   +40(+1.19%)   10/20
ビックカメラ                     1,424   +14(+0.99%)   10/20
シーズ・ホールディングス         4,130   -10(-0.24%)   10/20
トランザクション                 1,077   +32(+3.06%)   10/20
スペース                         1,689   +4(+0.24%)    10/20
吉野家ホールディングス           1,872   +3(+0.16%)    10/20
レナウン                         199     +1(+0.51%)    10/20

コードの作成に当たっては、以下のサイトを参考にしました:

コメントを残す

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