我正在尝试找到网页上某些文本的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”,但最终在页面更复杂的情况下,我还需要获取标签属性
谢谢!
使用lxml:
url = 'https://www.york.ac.uk/teaching/cws/wws/webpage1.html'
import requests
from lxml import etree
parser = etree.HTMLParser()
page = requests.get(url,headers={"User-Agent":"Mozilla/5.0"})
root = etree.fromstring(page.content,parser)
tree = etree.ElementTree(root)
e = root.xpath('.//*[text()="EXERCISE"]')
print(tree.getpath(e[0]))
输出:
/ html / body / hmtl / table / tr / td / div [2] / h4
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句