Scrapy Shell XPath
Scrapy Shell XPath
我正在尝试从这个 http://www.npr.org/rss/#feeds 新闻提要网站获取 link 和类别。
这是我在 scrapy 中的 xpath shell:
a = sel.xpath('//ul[@class="rsslinks"]/li/a/@href').extract()
b = sel.xpath('//ul[@class="rsslinks"]/li/a/text()').extract()
但是b的长度比a的长度小一。我不知道我在这里错过了什么。但这会导致数据出现问题。
从下图中,类别名称是 "Most Emailed Stories" 但 link 是 "News Headlines"
如有任何帮助,我们将不胜感激
这是因为结果中的第一个 link:
<a class="iconlink xml" href="/rss/rss.php?id=1001" target="blank"><strong>News Headlines</strong></a>
如你所见,没有直接子"text"节点,只有一个strong
元素。你的 xpath 不匹配。
添加另一个斜杠以获取 a
标签中的所有文本节点:
//ul[@class="rsslinks"]/li/a//text()
HERE^
/rss/rss.php?id=1001 的带有新闻标题标签的文本似乎是 <strong> </strong>
下的另一个级别,而其他链接则不是。
我正在尝试从这个 http://www.npr.org/rss/#feeds 新闻提要网站获取 link 和类别。
这是我在 scrapy 中的 xpath shell:
a = sel.xpath('//ul[@class="rsslinks"]/li/a/@href').extract()
b = sel.xpath('//ul[@class="rsslinks"]/li/a/text()').extract()
但是b的长度比a的长度小一。我不知道我在这里错过了什么。但这会导致数据出现问题。
从下图中,类别名称是 "Most Emailed Stories" 但 link 是 "News Headlines"
如有任何帮助,我们将不胜感激
这是因为结果中的第一个 link:
<a class="iconlink xml" href="/rss/rss.php?id=1001" target="blank"><strong>News Headlines</strong></a>
如你所见,没有直接子"text"节点,只有一个strong
元素。你的 xpath 不匹配。
添加另一个斜杠以获取 a
标签中的所有文本节点:
//ul[@class="rsslinks"]/li/a//text()
HERE^
/rss/rss.php?id=1001 的带有新闻标题标签的文本似乎是 <strong> </strong>
下的另一个级别,而其他链接则不是。