XPath を使用して Google スプレッドシートの importXML を介して、このサイトから要素属性の値を取得しようとしています。
私が求める属性値content
は<span>
with にありitemprop="price"
ます。
<div class="left" style="margin-top: 10px;">
<meta itemprop="currency" content="RON">
<span class="pret" itemprop="price" content="698,31 RON">
<p class="pret">Pretul tau:</p>
698,31 RON
</span>
...
</div>
アクセスできます<div class="left">
が、要素にアクセスできません<span>
。
使用してみました:
//span[@class='pret']/@content
#N/A が表示されます。//span[@itemprop='price']/@content
#N/A が表示されます。//div[@class='left']/span[@class='pret' and @itemprop='price']/@content
#N/A が表示されます。//div[@class='left']/span[1]/@content
#N/A が表示されます。//div[@class='left']/span/text()
<span>
i get #N/A;のテキスト ノードを取得します。//div[@class='left']
//
span/text()
<span>
下のテキストノードを取得しますdiv.left
。
<span>
iのテキスト ノードを取得するには、を使用する必要があります//div[@class='left']/text()
。しかし、商品がセール中の場合、スパンのレイアウトが変わるため、そのテキスト ノードを使用できないため、属性が必要です。
探しているスパンが存在しないようですが、Chrome の開発ビューとページ ソースに表示され、すべての XPath は を使用してコンソールで動作し$x("")
ます。
右クリックして開発ツールから XPath を直接生成しようとしましたが、//*[@id='produs']/div[4]/div[4]/div[1]/span
どれが機能しませんか。また、Firefox と FF および Chrome のプラグインを使用して XPath を生成しようとしましたが、役に立ちませんでした。これらの方法で生成された XPath は、「ハンドコーディングされた XPath」でスクレイピングできたサイトでも機能しませんでした。
さて、最も奇妙なことは、明らかに類似したコード構造を持つこの別のサイトで XPath//span[@itemprop='price']/@content
が機能することです。
私はこれで4日間苦労しました。メタタグのオートクローズが関係しているのではないかと思い始めたのですが、なぜ他のサイトでは起こらないのでしょうか?