PythonでWebページの取得 (02)
本記事の目標
米国株の目標株価を取得する
米国株の目標株価 (consensus estimateのtarget price)を investing.com より取得する
取得対象
サイト Investing.com
URL: http://https//www.investing.com/
個別銘柄(この例では AAPL)のページのURL
URL: https://www.investing.com/equities/apple-computer-inc
こんな感じ↓のページが表示されます

目標株価のページ
上記ページ↑の少し下の方に移動して,[Technical] → [Consensus Estimates] とクリックします.

上記↑の様にクリックすると,下記↓の様なコンセンサス予想のページに移動します.

これ↑の赤四角部(この例では Average | 190.77 の「190.77」)が「平均目標株価」です.
目標株価の取得
上記のWebページの中から「目標株価」のみを抜き出します.そのためには「目標株価」の部分に対応するXPathを取得します.
Google Chromeを使ってください.

上図↑の様に「目標株価の値(190.77)」の部分を右クリックして「検証」を選びます

上図↑の様に,右側に開発者ツール(DevTool)が表示されます.
右下のある行が選択されて水色になっています.この水色の部分が「目標株価の値(190.77)」に対応しています.
水色の行の一番左の文字の「▶」をクリックして「▼」に変えましょう.展開されて隠れていた3行が出て来ます.
こんな↓感じです.

マウスポインタを,隠れていた3行の一番下の行に持って行くと,左の欄の中の「190.77」がハイライトされます.
この行が目標株価の「190.77」に対応していることが分かります
こんな感じ↓

この行を右クリックして,[Copy]→[Copy full XPath]と選らんでください.
「目標株価の数字(190.77)」に対応するXPathがクリップボードにコピーされています.
メモ帳などにペーストしてみてください.きっと
/html/body/div[5]/section/div[8]/div[2]/div[1]/p[2]/text()[2]
となっているでしょう.
次に,取得したWebページのHTMLファイルから,「目標株価の数字」を抽出するプログラムを書きます.
Webページ(HTMLファイル)の取得
残念ながら,自作Pythonプログラムでダウンロードするとエラーになると思います.wgetでダウンロードしてください.
この様に↓
wget https://www.investing.com/equities/apple-computer-inc-consensus-estimates
HTMLファイルから目標株価の取得のプログラム
02.py
from lxml import html
import sys
xpath = "/html/body/div[5]/section/div[8]/div[2]/div[1]/p[2]/text()[2]"
ht = html.fromstring(sys.stdin.read())
for token in ht.xpath(xpath):
print(token)
実行方法
wgetとひとまとめにして
wget https://www.investing.com/equities/apple-computer-inc-consensus-estimates -O - | python3 02.py
実行結果
190.77
となるはずです