scrapy-redis模块源码解析

/scrapy_redis
----|__init__.py

----|connection.py
--------function:get_redis_from_settings
将所有配置放到dict:params中,用于实例化redis对象
--------function:get_redis
实例化redis对象,from_url方法优先

----|defaults.py
默认连接参数

----|dupefilter.py
去重类
--------class:RFPDupeFilter(BaseDupeFilter)
------------method:__init__(self,server,key,debug)
------------method:clear(self)
清除request_fingerprint记录
------------method:close(self,reason)
结束爬虫爬取时,调用
------------method:from_crawler(cls,crawler)
类方法,调用from_settings方法初始化
------------method:from_settings(cls,settings)
类方法初始化,预留钩子
------------method:log(self,request,spider)
根据传入的debug或者默认显示log
------------method:request_fingerprint(self,request)
根据请求信息返回经过sha1计算后的值
------------method:request_seen(self,request)
调用request_fingerprint,判断是否访问过

----|picklecompat.py
pickle序列化和反序列化

----|piplines.py
持久化类
--------class:RedisPipline
------------method:process_item
调用_process_item
------------method:_process_item
通过rpush方法放到redis的列表里

----|queue.py
使用redis制作的队列,有Fifo、Lifo、PriorityQueue三种

----|scheduler.py
调度器类
--------class:Scheduler
------------method:enqueue_request
不是白名单且访问过的,往队列里放Request对象
------------method:next_request
从队列里取值

----|spiders.py
爬虫类

----|utils.py
--------bytes_to_str
字节转成字符串,默认utf-8


猜你喜欢

转载自www.cnblogs.com/igzh/p/8976841.html