首页 > 解决方案 > Xpath没有给出结果scrapy python

问题描述

我正在使用 xpath 来检索 PDF 链接

response.xpath('//a[@id="jr-pdf-sw"]/@href')

链接我正在使用此 xpath -> https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7064742/

我的回复如下所示:

 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" class="jr-col-auto js jr js flexbox no-touch draganddrop csscolumns csstransforms csstransforms3d csstransitions boxflex jr-fs-12 no-animate">
    <head>...</head>
    <body>...</body>

我的 Xpath 位于 body 标签内。

谁能说出为什么这个 xpath 不起作用?是因为命名空间吗?

任何帮助表示赞赏!

标签: pythonxpathscrapynamespaces

解决方案


工作 XPath。经典形式:

//div[@class="format-menu"]//a[contains(.,"PDF")]/@href

如果命名空间是问题:

//*[local-name(.)='div'][@class='format-menu']//*[local-name(.)='a'][contains(.,'PDF')]/@href

推荐阅读