Scrapy:表中链接的 xpath

问题描述 投票:0回答:1

我想使用 scrapy 从此表中提取一些书籍链接。

表格看起来像这样:

<table id="table_text">

<tbody>

<tr >
<td>15/02/2014</td>
<td><a href="/book_1.html">Book 1</a></td>
<td>The Author</td>
<td> <a href="/tag1">tag1</a>  <a href="/tag2">tag2</a> </td>
<td>Genre</td>
</tr>

提取的链接应该是:

/book_1.html

我使用的选择器是

def parse(self, response):
    hxs = Selector(response)
    hxs = Selector(response)
    links = hxs.xpath('//table[@id="table_text"]//tr//td[2]//a//@href')

但是

print links
显示空输出:
[]

我想知道我使用的

xpath
有什么问题吗?

python web-scraping xpath scrapy
1个回答
2
投票

根据您提供的信息,您的 XPath 工作正常。它可以简化为

//table[@id="table_text"]//tr/td[2]/a/@href

但是您的版本返回正确的节点。

当 scrapy 遇到意外行为时,请尝试始终检查它收到的 HTML 是否是您期望的 HTML。 使用浏览器和 scrapy 检索的 HTML 可能会有所不同,因为 scrapy 不处理 Javascript(并且某些浏览器会尝试清理 HTML)。

这就是为什么你应该检查response.body的内容是否是你所期望的。如果不是,您需要找到解决方法:)

© www.soinside.com 2019 - 2024. All rights reserved.