質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

1568閲覧

GASのIMPORTXMLのXpathについて

TakeWaku

総合スコア6

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2020/03/04 08:49

前提・実現したいこと

GASのIMPORTXMLのXpathについて教えてください。

みずほ銀行のHPから「米ドルUSD」の「MIDDLE」の数字(今日は107.36)を拾いたいのですがChromeのXPathをコピペするだけでは上手くいきませんでした。
https://www.mizuhobank.co.jp/market/quote/index.html

自分なりにコードを読んで、次の式を入れてみたのですが、エラーは出ないものの、空白で何も表示されません。
=IMPORTXML("https://www.mizuhobank.co.jp/market/quote/index.html","//div[@class='pc-none']/table[1]/tbody/tr[2]/td[3]")

アドバイス頂けますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

結論:無理です

A1 に ↓ を書くと、
=IMPORTXML("https://www.mizuhobank.co.jp/market/quote/index.html","//*")

A378:E383に

通貨記号
通貨
記号

こういうのが表示されると思います。つまり、金額や左の通貨記号(USDなど)は、事後的に遅延で取得しているのだと想像されます。
おそらくjavascriptで取得しているとは思いますが、どうやっているかは重要ではありません。
IMPORTXML は第一引数のサイトをxmlとして解析するものなので、そこに空白で表現されている値は空白でしか取得できません。
ブラウザを操作するタイプの自動化をするしかないと思われます。

ちょっとこれはと法的に微妙なのですが、chrome でおそらく開発者ツールを見ていると思うので助言として。
ネットワーク転送状況をみると、csv を含む url に get している通信があるはずです。その response body に csv があるので、そちらを読み取ってあげればいいのかもしれないです。ただ、get option やその他のリクエストヘッダのどれがどう必要かまでは検証していないので(法的に微妙なので)自力でがんばってください。
csvなのでimportxmlでは読めないと思います。試してないです(法的に微妙なので)。また、sjis なんで、utf ベースの google sheet で読み込むのは困難かもしれないです。
gas でかけばなんとかできるかもしれないです。urlfetchとutilities.parsecsv とかで。試してないです(法的に微妙なんで)。
推奨は一切していないです(法的に微妙なんで)。
ここに書いたのはあくまでブラウザの通信を見ての見解です。

投稿2020/03/04 12:34

papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TakeWaku

2020/03/06 04:18

A1に入力してチェックする方法まで教えて頂き、詳しいご説明ありがとうございました。 いわゆる「動的」なHPからは、拾えないと理解しました。 法的に微妙な件は、私の能力的にも微妙なので諦めます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問