2016-04-11 12 views
0

を使用してスパンを含むdiv要素内のテキストを取得し、私はこのような一部のHTMLがあります。のXPath

<div id="uniqueID">here <span>is some</span> text</div> 

私が取得したいのですが、私は

$("#uniqueID").text() 
# returns "here is some text" 
を使用することができますjQueryを使ってのxpath を使用して、「ここにはいくつかのテキストです」

しかし、XPathのと

html.xpath('//div[@id="uniqueID"]/text()').extract() 
# returns [u'here ', u' text'] 

html.xpath('//div[@id="uniqueID"]/span/text()').extract() 
# returns [u'is some'] 

どのように私はxpath、またはCSSですべてのテキストを取得できますか?

答えて

1

使用//div[@id="uniqueID"]/concat(text()[1], span/text(), text()[2])

それとも、string()代わりのtext()を使用することができますが、XPathのバージョンに依存します。

+0

これはこの特定の例では機能しますが、私の場合はdiv内にスパンの数が不明です。 jQueryのtext()関数はスパンを無視します。私はおそらくちょうどdivを選択し、それを解析するためにPythonで何かを使用する必要がありますか? – TheJKFever

+0

string()が無効なXPathを返す:./string() – TheJKFever

+0

// div [@ id = "uniqueID"]/string()を試しましたか? – ibm701