在一个<td>里面有很多个<a>标签,打印<td>里某个已知XPath的<a>标签以后的所有超链接
时间: 2023-08-17 17:10:26 浏览: 87
可以使用以下 Python 代码来实现:
```python
from lxml import html
# 假设我们已经有了包含HTML的字符串变量html_string和已知XPath的a标签的XPath
# 将HTML字符串转换成HTML树
html_tree = html.fromstring(html_string)
# 获取所有的<td>标签
td_tags = html_tree.xpath('//td')
# 依次遍历每个<td>标签
for td_tag in td_tags:
# 获取当前<td>标签下的所有<a>标签
a_tags = td_tag.xpath('.//a')
# 遍历所有的<a>标签
for a_tag in a_tags:
# 如果当前<a>标签的XPath与已知的XPath相同
if a_tag.xpath('string()') == '已知的XPath':
# 打印该<a>标签以及之后的所有超链接
for next_a_tag in a_tag.xpath('./following::a'):
print(next_a_tag.xpath('@href')[0])
```
上述代码中,我们首先将HTML字符串转换成HTML树,然后获取所有的<td>标签。接着,我们依次遍历每个<td>标签,获取当前标签下的所有<a>标签。对于每个<a>标签,我们判断其XPath是否与已知的XPath相同,如果相同,则遍历该标签之后的所有<a>标签,打印它们的超链接。注意,此处假设超链接都是通过href属性来定义的。
阅读全文