为什么要自定义过滤规则呢? 首先,我们需要过滤,但是不是说抓一次就不抓了,因为我们的抓取是一段时间抓取一次
自定义策略如下:
首先我试图直接继承RFPDupeFilter
在settings.py同级的目录下新建dupefilter.py文件,按照网上说的方法,写了内容如下
from scrapy.dupefilter import RFPDupeFilter
import hashlib
from scrapy.utils.request import request_fingerprint
from scrapy.dupefilter import BaseDupeFilter
class URLFilter(RFPDupeFilter):
def __init(self):
RFPDupeFilter.__init__(self)
def request_seen(self, request):
fp = self.request_fingerprint(request)
added = self.server.sadd(self.key, fp)
return added == 0
在settings.py中添加
DUPEFILTER_CLASS = 'CrawlBaiduMobile.dupefilter.URLFilter'
但是启动spider会报如下错误:
ValueError: (