我正在使用python和XPath解析网站。
我要做的是从<a>
所以这就是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
的单个
我做错了什么?
答案 0 :(得分:1)
以/
字符开头的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")