2016-12-27 13 views
1

私はScrapyが間違っていると思いますが、xpathを使用してH2のテキストのみを選択し、内側のタグを取り除こうとしています。ネストされた要素のxpathを処理する

例えば、

<h2>Welcome to my <a href="#">page</a></h2> 
<h2>Welcome to my Page</h2> 

私は//h2//text()を使用して試してみましたが、それは私が組み合わせの数を試してみましたが、ちょうど私が

下記するように配列を取得することができないよう、この

item["h2s"] = response.xpath('//h2//text()').extract() 

['Welcome to my', 
'page', 
'Welcome to my Page'] 

のような配列を生成

答えて

1

すべてのテキストノードh2

In [1]: [''.join(h2.xpath(".//text()").extract()) for h2 in response.xpath("//h2")] 
Out[1]: [u'Welcome to my page', u'Welcome to my Page'] 

このトピックでは、また、非常に関連性がある:

+1

ファンタスティック、ちょうどそれを試してみましたが、完全に働いた:)感謝を。比較的簡単なことでScrapyでやるのはかなり複雑なようです。 –

関連する問題