1、Pipleline 加入如下代码:(在数据爬完后将URL塞入redis去重)
class RedisInsert(object):
def process_item(self,item,spider):
set_redis_values_1(item['url'])
return item2、Middleware加入如下代码:(在爬数据之前查看该URL是否爬取过)
class IngoreRequestMiddleware(object):
def __init__(self):
self.middlewareLogging=getLogger("IngoreRequestMiddleware")
def process_request(self,request,spider):
if get_redis_values_1(request.url):
self.middlewareLogging.debug("IgnoreRequest : %s" % request.url)
raise IgnoreRequest("IgnoreRequest : %s" % request.url)
else:
self.middlewareLogging.debug("haveRequest : %s" % request.url)
return Noneok!!!

本文介绍了一种使用Scrapy框架结合Redis实现爬虫URL去重的方法。具体包括两个部分:一是通过Pipeline将已爬取的URL存入Redis;二是借助Middleware在请求前检查URL是否已存在于Redis中,从而避免重复抓取。
883

被折叠的 条评论
为什么被折叠?



