使用scrapy.Request中的self.parse始终无法获取下一页的数据,最开始代码:
name = ‘jd’
allowed_domains = [‘jindong.com’] # very importtant
…
yield scrapy.Request(
next_url,
callback = self.parse,# 这个地方问题很大,暂时不清楚具体原因
)
后来反复查询(主要是在scrapy下不好单步调试,很难定位到具体原因),才发现时allowed_domains的原因,应该改为:
name = ‘jd’
allowed_domains = [‘jd.com’] # very importtant
切记:京东的域名是jd.com而不是jindong.com.
设置allowed_domains的含义是过滤爬取的域名,在插件OffsiteMiddleware启用的情况下(默认是启用的),不在此允许范围内的域名就会被过滤,而不会进行爬取。对于start_urls里的起始爬取页面,它是不会过滤的,它的作用是过滤首页之后的页面!
备注:本人从零开始学习python开发有半年了,从今天开始把自己的一些总结和经验分享到CSDN中,有问题多多交流,大家一起学习成长。