XPath not expected result with lxml
很抱歉,如果我的问题格式不正确,英语不是我的母语。
我正在尝试从以下网址获取表格 Bulapedia, Bulbasaur 但是当我使用 xpath 时,lxml 给了我非常奇怪的结果。
我尝试了以下方法:
1
2 |
for elem in tree.xpath(‘//*[@id=”mw-content-text”]//table[14]//tr[3]//td//table//tr//td’):
print(etree.tostring(elem, pretty_print=True)) |
这并没有给我我需要的数据,它给出了来自不同表数据的值,甚至是随机的。
我现在不知道该尝试什么,cssselect 也不是一个选项,因为这似乎会根据我正在搜索的口袋妖怪而改变。
我试图得到以下结果:
- 告诉我们你想要得到什么。
- @pguardiario 我正在尝试获取以下信息:i.imgur.com/FjvYxqW.png
- 使用 cssselect 并执行:th:contains(“Weak to:”) + td
除了第一个元素 *[@id=”mw-content-text”] 之外,XPath 中的所有其余元素都应该是它们之前的元素的直接子元素。通过使用 // 您可以选择父级中任何深度的元素,这不是您想要的。
将除第一个 // 之外的所有内容更改为 /,它应该可以按预期工作:
1
2 |
for elem in tree.xpath(‘//*[@id=”mw-content-text”]/table[14]/tr[3]/td/table/tr/td’):
print(etree.tostring(elem, pretty_print=True)) |
- 我得到完全相同的结果:c
- 我用你的例子弄清楚了!谢谢!
来源:https://www.codenong.com/51663687/