Navigation

Related Articles

Back to Latest Articles

PythonistaでiPhoneから株価をスクレイピング


press
PythonistaでiPhoneから株価をスクレイピング

Pythonistaには多くのモジュールがプリインストールされていて、スクレイピングに必要なBeautifulSoupも初めから使える様になっています。そこで、今回はiOSアプリのPythonistaを使ってiPhoneから株価をスクレイピングします。証券コード、会社名、市場、株価を取得してみます。

stock.py

import urllib.request
from bs4 import BeautifulSoup

number = 7203
url = 'https://kabutan.jp/stock/?code={}'.format(number)
f = urllib.request.urlopen(url)
html = f.read().decode('utf-8')

soup = BeautifulSoup(html, 'html.parser')

stock_dict = {}

code = soup.find("h2")
stock_dict['code'] = code.find("span").text.strip()

company = soup.find("h2")
company.find("span").extract()
stock_dict['company'] = company.text.strip()

stock_dict['market'] = soup.find("span", {"class": "market"}).text.strip()

price = soup.find("span", {"class": "kabuka"}).text.strip()
price = price.replace(',', '')
price = price.replace('円', '')
stock_dict['price'] = price

print(stock_dict)

import urllib.request
from bs4 import BeautifulSoup
スクレイピング に必要なモジュールをインポートします。

number = 7203
url = ‘https://kabutan.jp/stock/?code={}’.format(number)
株価情報のページのURLを指定します。
(7203はトヨタ自動車の証券コード)

soup = BeautifulSoup(html, ‘html.parser’)
ページのソースコードをパースします。

code = soup.find(“h2”)
stock_dict[‘code’] = code.find(“span”).text.strip()
.text.strip()を使って<span>で囲まれたテキストのみを抽出します。

company = soup.find(“h2”)
company.find(“span”).extract()
h2タグ内に<span>タグが入り込んでいるため.extract()で<span>を除外します。

price = soup.find(“span”, {“class”: “kabuka”}).text.strip()
price = price.replace(‘,’, ”)
price = price.replace(‘円’, ”)
取得した株価情報には’,’と’円’が混ざっているので、replace()を使って数字だけにします。

取得・生成した情報はstock_dict = {}に代入していきます。

出力結果


当ブログは群馬県でPython / Djangoを中心にウェブアプリケーションを開発している株式会社ファントムが運営しています。

株式会社ファントムへのお問い合わせ




Show Comments (0)

Comments

Related Articles

Django

Djangoで日本語文字列のQuerySetを五十音順でソートする

DjangoのWEBアプリケーションでQuerySetの表示順を五十音順にしたら、開発環境では五十音順で表示されているのに本番環境では五十音順になっていないときの対処法です。(中途半端に五十音順になっていて、4、5件毎に […]

Posted on by press
Django

DjangoのFormに初期値を設定する

DjangoのFormに初期値を設定する Djangoで生成したFormをhiddenにしたまま、あらかじめ設定しておいた初期値が入ったvalueをPOSTする方法です。 forms.pyでinitial=’ […]

Posted on by press