【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/, 页面如下:
也可以单独运行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了。