【发布时间】:2015-12-12 16:56:14
【问题描述】:
我有一个具有以下结构的 xml 页面:
<item>
<pubDate>Sat, 12 Dec 2015 16:35:00 GMT</pubDate>
<title>
some text
</title>
<link>
http://www.example.com/index.xml
</link>
...
我想提取并关注 <links> 标记内的链接。
我只有默认代码:
start_urls = ['example.com/example.xml']
rules = (
Rule(LinkExtractor(allow="example.com"),
callback='parse_item',),
)
但我不知道如何遵循“文本”标签。我实际上已经尝试过 linkextractor tags='links' 选项,但无济于事。日志有效地进入页面,得到 200 回复,但没有得到任何链接。
【问题讨论】:
-
在
LinkExtractor中使用restrict_xpaths='//link'从链接标签中获取链接 -
@Vaulstein:谢谢,但运气不好。如果我在scrapy控制台上
response.xpath("//item/link/text()").extract()',它确实会返回链接的文本,但如果它在主代码中这样做,它肯定不会关注它们。 -
这里的关键问题是链接在元素文本中而不是属性。链接提取器默认从
href属性中提取链接,我认为它们旨在从属性中获取链接,但我很确定您可以指向文本。 -
@alecxe:我也是这么想的,我尝试在
LinkExtractor中使用tags参数,但我也没有得到链接列表 -
@DervinThunk 如果以前没有人提供有效的答案,我一定会稍后再看看。谢谢。