2016-03-29 21 views
-1

を返すXPathは次のとおりです。Scrapyシェルresponse.xpath空白の配列[]

/html/body/form/div[12]/div/div[5]/div/div[3]/div[1]/div[13]/ul/li[*]/div/ul/li/ul/li[2]/div[3] 

私は以下の文字列を通じてクロームコンソールを介して出力を取得しています:

$x('/html/body/form/div[12]/div/div[5]/div/div[3]/div[1]/div[13]/ul/li[*]/div/ul/li/ul/li[2]/div[3]/text()') 

しかし、私は応答を入力するとき。 $ sの代わりにxpathを指定し、Scrapyシェルの末尾に.extract()を含めると、空の配列[]が返されます。

>>> response.xpath('/html/body/form/div[12]/div/div[5]/div/div[3]/div[1]/div[13]/ul/li[*]/div/ul/li/ul/li[2]/div[3]/text()').extract() 

[]

誰かが助けてください。事前に感謝します

PS:私はそれが絶対パスだと思います。 Scream Shellではなく、Chrome Consoleで動作する理由を理解したい場合

+1

リンクは何ですか? –

+0

リンクを投稿する必要があります。 – MetalloyD

+0

こんにちは、私の悪い...問題のサイトのリンクは: http://www.craftsvilla.com/jewellery-jewelry.html – chhibbz

答えて

0

bodyタグはソースには何度か存在していますが、ブラウザに追加してください。そうXPathは、それが十分に柔軟であるべきであるので、多分あなたは、あなたのXPathは非常にハードコーディングされたように見える一方で

/html//form/div[12]/div/div[5]/div/div[3]/div[1]/div[13]/ul/li[*]/div/ul/li/ul/li[2]/div[3]/text() 

に試してみることができbodyタグ

を使用して動作しません..あなたが読んでくださいxpathチュートリアルを使い、要素@idと他の属性を使って簡単にする

+0

ありがとう、それは動作していません。私は次のxpathを作成しようとしましたが、空の配列も与えています: response.xpath( '// * [@ * id = "product_data"] // text()')extract() – chhibbz

+0

問題が発生した場合、// * [@ id = "product_data"] // text()に空白があります 2番目の治療はJsをエスケープしませんが、このウェブサイトではjsを使って商品を表示しています –

関連する問題