首页新闻找找看学习计划

crawlspider如何修改Rule解析过的链接?

0
[已解决问题] 解决于 2018-12-14 16:18

经过Rule解析的链接还需要再加工一下,例如:

 

rules = {
    'eastmoney':(
        Rule(LinkExtractor(allow='/a/\d+.html', restrict_xpaths='//*[@id="newsListContent"]//*[@class="title"]'),callback='parse_item', follow=True),
        Rule(LinkExtractor(restrict_xpaths='//*[@id="ContentBody"]/div[3]/div/a/@href')),
        Rule(LinkExtractor(restrict_xpaths='//div[@id="pagerNoDiv"]//a[contains(.,"下一页")]'), follow=True)
        )
}

这里定义了三个Rule,第一个是详情页链接的解析规则,第二个是详情页翻页的解析规则(详情页翻页没有下一页这种,而是把页码都列出来了,所以这里想获取翻页代码区域的所有href,不过是失败的...求解答)第三个是列表页翻页的解析规则。
当start_urls的链接经过详情页的解析规则之后,获得了详情页的链接,但是这里获得的详情页链接还需要再加工一下(在链接中拼接字符串),请问应该在哪里添加什么步骤呢?

会发光的主页 会发光 | 菜鸟二级 | 园豆:266
提问于:2018-12-14 14:04
< >
分享
最佳答案
0

downloadermiddleware里定义process_requests,这里经过所有链接,只要把详情页URL匹配出来拼接一下,return response就行了

会发光 | 菜鸟二级 |园豆:266 | 2018-12-14 16:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册