罗家马德里球迷 2019-03-15 23:43 采纳率: 50%
浏览 7458
已采纳

为什么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">&nbsp;</td>
        <td height="20">
                    <a href="this_is_a_link.gif">这是文本内容.pdf</a>
            </td>
        </tr>
    </tbody>
</table>

但是两种操作的结果不约而同地都是这样的:

>>> file
>>>[]

我很纳闷,这个办法用在其他网页都没出过问题,怎么一到这里就提取不了了呢?

  • 写回答

3条回答 默认 最新

  • 罗家马德里球迷 2019-03-19 23:41
    关注

    问题已被解决,原因应该是:
    1、模糊定位不准确,应尽量寻找临近且稳定的标签;
    2、详细定位不可靠,尤其是

    标签,一般认为在xpath可直接忽视,因为网页源代码往往原来是没有此类标签的,仅仅是网页生成后才出现。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?