2

我正在尝试从此http://www.npr.org/rss/#feeds新闻提要网站获取链接和类别。

这是我在scrapy shell中的xpath:

a = sel.xpath('//ul[@class="rsslinks"]/li/a/@href').extract()

b = sel.xpath('//ul[@class="rsslinks"]/li/a/text()').extract()

但是 b 的长度比 a 的长度小一。我不知道我在这里错过了什么。但这会导致数据出现问题。

从下图中,类别名称是“通过电子邮件发送最多的故事”,但链接是“新闻头条”

任何帮助,将不胜感激Xpath 屏幕

4

2 回答 2

4

这是因为结果中的第一个链接:

<a class="iconlink xml" href="/rss/rss.php?id=1001" target="blank"><strong>News Headlines</strong></a>

如您所见,没有直接的子“文本”节点,只有一个strong元素。您的 xpath 与它不匹配。

添加另一个斜杠以从a标记中获取所有文本节点:

//ul[@class="rsslinks"]/li/a//text()
                         HERE^
于 2015-01-05T19:24:50.020 回答
1

带有 News Headlines 标签的 /rss/rss.php?id=1001 的文本似乎在另一层之下<strong> </strong>,而其他链接则不是。

于 2015-01-05T19:25:13.900 回答