了解setting.py
参考文档http://scrapy-chs.readthedocs.io/zh_CN/1.0/topics/settings.html#topics-settings-ref
AUTOTHROTTLE_START_DELAY = 3
开始下载时限速并延迟时间
AUTOTHROTTLE_MAX_DELAY = 60
高并发请求时最大延迟时间
AWS_ACCESS_KEY_ID
用于访问亚马逊网络服务。
默认值:无
AWS_ACCESS_KEY_ID
它是用于访问亚马逊网络服务。
BOT_NAME
可以用于构建用户代理机器人的名称。
默认值:“scrapybot”
eg:BOT_NAME=“scrapybot”
CONCURRENT_ITEMS
用来并行地处理所述物品处理器的现有项目的最大数目。
默认 Item 并发数:100
CONCURRENT_REQUESTS
其中Scrapy下载执行现有的最大请求数。
默认值:16
并发是指scrapy同时处理的request的数量,默认的全局并发限制为16,可增加这个值,增加多少取决于爬虫占CPU多少,设置前最好测试一下,一般占在80-90%为好
CONCURRENT_REQUESTS_PER_DOMAIN
现有的最大请求数,对于任何单域同时进行。
默认值:8
CONCURRENT_REQUESTS_PER_IP
现有的请求的最大数量的同时执行任何单一的IP。
默认值:0(0表示忽略)
COOKIES_ENABLED = False
禁止cookies,有些站点会从cookies中判断是否为爬虫
DEFAULT_ITEM_CLASS
它是用来表示商品一类。
默认值:“scrapy.item.Item”
DEFAULT_REQUEST_HEADERS
它是用于Scrapy的HTTP请求的默认标题。
默认值:
{
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'en',
}
DEPTH_LIMIT
因为蜘蛛的最大深度抓取任何网站。
默认值:0
爬取网站最大允许的深度(depth)值。如果为0,则没有限制
DEPTH_PRIORITY
整数值。用于根据深度调整request优先级。如果为0,则不根据深度进行优先级调整。
默认值:0
DEPTH_STATS
它指出是否收集详细的统计资料与否。
默认值:True
DEPTH_STATS_VERBOSE
当启用此设置,请求数统计中的每个详细深入的收集。
默认值:False
DNSCACHE_ENABLED
用来启用内存缓存DNS。
默认值:True
DNSCACHE_SIZE
定义了在内存中缓存DNS的大小。
默认值:10000
DNS_TIMEOUT
用来设置超时DNS处理的查询。
默认值:60
DOWNLOADER
用来抓取过程中下载。
默认值:“scrapy.core.downloader.Downloader”
DOWNLOADER_MIDDLEWARES
辞典保持下载中间件和他们的订单。
默认值: {}
DOWNLOADER_MIDDLEWARES_BASE
默认启用的一个辞典保持下载中间件。
修改setting.py
根据爬取YouTube的需要修改了所需的参数:
BOT_NAME = 'youtube'
LOG_LEVEL= 'INFO'
SPIDER_MODULES = ['youtube.spiders']
NEWSPIDER_MODULE = 'youtube.spiders'
ITEM_PIPELINES = {
'youtube.pipelines.YoutubeSavePipeline':300,
}
ROBOTSTXT_OBEY = False
COOKIES_ENABLED = True
COOKIES_DEBUG = True
# mysql连接配置
MYSQL_HOST = 'localhost'
MYSQL_DBNAME = 'youtube'
MYSQL_USER = 'root'
MYSQL_PASSWD ='********'
MYSQL_PORT = 3306
#输出的编码格式为uft-8
FEED_EXPORT_ENCODING = 'utf-8'
DEFAULT_REQUEST_HEADERS = {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"Accept-Language": "zh-CN,zh;q=0.9",
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",
"Upgrade-Insecure-Requests": "1",
"Accept-Encoding": "gzip, deflate"
}