使用 Selenium 获取两个标签之间的 HTML
Obtain HTML between two tags using Selenium
设置
我正在使用 Selenium 获取页面上的一组链接。
页面HTML结构为'flat';没有缩进,没有 children,等等,看起来像
<h2>TAG1</h2>
<a href...>...</a>
'more links'
<a href...>...</a>
<h2>TAG2</h2>
问题
我要获取的链接位于(不是里面)两个h2
标签之间。
如何告诉 selenium 获取 TAG1
和 TAG2
之间的 HTML(或直接链接)?
这个 xpath 应该可以解决问题
//a[./preceding-sibling::h2[.='TAG1']][./following-sibling::h2[.='TAG2']]
xpath 读取为 select 所有 a 标签,其前面有 h2 和文本 TAG 1,h2 后面有文本 TAG2。
这个 css 选择器应该可以工作 h2 ~ a
示例:(在 python 中)
elements = driver.find_elements_by_css_selector('h2 ~ a')
links = [x.get_attribute('href') for x in elements]
设置
我正在使用 Selenium 获取页面上的一组链接。
页面HTML结构为'flat';没有缩进,没有 children,等等,看起来像
<h2>TAG1</h2>
<a href...>...</a>
'more links'
<a href...>...</a>
<h2>TAG2</h2>
问题
我要获取的链接位于(不是里面)两个h2
标签之间。
如何告诉 selenium 获取 TAG1
和 TAG2
之间的 HTML(或直接链接)?
这个 xpath 应该可以解决问题
//a[./preceding-sibling::h2[.='TAG1']][./following-sibling::h2[.='TAG2']]
xpath 读取为 select 所有 a 标签,其前面有 h2 和文本 TAG 1,h2 后面有文本 TAG2。
这个 css 选择器应该可以工作 h2 ~ a
示例:(在 python 中)
elements = driver.find_elements_by_css_selector('h2 ~ a')
links = [x.get_attribute('href') for x in elements]