python finance

参考サイト

取得したいデータの位置を確かめる

webスクレイピングではHTML/XML中の特定の位置にあるテキストを抽出するのが目的となるため、まず対象のデータ位置を確認します。この際、Chromeの検証機能が使いやすいです。(以下参照)

Chromeデベロッパー・ツール(要素を検証)の基礎的な使い方

ページを右クリックして「検証」を選択します。(Ctrl+Shift+Iでもよい)
すると画面右半分にHTML要素が現れ、タグを選択すると画面上の対応する部分が反転します。これを使って取得したいデータを特定できるところまで掘り下げていきます。

なおYahoo!ファイナンスの場合は以下の様な階層となっています。

<html>
<body>
<div id="wrapper">
<div id="contents">
<div id="contents-body">
<div id="main">
<div class="padT12 marB10 clearFix">
<table class="boardFin yjSt marB6">
<tbody>
<tr>
<td>
ここに基準価格とか

取得したいデータ位置をXPathで書く

XPathとはHTML/XML文書中の任意のコンテンツの位置を表すためのフォーマットです。Chromeでは右クリック -> Copy -> Copy Xpath
でXPathが取得できます。(以下参照)

Chromeだけで任意のノードのXPathを簡単に取得 たぶん革命

今回はid=mainのdiv要素以下にあるテーブルのtd要素がすべてほしいので以下のようにしました。

//*[@id="main"]/div/table//td

parser()でHTMLを取得し、XPathで必要な要素を抽出する

ここからはPythonで行います。urlをlxml.html.parser()に渡してHTML_Elementsを取得し、そこからXPathで指定した要素を抽出します。最後に型式を整えて[日付, 基準価格, 純資産総額]型式のリストで出力します。日付は最後にyyyymmdd型式の文字列としました。

関連広告記事
スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク