0

XML Web ページで ID「1438」を検索し、YES、10:00、NO など、その下の特定の要素のテキストを返す必要があります。データ/タグの場所がわからないため、常にドキュメント全体を検索する必要があります。

<type="home">
    <name="wo" id="1438">
        <category name="m1" id="2">
        <date="17.06.2013" time="">
           <status="YES" time="10:00" id="654657">
               <winner="NO" _won="0" id="2714"/>
               <winner="YES" _won="0" id="2943"/>
    </won>

これまでのところ、私は持っています

result = urllib.urlopen("URL")
html = result.read()
parser = etree.HTMLParser()
tree   = etree.parse(StringIO.StringIO(html), parser)

doc = lxml.html.document_fromstring(html)

print doc.xpath(u'.//[text()="1438"]/text()')

ただし、次のエラーが表示されます

 lxml.etree.XPathEvalError: Invalid expression

私のxpath式は間違っていると思いますが、例を検索した後、明確なチュートリアルが実際には見つかりませんでした.誰かが(初心者に優しい)例を知っていれば、それらに向けられることに最も感謝しています. 私はBS4を使用しますが、処理するものがかなりあり、lxmlの方がはるかに高速であることを理解しています..これが愚かな質問である場合は申し訳ありません!

ありがとう!

4

1 に答える 1

0

これを試して:

doc.xpath(u'//*[id="1438"]/text()')
于 2013-06-17T00:52:22.380 に答える