scrapy常用配置
一.基本配置
1.项目名称
2.爬虫应用路径
SPIDER_MODULES = ['Amazon.spiders']
NEWSPIDER_MODULE = 'Amazon.spiders'
3.客户端User-Agent请求头
USER_AGENT = 'Amazon (+http://www.yourdomain.com)'
4.是否遵循爬虫协议
ROBOTSTXT_OBEY = False
5.是否支持cookie,cookiejar进行操作cookie
COOKIES_ENABLED = True
6.Telnet用于查看当前爬虫的
TELNETCONSOLE_ENABLED = False
TELNETCONSOLE_HOST = '127.0.0.1'
TELNETCONSOLE_PORT = [6023,]
7.全局设置使用的请求头
DEFAULT_REQUEST_HEADERS = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'en',
}
8.局部设置使用的请求头
#爬虫程序类中设置
custom_settings = {
'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 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36'
}
}
二.并发和延迟
1.下载器总共最大处理的并发请求数
CONCURRENT_REQUESTS = 32默认值16
2.每个域名能够被执行的最大并发请求数目
CONCURRENT_REQUESTS_PER_DOMAIN = 16默认值8
3.能够被单个IP处理的并发请求数
默认值0,代表无限制,需要注意两点
- 如果不为零,那CONCURRENT_REQUESTS_PER_DOMAIN将被忽略,即并发数的限制是按照每个IP来计算,而不是每个域名
- 该设置也影响DOWNLOAD_DELAY,如果该值不为零,那么DOWNLOAD_DELAY下载延迟是限制每个IP而不是每个域
CONCURRENT_REQUESTS_PER_IP = 16
4.如果没有开启智能限速
这个值就代表一个规定死的值,代表对同一网址延迟请求的秒数
DOWNLOAD_DELAY = 3
5.延迟
开启True,默认False
AUTOTHROTTLE_ENABLED = True
起始的延迟
AUTOTHROTTLE_START_DELAY = 5
最小延迟
DOWNLOAD_DELAY = 3
最大延迟
AUTOTHROTTLE_MAX_DELAY = 10
每秒并发请求数的平均值
AUTOTHROTTLE_TARGET_CONCURRENCY = 16.0不能高于 CONCURRENT_REQUESTS_PER_DOMAIN或CONCURRENT_REQUESTS_PER_IP
6.调试
AUTOTHROTTLE_DEBUG = True
CONCURRENT_REQUESTS_PER_DOMAIN = 16
CONCURRENT_REQUESTS_PER_IP = 16