使用 python 在 HTML 中找到 CSS 路径(祖先标签)

find the CSS path (ancestor tags) in HTML using python

我想获取匹配文本的所有祖先 div 标签。例如,如果 html 看起来像 HTML snippet

我正在搜索 "Earl E. Byrd"。我想要一个包含 {"buyer-info","buyer-name"}

的列表

这就是我所做的

r=requests.get(self.url,verify='/path/to/certfile')
                soup = BeautifulSoup(r.text,"lxml")
                divTags = soup.find_all('div')

我应该如何进行?

使用 表达式的解决方案:

//div[@title="buyer-info"]/div[text() = "Carlson Busses"]/ancestor::div

如果要通过文本搜索div并获取所有具有title属性的div,首先找到div使用文本,然后使用find_all_previous设置title=True

soup = BeautifulSoup(r.text,"lxml")
div = soup.find('div', text="Earl E. Byrd")

print([div["title"]] + [d["title"] for d in div.find_all_previous("div", title=True)])