問題タブ [google-sheets-importxml]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
dom - importXML で使用する XPath 式
ウェブサイトhttps://www.google.co.uk/finance?cid=704531から、フィールド「Range」と「52 week」、およびそのグループの他のフィールドを中央にインポートしようとしています。私は XPath を見てきましたが、非常に混乱しています。
セル A1 には がありhttps://www.google.co.uk/finance?cid=704531
ます。
セルB1に私が持っている
しかし、結果はエラーです。
この HTML 構造の正しい XPath 式は何ですか?
google-sheets - IMPORTXML関数で読み込んだ情報の一部を表示するには?
A1に挿入された数式は次のとおりです。
この式をテストすると、多数の情報が返されます。A列とB列の26行目から57行目までの情報だけを表示する方法を教えてください。
html - Google スプレッドシート (ImportXML) の Xpath に関する問題
これは素晴らしいサイトで、他の投稿をスクロールして検索するだけで、すでに多くの質問に答えています. 残念ながら、この問題に特に役立つ答えを突き止めることはできないようです。投稿して助けを探してみようと思いました-
ImportXML と Google スプレッドシートを使用して、小売サイトからいくつかの製品説明を「スクレイピング」しています。ほとんどの部分でうまく機能しており、私は2つの方法でそれを行いました:
1) 投稿の説明部分への特定の呼び出し:
2) 「製品カード」全体を呼び出します。これにより、製品のタイトル、価格、投稿された時間などの情報も返され、これらのアイテムが Google スプレッドシートの隣接するセルに配置されます。
どちらも問題なく動作しましたが、それぞれの方法を使用して別の問題に遭遇しました。これらの問題の 1 つでも解決できれば、喜んでもう 1 つの方法を破棄します。そのうちの 1 つが機能するだけでよいのです。問題は次のとおりです。
方法 1) この Web サイトでは、売り手が商品の投稿に連絡先情報を含めることを禁止しています。いずれにせよ電子メール アドレスが含まれている場合、サイトは自動的にそれをブロックするため、投稿では単に「... you can contact me at [obscured ]」とかそんな感じ。[obscured] は異なる色のテキストで表示され、何らかの方法で明らかに異なる方法で処理されます。方法 1 を使用してこれらの説明をスクレイピングすると、[obscured] という単語にヒットすると ImportXML が「ぶつかった」ように見え、その製品説明の残りのテキストがスプレッドシートの次のセルに渡されます。これにより、シートの構成全体が台無しになります。ImportXML で [obscured] を無視して、製品説明のテキスト全体を 1 つのセルに配置できる方法を見つけたいと思います。
方法 2) 「製品カード」全体に対する私の呼び出しは次のとおりです。
前述のように、これは (ほとんどの製品で) 正常に機能し、隣接するセルに追加情報 (価格、日付など) が表示されても問題ありません。ただし、この Web サイトでは、特定の製品を「特集」することもできます。この場合、サイトの別のカラー ボックスに表示されるため、購入者の注意を引く可能性が高くなります。この方法を使用すると、「注目の」製品がスクレイピングされたり、スプレッドシートにインポートされたりするのではなく、単に渡されます。
説明 (方法 1) と製品カード (方法 2) のソース コード (実際のサイト) (Safari の「要素を検査」経由) は次のようになります (通常の製品 (a) と注目の製品 (b) の場合)。 ):
(a)
(ロ)
(a) と (b) の両方で、方法 1 で呼び出した「desc」クラスを確認できます。これは正常に機能しているようです。このサイトで読んだことから、特定のクラスには複数の単語を含めることができないことを学んだと思います。タイトルに 3 語、2 語、3 語を含むクラスを表しますが、代わりに複数のクラスが割り当てられている場合は?
とにかく、'desc' の呼び出し (方法 1) は正常に機能し、すべての説明を取得しているようです。したがって、メソッド 2 では、「productCard」を呼び出すと、注目の製品と通常の製品の両方のすべての製品の情報が取得されると考えられます。すべての「productCard」を呼び出した場合、通常の機能と注目の機能が返されるべきではありませんか? 現在、これは当てはまりません。クラスとして「追跡」と「特集」だけを呼び出してみましたが、どちらも何も返さないため、「productCard」と同等の独自のクラスであるという私の論理には欠陥がある可能性があります。
要約すると、方法 1 の「desc」呼び出しは正常に機能し、「注目の」製品の説明も取得できます。ただし、連絡先情報が説明に含まれていて [obscured] と表示されている場合、データがスプレッドシートの次のセル (単語の直後) に表示されます。これはすべての組織を台無しにし、台無しにします。
方法 2 では、注目の製品をまったく入手できず、これにより、私がやろうとしていることが大幅に弱体化します。これらの問題のいずれか (または両方!) を修正できますか??
あなたが私に与えることができるどんな助けにもとても感謝しています.
***更新: 以下のコメントに見られるように、提案されているように「含む」を使用すると、通常の製品と注目の製品の両方を取得することにより、方法 2 が改善されました。ただし、注目の製品カードには余分なテキスト要素があり、この方法ではカード全体がスクレイピングされるため、注目の製品は通常の製品のセルの配置と一致しません。したがって、方法 1 を修正する方法があれば、これははるかに優れたものになります。以下のコメントで概説されているように、[隠蔽された] テキストは、下に続く/からインデントされた「スパン」に表示されます
なので
私が行ってきたように「desc」をインポートする方法はありますが、XPathに[隠蔽された]スパンを本質的に「無視」するように指示するか、少なくとも[の直後に説明テキストを作成しない方法で処理します隠されている] 1 つのセル上に表示されますか?
どうもありがとうございました!
xml - 「XML コンテンツを解析できません」
IMPORTXML 関数を使用しようとすると、Google スプレッドシートで「インポートされた XML コンテンツを解析できません」というエラーが表示されます。
セルの内容:
=IMPORTXML("http://api.eveonline.com/char/AccountBalance.xml.aspx?keyID=myKey&vCode=myVCode&characterID=myCharID","/eveapi/result/rowset/row@balance")
ここで、myKey、myVCode、および myCharID はすべて有効です (実際のキー/ID を使用してアドレス バーからリンクにアクセスすると、クリーンな XML ドキュメントが得られます)。
XPATH は、ノード「row」の属性「balance」の値を返そうとします。eveapi はルート ノートです。
この問題に関して Web で見つけた唯一の情報は、IMPORTXML は js を解析できないということですが、処理する js はありません。出力は文字通り純粋な XML ドキュメントです。
xpath - Google スプレッドシート「ドキュメント名」ImportXML XPath クエリ
Google スプレッドシートに ImportXML 関数を記述して、同じスプレッドシートのドキュメント名を返したいと考えています。たとえば、私のスプレッドシートのタイトルは「キムチ」です。ドキュメント名に基づいてスプレッドシート内の一連の機能を自動化するために、セル「A1」にその名前を返したいと思います。元のテンプレートからコピーして名前を変更する 100 ほどのスプレッドシートのそれぞれのセルに値を入力するのが面倒です。
正しいクエリ構造を釘付けにできないようです。
この XML のビットは有望に見えましたが、クエリで取得できないようです。
今まで試した...
それは戻ってきます...
私はあらゆる種類のバリエーションを試しましたが、いくつかはおそらく同様に不十分な形式です。以下は、美味しそうな XML 構造の一部です。
しかし、ImportXML 関数内のこの XPath クエリも機能しませんでした
それは戻った...
私は困惑しています。
PSこれは、ドキュメントを世界と共有した後、機能するようになりました:
xpath - 変数を使用した URL の Google スプレッドシート式
上記のURLの一部が別のセルの変数である場合、GoogleシートにURLを表示する式は何ですか?
説明します:1つのセルにこの式があります(HTML Webページでクラス「説明」を使用してテキストをスクレイピングするために使用されますが、質問の目的には関係ありません)
=importXML("http://www.xxx.it/code/9788823506183/doc/book.html","//span[@class='description']")
数値部分は、別のセル、たとえば B3 の値に基づいて毎回変化します。試してみ=importXML("http://www.xxx.it/code/(B3)/doc/book.html","//span[@class='description']")
ましたが、もちろんうまくいきません。
次に、B2 で動的に URL を作成し、次のようにできると考えました。
=importXML("B2","//span[@class='description']")
一歩近づきましたが、とにかく行き詰まっています.B2でそのようなURLを生成するにはどうすればよいですか? ドキュメントで適切な関数が見つかりません。私は思いつくことができました:
A1で=9788823506183
in B2 =http://www.xxx.it/code/("A1")/doc/book.html
しかし、それは正しい構文ではありません。:(