码迷,mamicode.com
首页 > 其他好文 > 详细

scrapy-redis模块源码解析

时间:2018-05-01 20:38:24      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:默认   class   ams   pat   awl   debug   proc   from   default   

/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


scrapy-redis模块源码解析

标签:默认   class   ams   pat   awl   debug   proc   from   default   

原文地址:https://www.cnblogs.com/igzh/p/8976841.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!