我正在尝试使用Python 3从Result中提取“总标记”。网页显示在image,从这里,我正在尝试提取数据' 515 ”。内容的XPath(来自Firebug)显示为:
/html/body/div/div/div/div[3]/div[1]/div/div[2]/div[2]/table/tbody/tr[1]/td[2]/b
使用的代码段是:
summary_data_xpath = '//tbody/tr[1]/td[2]/b/text()'
data = html_tree.xpath(summary_data_xpath)
print(data)
但我得到了输出:[]
我尝试使用绝对路径(Firebug给出的XPath)。我也尝试从'//table
'开始引用,但我得到了相同的结果。
这两个表的结构如下:
...
<div>
<div>
Upper Table with subject marks
</div>
Lower Table with subject marks and division
</div>
...
如何从表格中提取总标记“ 515 ”? 提前感谢您的任何帮助!
答案 0 :(得分:2)
我会使用前面提到的&#34; Total Marks&#34;标签来自following-sibling
axis:
import requests
from lxml.html import fromstring
url = "http://results.vtu.ac.in/results/result_page.php?usn=3ae13cs089"
response = requests.get(url, headers={'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36'})
root = fromstring(response.content)
summary_data_xpath = './/td[b = "Total Marks"]/following-sibling::td/b'
data = root.xpath(summary_data_xpath)[0].text.strip(": ")
print(data)
打印515
。
答案 1 :(得分:1)
由于这里没有真正好用的id,我会使用以下内容:
//tr[./td/b/text()="Total Marks"]/td[2]/b