python - scrapy url去重
问题描述
请问scrapy是url自动去重的吗?比如下面这段代码,为什么运行时start_urls里面的重复url会重复爬取了?
class TestSpider(scrapy.Spider): name = 'test' allowed_domains = ['baidu.com'] start_urls = [’http://baike.baidu.com/fenlei/%E5%A8%B1%E4%B9%90%E4%BA%BA%E7%89%A9’, ’http://baike.baidu.com/fenlei/%E5%A8%B1%E4%B9%90%E4%BA%BA%E7%89%A9’, ’http://baike.baidu.com/fenlei/%E5%A8%B1%E4%B9%90%E4%BA%BA%E7%89%A9’,] def parse(self, response):for sel in response.xpath(’//p[@class='grid-list grid-list-spot']/ul/li’): item = TestspiderItem() item[’title’] = sel.xpath(’p[@class='list']/a/text()’)[0].extract() item[’link’] = sel.xpath(’p[@class='list']/a/@href’)[0].extract() yield item
问题解答
回答1:建一个Url管理器,就不会重复抓取了
回答2:知道了,改成这样就可以了。
def start_requests(self):
yield scrapy.Request(’http://baike.baidu.com/fenlei/%E5%A8%B1%E4%B9%90%E4%BA%BA%E7%89%A9’, self.parse)yield scrapy.Request(’http://baike.baidu.com/fenlei/%E5%A8%B1%E4%B9%90%E4%BA%BA%E7%89%A9’, self.parse)yield scrapy.Request(’http://baike.baidu.com/fenlei/%E5%A8%B1%E4%B9%90%E4%BA%BA%E7%89%A9’, self.parse)
相关文章:
1. python - Django表单Form.save()问题2. php为什么是源程序显示?3. linux - mysql 数据库经常报错挂掉4. javascript - video标签播放mp4视频自动暂停?5. mysql在限制条件下筛选某列数据相同的值6. 老师,flex-shrink: 1; 按视频操作,不会自动缩放7. html5 - node静态资源服务器设置了Cache-Control,但浏览器从来不走3048. java - springMVC 自动组装相关问题。9. html5 - 在HBuilder中打包Android的apk包出错,不知道是什么原因。10. python - 多线程小白求问这样的IP要怎么实现多线程print?

网公网安备