【Python3 爬虫学习笔记】pyspider框架的使用 4

pyspider用法详解

命令行

前面实例通过如下命令启动pyspider:

pyspider all

命令行还有很多可配置参数,完整的命令行结构如下所示:

pyspider [OPTIONS] COMMAND [ARGS]

其中,OPTIONS为可选参数,它可以指定如下参数。

Options:
  -c, --config FILENAME     指定配置文件名称
  --logging-config TEXT     日志配置文件名称,默认:pyspider/pyspider/logging.conf
  --debug                   开启调试模式
  --queue-maxsize INTEGER   队列的最大长度
  --taskdb TEXT             taskdb的数据库默认连接字符串,默认:sqlite
  --projectdb TEXT          projectdb的数据库连接字符串,默认:sqlite
  --resultdb TEXT           resultdb的数据库连接字符串,默认:sqlite
  --message-queue TEXT      消息队列连接字符串,默认:multiprocessing.Queue
  --phantomjs-proxy TEXT    PhantomJS使用的代理,ip:port的形式
  --data-path TEXT          数据库存放的路径
  --version                 pyspider的版本
  --help                    显示帮助信息

例如,-c可以指定配置文件的名称,这时一个常用的配置,配置文件的样例结构如下所示:

{
	"taskdb":"mysql+taskdb://username:[email protected]:port/taskdb",
	"projectdb":"mysql+projectdb:username:[email protected]:port/projectdb",
	"resultdb":"mysql+resultdb:username:[email protected]:port/resultdb",
	"message_queue":"amqp://username:[email protected]:port/%2F",
	"webui":{
		"username":"some_name",
		"password":"some_passwd",
		"need-auth":true
	}
}

如果要配置pyspider WebUI的访问认证,可以新建一个pyspider.json,内容如下所示:

{
	"webui":{
		"username":"root",
		"password":"12345",
		"need-auth":true
	}
}

这样我们通过在启动时指定配置文件来配置pyspider WebUI的访问认证,用户名为root,密码为123456,命令如下所示:

pyspider -c pyspider.json all

运行之后打开http://localhost:5000/, 页面如下:
【Python3 爬虫学习笔记】pyspider框架的使用 4
也可以单独运行pyspider的某一个组件。
运行Scheduler的命令如下所示:

pyspider scheduler [OPTIONS]

运行时也可以指定各种配置,参数如下所示:

Options:
	--xmlrpc / --no-xmlrpc
	--xmlrpc-host TEXT
	--xmlrpc-port INTEGER
	--inqueue-limit INTEGER   任务队列的最大长度,如果满了则新的任务会被忽略
	--delete-time INTEGER     设置为delete标记之前的删除时间
	--active-tasks INTEGER    当前活跃任务数量配置
	--loop-limit INTEGER      单轮最多调度的任务数量
	--scheduler-cls TEXT      Scheduler使用的类
	--help                    显示帮助信息

运行Fetcher的命令如下所示:

pyspider fetcher[OPTIONS]

参数配置如下所示:

Options:
  --xmlrpc / --no-xmlrpc
  --xmlrpc-host TEXT
  --xmlrpc-port INTEGER
  --poolsize INTEGER       同时请求的个数
  --proxy TEXT             使用的代理
  --user-agent TEXT        使用的User-Agent
  --timeout TEXT           超时时间
  --fetcher-cls TEXT       Fetcher使用的类
  --help                   显示帮助信息

运行Processer的命令如下所示:

pyspider processor [OPTIONS]

参数配置如下所示:

Options:
  --processor-cls TEXT  Processor使用的类
  --help                显示帮助信息

运行WebUI的命令如下:

pyspider webui [OPTIONS]

参数配置如下所示:

Options:
  --host TEXT                 运行地址
  --port INTEGER              运行端口
  --cdn TEXT                  JS和CSS的CDN服务器
  --Scheduler-rpc TEXT        Scheduler的xmlrpc
  --fetcher-rpc TEXT          Fetcher的xmlrpc
  --max-rate FLOAT            每个项目最大的rate值
  --max-burst FLOAT           每个项目最大的brust
  --username TEXT             Auth验证的用户名
  --password TEXT             Auth验证的密码
  --need-auth                 是否需要验证
  --webui-instance TEXT       运行时使用的Flask应用
  --help                      显示帮助信息

这里的配置和前面提到的配置文件参数是相同的。如果想要改变WebUI的端口为5001,单独运行如下命令:

pyspider webui --port 5001

或者可以将端口配置到JSON文件中,配置如下所示:

{
	"webui":{
		"port":5001
	}
}

使用如下命令启动同样可以达到相同的效果:

pyspider -c pyspider.json webui

这样就可以在5001端口上运行WebUI了。