【发布时间】:2022-01-25 09:33:48
【问题描述】:
当我尝试使用 xpath 定位“span”时,它的工作原理是这样的。
download = new_html.xpath('//*[@id="Zoom"]/span')
print(download)
output:[<Element span at 0x7fa9370bae80>]
但是当我试图定位 span 的子节点时,它不起作用。
download = new_html.xpath('//*[@id="Zoom"]/span/a/@href')
print(download)
output: []
html结构是这样的:
<span>
<img src="xxx" alt="xxx">
For test.
<br />
For test.
<br />
<a target="_blank" href="abcabc">click on me.</a>
</span>
【问题讨论】:
-
这是一个奇怪的混合标记,
img标签没有关闭,br标签在 XML 语法中被关闭为<br />。那么这就引出了一个问题,在尝试针对解析器构建的树运行 XPath 之前,您究竟使用哪个解析器来解析该输入? -
这是一个来自真实网站的例子,它使用了这种混合标记方法。那么有没有可能匹配成功呢?
-
向我们展示解析 HTML 的代码,说明您使用的是哪个库。