Scrapy_Redis Settings.py设置文件

项目名称

BOT_NAME = 'downloadmiddlerware'

爬虫存储的文件路径

SPIDER_MODULES = ['downloadmiddlerware.spiders']

创建爬虫文件的模版,创建号的爬虫文件会存放在这个目录下

NEWSPIDER_MODULE = 'downloadmiddlerware.spiders'

设置ua,来模拟浏览器请求

#USER_AGENT = 'downloadmiddlerware (+http://www.yourdomain.com)'

设置是否需要准守robot协议:默认为True

ROBOTSTXT_OBEY = False

设置请求的最大并发数据(下载器) 默认是16

#CONCURRENT_REQUESTS = 32

设置请求的下载延时,默认为0

#DOWNLOAD_DELAY = 3

设置网站的最大并发请求数量,默认是8

#CONCURRENT_REQUESTS_PER_DOMAIN = 16

设置某个ip的最大并发请求数量,默认是0

如果非0

1.CONCURRENT_REQUESTS_PER_DOMAIN不生效,
这时候请求的并发数量将针对于ip,而不是网站了

2.设置的DOWNLOAD_DELAY就是正对于ip而不是网站了
CONCURRENT_REQUESTS_PER_IP = 16

是否携带cookies:默认为True

COOKIES_ENABLED = False

COOKIES_DEBUG:跟踪cookies,默认情况下为False

COOKIES_DEBUG =True

关于日志信息的设置

LOG_FILE = 'xxx.log'
LOG_LEVEL = 'INFO/DEBUG/....'

是一个终端的扩展插件

#TELNETCONSOLE_ENABLED = False

设置默认的请求头(cookies信息不要放在这里)

DEFAULT_REQUEST_HEADERS = {
  # 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  # 'Accept-Language': 'en',
    'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Mobile Safari/537.36',

}

设置和激活爬虫中间件

#SPIDER_MIDDLEWARES = {
#    'downloadmiddlerware.middlewares.DownloadmiddlerwareSpiderMiddleware': 543,
#}

设置和激活下载中间件(后面的数字表示优先级)

DOWNLOADER_MIDDLEWARES = {
   # 'downloadmiddlerware.middlewares.DownloadmiddlerwareDownloaderMiddleware': 543,
   #  'downloadmiddlerware.middlewares.UserAgentDownloadMiddlerware':543,
    'downloadmiddlerware.middlewares.SeleniumDownloadMiddlerWare':543,
}

设置扩展

#EXTENSIONS = {
#    'scrapy.extensions.telnet.TelnetConsole': None,
#}

设置和激活管道文件(后面的数字表示优先级)

#ITEM_PIPELINES = {
#    'downloadmiddlerware.pipelines.DownloadmiddlerwarePipeline': 300,
#}

自动限速的扩展(实现上一个请求和下一个请求之间的时间是不固定的)

默认请情框下自动限速的扩展是关闭的:AUTOTHROTTLE_ENABLED:False

# AUTOTHROTTLE_ENABLED = True

初始的下载吧延时默认是5秒

# AUTOTHROTTLE_START_DELAY = 5

最大下载延时

# AUTOTHROTTLE_MAX_DELAY = 60

针对于网站的最大的并行请求数量

# AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0

调试模式:默认为False,未开启

# AUTOTHROTTLE_DEBUG = False

设置数据的缓存,默认情况下是未开启的

HTTPCACHE_ENABLED = True

设置缓存的超时时间,默认为0表示永久有效

HTTPCACHE_EXPIRATION_SECS = 0

设置缓存的存储文件路径

HTTPCACHE_DIR = 'httpcache'

忽略某些状态码的请求结果(Response)

HTTPCACHE_IGNORE_HTTP_CODES = []

开始缓存的扩展插件

HTTPCACHE_STORAGE = 'scrapy.extensions.httpcache.FilesystemCacheStorage'

USERAGENT = [
    'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0',
    'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko)     Chrome/14.0.835.163 Safari/535.1',
    'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1     Safari/534.50',
]

代理

PROXIES = [
{'ip':'127.0.0.1:6379','pwd':'zyx:123456'},
{'ip':'127.0.0.1:6379','pwd':None},
{'ip':'127.0.0.1:6379','pwd':None},
{'ip':'127.0.0.1:6379','pwd':None},
{'ip':'127.0.0.1:6379','pwd':None},
]

cookies池

COOKIES = [
{'cookie1':'xxxxxx'},
{'cookie1':'xxxxxx'},
{'cookie1':'xxxxxx'},
{'cookie1':'xxxxxx'},
]

设置去重组件,使用的是scrapy_redis的去重组件,而不再使用scrapy框架自己的去重组件了

DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"

设置调度器,使用的是scrapy_redis重写的调度器,而不再使用scrapy框架自带的调度器了

SCHEDULER = "scrapy_redis.scheduler.Scheduler"

可以实现断点爬取(请求的记录不会丢失,会存储在redis数据库中,不会清除redis的任务队列)

SCHEDULER_PERSIST = True

设置任务队列的模式

SpiderPriorityQueue是scrapy_redis默认使用的队列模式(有自己的优先级)

SCHEDULER_QUEUE_CLASS = "scrapy_redis.queue.SpiderPriorityQueue"

使用了队列的形式,任务先进先出

#SCHEDULER_QUEUE_CLASS = "scrapy_redis.queue.SpiderQueue"

采用了栈的形式,任务先进后出

#SCHEDULER_QUEUE_CLASS = "scrapy_redis.queue.SpiderStack"

ITEM_PIPELINES = {
    'example.pipelines.ExamplePipeline': 300,
    # 实现这个管道,可以将爬虫端获取的item数据,统一保存在redis数据库中
    'scrapy_redis.pipelines.RedisPipeline': 400,
}

指定要存储的redis数据库的主机ip

REDIS_HOST = '127.0.0.1'

指定redis数据库主机的端口

REDIS_PORT = 6379

仅为个人学习小结,若有错处,欢迎指正~

你可能感兴趣的:(Scrapy_Redis Settings.py设置文件)