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. javascript - 原生canvas中如何获取到触摸事件的canvas内坐标?2. javascript - 移动端粘贴事件,onpaste事件在app中无效,在app中怎么监测到粘贴事件3. python - 在使用Pycharm时经常看到如下的样式,小括号里红色的部分是什么意思呢?4. javascript - 关于fullpage.js 自动高度失效的问题5. android - react-native 的headless.js Java API 的代码怎么使用?6. angular.js - angular2 有什么cool的loading组件么?7. javascript - Express 和 request 如何代理远程图片?8. python - Scrapy存在内存泄漏的问题。9. javascript - 你们怎样实现前端分页的?10. mac连接阿里云docker集群,已经卡了2天了,求问?
