settings文件时存放配置文件的,初始化的setings文件中,只有四个变量时默认定义好的,其他都是注释掉的。
① BOT_NAME
爬虫项目的名字,访问网站时,user-agent默认携带这个名字
② SPIDER_MODULES
以及NEWSPIDER_MODULE
是爬虫文件的路径
③ ROBOTSTXT_OBEY
是否遵循网站的爬取协议,当设置为 Fasle 时,就代表不遵守网站的协议,就是说协议中说明不能爬取的信息也要爬
④ CONCURRENT_REQUESTS
并发请求数,如果对方没有做反爬虫机制,就可以开很大的并发,这样就可以一下子返回很多的数据
⑤ DOWNLOAD_DELAY
下载延迟秒数(下载速度),限制频繁访问,防止被封号,不给别人的网站造成太大的压力
⑥ CONCURRENT_REQUESTS_PER_DOMAIN
domain是域名的意思,针对每个域名限制 n 个并发,最大为 16
⑦ CONCURRENT_REQUESTS_PER_IP
单IP访问的并发数,如果有值则忽略,对域名并发树的限制,并且下载速度也应用在每个IP,因为一个域名可以有很多个IP,公司可以有很多个服务器,对外部来说只有一个域名
⑧ COOKIES_ENABLED
返回的 response 是否解析 cookies
⑨ COOKIES_DUBUG
是否为调试模式,如果为 True ,打印的时候 cookie 就会出现,当然是否携 带cookie 还是 COOKIES_ENABLED 决定的
⑩ TELNETCONSOLE_ENABLED
通过Telnet 可以监听当前爬虫的状态、信息、操作爬虫等,使用方法是:打开cmd,使用 telent 127.0.0.1 6023 以及est() ,即可进入操作界面
DEFAULT_REQUEST_HEADERS
默认的请求头,每个请求都可以携带,如果针对每个请求头设置,也可以在此界面进行设置
SPIDER_MIDDLEWARES
爬虫中间件,自定义使用
DOWNLOADER_MIDDLEWARES
下载中间件,自定义使用
DOWNLOADER_MIDDLEWARES
自定义其他的拓展
ITEM_PIPELINES
自定义PIPELINES处理请求,主要为了存储数据使用,每行后面的整型值,确定了他们运行的顺序,item按数字从低到高的顺序,通过pipeline,通常将这些数字定义在0-1000范围内。
下面这些用作智能限速请求
以AUTOTHROTTLE_DEBUG=True
开始,=False
结尾,中间的参数: 比如AUTOTHROTTLE_START_DELAY
为第一个请求延迟多少秒,AUTOTHROTTLE_MAX_DELAY
为最大的延迟。
可以自己增加的参数
DEPTH_LIMIT
爬虫允许的最大深度,可以通过 meta 查看当前深度,0 表示无深度,可以自定义,比如下面,当有很多页,只允许访问一页。
DEPTH_PRIORITY
爬取时,=0
表示深度优先(默认),一直找到底,=1
表示广度优先,是一层一层的找
自定义去重url的类
比如自定义的去重类名为duplication.RepeatFilter
,需要三个步骤:
- 需要在settings.py中激活,并写上自定义的类名
duplication.py
中的程序如下
其他自定义类是类似的操作步骤