为什么xpath()方法就提取不了a标签中的href属性内容呢?
问题描述:
我的代码是这样的:
方案一(详细版):
file = response.xpath('//*[@id="main-xm-content"]/table/tbody/tr[2]/td/table/tbody/tr[3]/td/table/tbody/tr/td/table/tbody/tr[3]/td[2]/a/@href').extract()
方案二(精简准确版):
file = response.xpath(''//div[@id="main-xm-content"]/table//table//table//table//a//@href')
网页结构大致是这样的:
<table width="900" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>...</tr>
<tr>...</tr>
<tr>
<td width="25"> </td>
<td height="20">
<a href="this_is_a_link.gif">这是文本内容.pdf</a>
</td>
</tr>
</tbody>
</table>
但是两种操作的结果不约而同地都是这样的:
>>> file
>>>[]
我很纳闷,这个办法用在其他网页都没出过问题,怎么一到这里就提取不了了呢?
答
问题已被解决,原因应该是:
1、模糊定位不准确,应尽量寻找临近且稳定的标签;
2、详细定位不可靠,尤其是
答
你先把response里的content 打印出来看看。有时候会和你用浏览器看到的东西不一样
答
xpath匹配规则改成这样试试
//a[contains(@href,“this_is_a_link.gif”)]/@href