【发布时间】:2019-07-31 18:53:13
【问题描述】:
我正在尝试查找网页上某些文本的 xpath。如果您要去https://www.york.ac.uk/teaching/cws/wws/webpage1.html 并尝试获取“EXERCISE”的xpath,它看起来像“html body html table tbody tr td div h4”。如果您进入该页面,右键单击“EXERCISE”并检查它,您可以在代码底部看到路径(在 chrome 中)。
我尝试了很多方法。这些都没有得到预期的结果。这是我得到的最接近的:
soup = BS(page, 'html.parser')
tags = [{"name":tag.name,"text":tag.text,"attributes":tag.attributes} for tag in soup.find_all()]
s = ''
for t in tags:
if "EXERCISE" in t['text']:
s = s + t['name'] + " "
print(s)
一开始我需要获取“html body html table tbody tr td div h4”,但最终对于更复杂的页面,我还需要获取标签属性
谢谢!
【问题讨论】:
-
您没有使用 xpath 来定位元素。这是故意的吗?
-
没错,我正在使用确切的文本来定位元素,并希望返回它的路径。
-
你标记了 BeautifulSoup - 你想要 xpath 吗?它可以通过多种方式完成......也可以使用 CSS 选择器
-
我真的很乐意使用任何方式。我只需要找出可以返回给soup.select() 的路径,这样它就可以再次返回文本。我标记 xpath 的原因是因为我在一次尝试中使用了它
-
可以使用lxml吗?
标签: python xpath beautifulsoup