PyQueryによるWebスクレイピング -クイックスタート-
株式市場に関連したビッグデータを利用してデータ分析を行いたく、WebスクレイピングやDB構築について調べたので投稿します。
PyQueryによるWebスクレイピング
Webスクレイピングとは一言でいうと、Webサイトから情報を自動で取得する技術です。
今回はPythonのライブラリ「PyQuery」を利用して株探(https://kabutan.jp/)のページから銘柄情報などを取得しました。
インストール
pip install pyquery
PyQueryインスタンスを生成
pyquery.py
from pyquery import PyQuery as pq
## トヨタ(銘柄コード:7203)のページのhtmlオブジェクトを取得
code = 7203
url = 'https://kabutan.jp/stock/?code={}'.format(code)
data = pq(url)
print(data) # 取得したhtml情報を表示
# <html xmlns="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja" xml:lang="ja">
# <head>
# <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
# <meta http-equiv="Content-Style-Type" content="text/css" />
# <meta http-equiv="Content-Script-Type" content="text/javascript" />
# <title>トヨタ自動車 (トヨタ) 【7203】:株価・株式情報 | 株探</title>
# ...(以下略)
タグを取得
get_tag.py
## titleタグを取得して表示
print(data('title'))
# <title>トヨタ自動車 (トヨタ) 【7203】:株価・株式情報 | 株探</title>
## もしくはこっちもOK。上の操作と同じ
# print(data.find('title'))
ここから「トヨタ自動車」の文字列情報を抜き出すには、text()メソッドなどを利用して下記のようにするとOKです。
get_tag2.py
print(data('title').text().split()[0])
# トヨタ自動車
idを取得
get_id.py
## id = "stckinfo_i2" の要素を取得して表示
print(data('#stockinfo_i2'))
# <div id="stockinfo_i2">
#
# (中略)
#
# <div>
# <a href="/themes/?industry=17&market=1">輸送用機器</a>
# </div>
# <dl>
# <dt>単位</dt>
# <dd>100株 </dd>
# </dl>
#
# (中略)
#
ここから以下のようにして業種と単元株数を取得します。
get_id2.py
print(data('#stockinfo_i2')('a').text())
# 輸送用機器
print(data('#stockinfo_i2')('dl').text().split()[2])
# 100株
クラスを取得
get_class.py
## class = "si_i1_1" の要素を取得して表示
print(data('.si_i1_1'))
# <div class="si_i1_1">
# <h2><span>7203</span>トヨタ自動車</h2>
# <span class="market">東証1</span>
# <time datetime="2019-02-01T15:00+09:00">15:00</time>
# </div>
ここから以下のようにして上場市場などを取得します。
get_class2.py
print(data('.si_i1_1')('h2')('span').text())
# 7203
print(data('.si_i1_1')('h2').remove('span').text())
# トヨタ自動車
## removeした要素には以降アクセスできなくなるため注意!
print(data('.si_i1_1')('.market').text())
# 東証1
終わりに
以上でPyQueryのクイックスタートを終わります。
Beautiful Soup についても今度触ってみて記事にしたいと思います。
この後は自動取得した銘柄データをSQLiteなどに格納してデータベースを作成していきます。
記事を作成したらリンクを載せる予定です。
Author And Source
この問題について(PyQueryによるWebスクレイピング -クイックスタート-), 我々は、より多くの情報をここで見つけました https://qiita.com/omixin/items/d39b8af3c1c9cc14f648著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .