我正在使用 python 和 XPath 解析网站。
我想做的是从 <a>
中提取 href
XML(页面)如下:
<div id="post">
<div align="center">
<table>
<tbody>
<tr>
<td>
<td>
<a href="test01">
<tr>
<td>
<tr>
<td>
<div align="center">
<table>
<tbody>
<tr>
<td>
<td>
<a href="test01">
<tr>
<td>
<tr>
<td>
这是我所做的代码:
posts = page.xpath("//div[@id='posts']/div[@align='center']")
for post in posts :
print post.xpath("//table/tr[1]/td[2]/a/@href")
但问题是我最终得到了 posts
的每个 href而不是 post
中的唯一一个
我做错了什么?
最佳答案
以 /
字符开头的 XPath 意味着它将从文档根节点开始。要从上下文节点创建相对 XPath,您需要在 /
.
.
。
所以你的代码应该是:
posts = page.xpath("//div[@id='posts']/div[@align='center']")
for post in posts:
print post.xpath(".//table/tr[1]/td[2]/a/@href")
关于python - 当我指定不解析整个页面时,Xpath 会解析整个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36907688/