经过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的链接经过详情页的解析规则之后,获得了详情页的链接,但是这里获得的详情页链接还需要再加工一下(在链接中拼接字符串),请问应该在哪里添加什么步骤呢?
downloadermiddleware里定义process_requests,这里经过所有链接,只要把详情页URL匹配出来拼接一下,return response就行了