主页 > 编程资料 > Python >
发布时间:2018-09-27 作者:apizl 阅读:527次

Settings


Scrapy设定(settings)提供了定制Scrapy组件的方法。您可以控制包括核心(core),插件(extension),pipeline及spider组件。


设定为代码提供了提取以key-value映射的配置值的的全局命名空间(namespace)。 设定可以通过下面介绍的多种机制进行设置。


设定(settings)同时也是选择当前激活的Scrapy项目的方法(如果您有多个的话)。


获取设定值(Populating the settings)


设定可以通过多种方式设置,每个方式具有不同的优先级。 下面以优先级降序的方式给出方式列表:


命令行选项(Command line Options)(最高优先级)

  • 每个spider的设定

  • 项目设定模块(Project settings module)

  • 命令默认设定模块(Default settings per-command)

  • 全局默认设定(Default global settings) (最低优先级)


常用示例

命令行选项(Command line options)

命令行传入的参数具有最高的优先级。 

您可以使用command line 选项 -s (或 --set) 来覆盖一个(或更多)选项。

日志记录样例:

scrapy crawl myspider -s LOG_FILE=scrapy.log


数据输出:


scrapy crawl myspider -o result.json



内置设置常用键值:


BOT_NAME

默认: 'scrapybot'


Scrapy项目实现的bot的名字(也未项目名称)。 这将用来构造默认 User-Agent,同时也用来log。


当您使用 startproject 命令创建项目时其也被自动赋值。


Scrapy 爬虫入门 内建设置参考


LOG_LEVEL

默认: 'DEBUG'


log的最低级别。可选的级别有: CRITICAL、 ERROR、WARNING、INFO、DEBUG。参考Python logging使用; 调试使用Debug,上线后使用INFO.



ROBOTSTXT_OBEY

默认: False


如果启用,Scrapy将会尊重 robots.txt策略. 可以先确定目标站点是否有robots文件(有的站点真的没有这玩意==!), 不启用的话Scrapy启动速度会快一些.



DOWNLOAD_DELAY

默认: 0


下载器在下载同一个网站下一个页面前需要等待的时间。该选项可以用来限制爬取速度, 减轻服务器压力。同时也支持小数, 最好修改下设置一个3到5秒的值, 速度太快可能会被目标站点拉黑的.



 

DOWNLOAD_TIMEOUT

默认: 180  (秒)



ITEM_PIPELINES

默认: {}

保存项目中启用的pipeline及其顺序的字典。该字典默认为空,值(value)任意。 不过值(value)习惯设定在0-1000范围内。

使用自定义PIPELINES对Item处理需要在这里面启用才会生效.

样例:


ITEM_PIPELINES = {
    'mybot.pipelines.validate.ValidateMyItem': 300,
    'mybot.pipelines.validate.StoreMyItem': 800,
}



USER_AGENT

默认: "Scrapy/VERSION (+http://scrapy.org)"

爬取的默认User-Agent,除非被覆盖,在发起请求(Request)时可以通过headers参数指定来覆盖该值:

scrapy.Request(url=地址,headers={"User-Agent": 指定UA将覆盖设置中设定的UA})

配合Faker使用效果更佳.


关键字词: