Settings

爬虫相关配置项可以通过如下几种方式设定:

  • 命令行 - 直接在命令行中设定的配置项。
  • 命令行配置文件 - 在命令行中通过参数 -c, --config 指定的配置文件中的配置项。
  • 工程配置文件 - 在工程的配置文件 config.py 中设定的配置项。
  • 默认配置 - 默认的配置项。

配置的优先级为: 命令行 > 命令行配置文件 > 工程配置文件 > 默认配置 ,对于同一配置项,高优先级的配置会覆盖低优先级的配置。 在 make_requestsrun_spider 等函数中传递的关键字参数的优先级视为和命令行参数一致。

接下来我们会按类别依次给出爬虫相关的各个配置项。

Running

daemon

  • -d, --daemon
  • Default: False

是否在后台运行。

pid_file

  • --pid-file
  • Default: None

保存爬虫进程PID的文件。

Logging

log_level

  • -l, --log-level
  • Default: info

日志级别。

log_file

  • --log-file
  • Default: None

日志写入的文件。

Downloading

downloader_clients

  • Default: 100

下载时的并发量。

renderer_cores

  • Default: downloader_clients

渲染进程的并发量。

chrome_renderer_options

  • Type: dict

Chrome渲染器的配置,以 'NAME': {'arguments': [], 'experimental_options': {}} 的方式进行配置,其中 NAME 表示渲染器类别的名称。

default_headers

  • Default: None
  • Type: dict

默认添加的HTTP请求的header。

user_agent

  • Default: :desktop

指定HTTP请求头的User-Agent字段。

: 开头表示命令模式,命令分为终端类型和浏览器类型, 终端类型包括 desktopmobile,浏览器类型包括 chrome 。 多个命令之间用逗号 , 隔开,如 :mobile,chrome 表示移动端的Chrome浏览器。

其他字符串则直接视为User-Agent。

Note

只有当 default_headers 中没有设置 User-Agent 时, user_agent 配置才会生效。

random_user_agent

  • Default: False

随机设定HTTP请求头的User-Agent字段。

user_agent 为命令模式时,随机生成符合其约束的User-Agent;当 user_agent 为普通字符串时,则会覆盖其设置。

proxy

  • Default: None

设置HTTP请求的代理,可以为单个代理,也可以为多个代理的list。

Retry

retry_enabled

  • Default: True

是否重试失败的HTTP请求。

max_retry_times

  • Default: 3

最大重试次数。

retry_http_status

  • Default: None
  • Type: list , tuple

进行重试的HTTP状态码。

可以用 x 表示通配,例如 20x 表示 200202 等所有 20 开头的状态码, 4xx 表示所有 4 开头的状态码。

前面加 ! 表示取反,例如 !2xx 表示所有不是以 2 开头的状态码。

Spider Behaviour

speed_limit

  • Type: dict

rate 表示下载速率,单位:请求/秒, burst 表示下载时最大并发量。

max_depth

  • Default: None
  • Type: int

爬虫的爬取的最大深度, None 表示没有限制。

Components

spider

  • Default: None

使用的爬虫类或爬虫类路径。

extensions

  • Default: None

使用的拓展。