2016-05-22 27 views
-2

私はこれらのリストを持っており、リストの理解度を使ってすべてを一気に取得しています。 どちらの場合でも、テキスト「v 11/4」を抽出する場合は、 (この行の場合)に抽出する必要があります。XPATH(もう一度)オプションのタグ要素単一の文字列を抽出

EX 1

<td> 
<b class="black">2</b>/6 <a href="/some/link"onclick= 
"returnHtml.popup(this," title="whateveryoulike">(ABL TTTTTSSSSSS 
11)</a>v 11/4</td> 

EX 2

<td> 
<b class="black">2</b>/6 <a href="/some/link"onclick= 
"returnHtml.popup(this," title="whateveryoulike">(ABL TTTTTSSSSSS 
11)</a>v<sup>1</sup> 11/4</td> 

任意のアイデア?両方<td>例は<a>後に配置(<td>の)すべての直接の子テキストノードの連結」であろうための一貫したテキスト「V 11/4」を識別するために

+0

何は、XPath、他の 'lxml'、scrapy、セレン、何かを実行するために使用しますか? – har07

+0

治療 - 問題を解決しました – codervince

+0

anonユーザーが簡単に投稿をマークすることができます。さあ、あなたの顔を見せてください。 – codervince

答えて

1

1つの可能な方法。以下の例の実装はlxml.htmlを使用している:

>>> from lxml import html 
>>> raw = '''<tr> 
... <td> 
... <b class="black">2</b>/6 <a href="/some/link" onclick= 
... "returnHtml.popup(this," title="whateveryoulike">(ABL TTTTTSSSSSS 
... 11)</a>v 11/4</td> 
... <td> 
... <b class="black">2</b>/6 <a href="/some/link" onclick= 
... "returnHtml.popup(this," title="whateveryoulike">(ABL TTTTTSSSSSS 
... 11)</a>v<sup>1</sup> 11/4</td> 
... </tr>''' 
... 
>>> root = html.fromstring(raw) 
>>> result = [''.join(txt for txt in td.xpath("a/following-sibling::text()")).strip() \ 
...    for td in root.xpath("//td")] 
... 
>>> result 
['v 11/4', 'v 11/4'] 
+0

ちょうど私が感謝のために探していたもの – codervince

関連する問題