与えられた後、第一のテーブルを見つけるために、相対的なXPathを使用しています。私はここにhttps://www.iaaf.org/competitions/iaaf-world-championships/iaaf-world-championships-london-2017-5151/results/men/10000-metres/final/resultを見つけ、下の画像に示されている「SPLIT TIMES」テーブルの上で磨くますのXpathを見つけようとしていますは、私は私がテキスト「<strong>SPLIT TIMES</strong>」の後<strong>最初</strong>テーブルをインポートすることができます相対的な(絶対的ではない)のXpathを見つけようとしていますテキスト
from lxml import html
import requests
ResultsPage = requests.get('https://www.iaaf.org/competitions/iaaf-world-championships/iaaf-world-championships-london-2017-5151/results/men/10000-metres/final/result')
ResultsTree = html.fromstring(ResultsPage.content)
ResultsTable = ResultsTree.xpath(("""//*[text()[contains(normalize-space(), "SPLIT TIMES")]]"""))
print ResultsTable
:これは私のコードです。
Xpathが可能な限り汎用性がある場合は、私は感謝します。たとえば、要件が変更され、'10、000 METERS MEN '(上記と同じURL)というテキストの後に最初のテーブルが見つかります。 https://www.iaaf.org/competitions/iaaf-world-championships/iaaf-world-championships-london-2017-5151/medaltable
おかげさまで、ありがとうございます。それは 'lxml.etree.XPathEvalError:無効な式'を返します。上記の構文をテストしましたか? – Dongs14173
申し訳ありません、私はこれを使用しました、 'ResultsTable = ResultsTree.xpath(( "" * * [text()[normalize-space()、 "SPLIT TIMES")]]/following :: table " "")) 'を返しますが、空の値を返します – Dongs14173
ページをチェックすると、分割時間は「分割時間」となります。 – johnII