IMPORTXML関数
神アプリレーダースクリーン亡き後、銘柄管理や簡単な比較などはやはり
EXCELかスプレッドシート等でやるしかないなと思い、
その為にあちこちから必要なデータを集めるべくPythonに手を出し始め
ある程度メドがたったその時、見つけてしまいましたこのヤバい関数を!
Pythonなんて出来ない、あちこちのサイトの情報が1つに纏まったら良いのにと思ってる人には自分の欲しい情報を集められるのでピッタリです
※ 注意事項
スクレイピングと言われているものなのでサイトによっては禁止されているところもあるので注意して下さい
情報取得先サーバーやPCにも負荷がかかるので一度に沢山の使用は自重した方が良いと思います
それでは使い方とあまり負荷をかけない良い方法をお教えしましょう
使い方
ヘルプにはIMPORTXML(URL,XPathクエリ)とあります
使用例の IMPORTXML(A2,B2)はA2セルにURLとB2セルにXPathクエリを
記述しておいてこういう指定も出来ますよって感じです
一例として簡単にこんな感じのPF管理のスプレッドシートを作るとします
株価を適当にどこかから、発行済株数をかぶたんから、計算で時価総額算出
=IF($A1<>"",IMPORTXML("https://kabutan.jp/stock/?code="&($A1),"/html/body/div[1]/div[3]/div[1]/div[2]/table[2]/tbody/tr[8]/td"),"かぶたん")
1セルごとに要求するので重くならないように1行目だけこの計算式を入れ、更にIF分でA1セルが空白じゃない時実行するようにします
空白の時は参照元のサイトが分かるようにかぶたんと表示してます
空白にしたい場合は”かぶたん”の二重引用符に何も入れなければOKです
URLを二重引用符で囲い、&でA1セルのコードと繋げます
カンマで区切り、XPathクエリをコピペして二重引用符で囲います
XPathクエリの調べ方
(だいたいどのブラウザでも同じだと思いますがFireFoxを使っています)
欲しい情報のサイトで右クリック、要素を調査を選択
又はCtrl+Shift+I、Google Chromeだと検証
こんな感じの画面が開くので下段の左上のカーソル矢印ボタンをクリック
上段の欲しい情報をクリックするとHTML内のその部分が青くハイライトされるようになる(この例は発行済株式数の数字部分)
下段のハイライトされた部分を右クリックしてコピーXPathを選択
これをスプレッドシートにコピペすればこの情報を持って来れるっちゅうしろもんや!
簡単でやばいやろ...(°_°)
必要な銘柄選んで1行目の式をコピペして使えばOK
エラーじゃなければ、Loading...と表示された後、暫くすると表示される
その後もう一工夫、同じセルをコピーしてCtrl+Shift+Vで値のみ貼付け
計算式を上書きして値のみにする事で計算式は1行目だけ、コードを空白にしておけば再計算もされないので遅くなる事はない
さらにもう一工夫w
10,928,283 株のように後ろに”株”とあって株価と掛算するとエラーになるので株をスペースに置き換えて取り除き数字だけにします
例:I3計算式
=REPLACE(H3,FIND("株",H3),1,"")
あとは取り除いた発行済株数と株価を掛けて時価総額の完成や!
例:J3計算式
=SUM(F3*I3/100000000)
複数の工夫で重くなるのを防ぎ簡単に情報を持って来れる!
横の計算はいくらやっても大丈夫なので計算で導き出せるものは計算で!
くれぐれも全銘柄いっぺんにやったらあかんやつやで!
各自注意しながら必要な会社の必要な情報だけよろしゅう頼んます!