2017-08-08 9 views
-1

私はスクレイピーに新しいので、複数のクラス名を持つタグからテキストを抽出する必要があり、クラス名にスペースとハイフンが含まれています。空白とハイフンを含むクラス名のスクラピーを使用してデータを抽出できません

例:私は、コードを使用すると

<div class="info> 
    <span class="price sale">text1</span> 
    <span class="title ng-binding">some text</span> 
</div> 

response.xpath("//span[contains(@class,'price sale')]/text()").extract() 

を私はテキスト1を得ることができるが、私が使用している場合:

response.xpath("//span[contains(@class,'title ng-binding')]/text()").extract() 

私は空のリストを取得します。なぜこれが起こっており、これをどう扱うのですか?

+0

これは変だけど、私にとってはうまくいく(Scrapy 1.3.3と1.4.0の両方でテストされている)。 –

答えて

2

あなたが探している式は次のとおりです。

//span[contains(@class, 'title') and contains(@class, 'ng-binding')] 

私は非常に簡単にXPath式をデバッグすることができますXPathのビジュアライザを、示唆しています。これは、ここで見つけることができます:

http://xpathvisualizer.codeplex.com/

やCSSで

response.css("span.title.ng-binding") 

それともng-bindingとその要素は、したがって、最初のサーバーの応答に含まれていないのJavascript/Ajaxを介してロードされる可能性があるとみてください。

関連する問題