項目名稱
BOT_NAME = 'downloadmiddlerware'
爬蟲存儲的文件路徑
SPIDER_MODULES = ['downloadmiddlerware.spiders']
創(chuàng)建爬蟲文件的模版,創(chuàng)建號的爬蟲文件會存放在這個目錄下
NEWSPIDER_MODULE = 'downloadmiddlerware.spiders'
設(shè)置ua,來模擬瀏覽器請求
#USER_AGENT = 'downloadmiddlerware (+http://www.yourdomain.com)'
設(shè)置是否需要準守robot協(xié)議:默認為True
ROBOTSTXT_OBEY = False
設(shè)置請求的最大并發(fā)數(shù)據(jù)(下載器) 默認是16
#CONCURRENT_REQUESTS = 32
設(shè)置請求的下載延時,默認為0
#DOWNLOAD_DELAY = 3
設(shè)置網(wǎng)站的最大并發(fā)請求數(shù)量,默認是8
#CONCURRENT_REQUESTS_PER_DOMAIN = 16
設(shè)置某個ip的最大并發(fā)請求數(shù)量,默認是0
如果非0
1.CONCURRENT_REQUESTS_PER_DOMAIN不生效,
這時候請求的并發(fā)數(shù)量將針對于ip,而不是網(wǎng)站了
2.設(shè)置的DOWNLOAD_DELAY就是正對于ip而不是網(wǎng)站了
CONCURRENT_REQUESTS_PER_IP = 16
是否攜帶cookies:默認為True
COOKIES_ENABLED = False
COOKIES_DEBUG:跟蹤cookies,默認情況下為False
COOKIES_DEBUG =True
關(guān)于日志信息的設(shè)置
LOG_FILE = 'xxx.log'
LOG_LEVEL = 'INFO/DEBUG/....'
是一個終端的擴展插件
#TELNETCONSOLE_ENABLED = False
設(shè)置默認的請求頭(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',
}
設(shè)置和激活爬蟲中間件
#SPIDER_MIDDLEWARES = {
# 'downloadmiddlerware.middlewares.DownloadmiddlerwareSpiderMiddleware': 543,
#}
設(shè)置和激活下載中間件(后面的數(shù)字表示優(yōu)先級)
DOWNLOADER_MIDDLEWARES = {
# 'downloadmiddlerware.middlewares.DownloadmiddlerwareDownloaderMiddleware': 543,
# 'downloadmiddlerware.middlewares.UserAgentDownloadMiddlerware':543,
'downloadmiddlerware.middlewares.SeleniumDownloadMiddlerWare':543,
}
設(shè)置擴展
#EXTENSIONS = {
# 'scrapy.extensions.telnet.TelnetConsole': None,
#}
設(shè)置和激活管道文件(后面的數(shù)字表示優(yōu)先級)
#ITEM_PIPELINES = {
# 'downloadmiddlerware.pipelines.DownloadmiddlerwarePipeline': 300,
#}
自動限速的擴展(實現(xiàn)上一個請求和下一個請求之間的時間是不固定的)
默認請情框下自動限速的擴展是關(guān)閉的:AUTOTHROTTLE_ENABLED:False
# AUTOTHROTTLE_ENABLED = True
初始的下載吧延時默認是5秒
# AUTOTHROTTLE_START_DELAY = 5
最大下載延時
# AUTOTHROTTLE_MAX_DELAY = 60
針對于網(wǎng)站的最大的并行請求數(shù)量
# AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0
調(diào)試模式:默認為False,未開啟
# AUTOTHROTTLE_DEBUG = False
設(shè)置數(shù)據(jù)的緩存,默認情況下是未開啟的
HTTPCACHE_ENABLED = True
設(shè)置緩存的超時時間,默認為0表示永久有效
HTTPCACHE_EXPIRATION_SECS = 0
設(shè)置緩存的存儲文件路徑
HTTPCACHE_DIR = 'httpcache'
忽略某些狀態(tài)碼的請求結(jié)果(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'},
]
設(shè)置去重組件,使用的是scrapy_redis的去重組件,而不再使用scrapy框架自己的去重組件了
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
設(shè)置調(diào)度器,使用的是scrapy_redis重寫的調(diào)度器,而不再使用scrapy框架自帶的調(diào)度器了
SCHEDULER = "scrapy_redis.scheduler.Scheduler"
可以實現(xiàn)斷點爬染翰(請求的記錄不會丟失,會存儲在redis數(shù)據(jù)庫中,不會清除redis的任務(wù)隊列)
SCHEDULER_PERSIST = True
設(shè)置任務(wù)隊列的模式
SpiderPriorityQueue是scrapy_redis默認使用的隊列模式(有自己的優(yōu)先級)
SCHEDULER_QUEUE_CLASS = "scrapy_redis.queue.SpiderPriorityQueue"
使用了隊列的形式,任務(wù)先進先出
#SCHEDULER_QUEUE_CLASS = "scrapy_redis.queue.SpiderQueue"
采用了棧的形式,任務(wù)先進后出
#SCHEDULER_QUEUE_CLASS = "scrapy_redis.queue.SpiderStack"
ITEM_PIPELINES = {
'example.pipelines.ExamplePipeline': 300,
# 實現(xiàn)這個管道,可以將爬蟲端獲取的item數(shù)據(jù),統(tǒng)一保存在redis數(shù)據(jù)庫中
'scrapy_redis.pipelines.RedisPipeline': 400,
}
指定要存儲的redis數(shù)據(jù)庫的主機ip
REDIS_HOST = '127.0.0.1'
指定redis數(shù)據(jù)庫主機的端口
REDIS_PORT = 6379
僅為個人學習小結(jié)灿巧,若有錯處,歡迎指正~