pyspider爬虫学习-文档翻译-Command-Line.md
博客专区 > sijinge 的博客 > 博客详情
pyspider爬虫学习-文档翻译-Command-Line.md
sijinge 发表于3个月前
pyspider爬虫学习-文档翻译-Command-Line.md
  • 发表于 3个月前
  • 阅读 62
  • 收藏 0
  • 点赞 0
  • 评论 0
摘要: 首次尝试读取源码的同时翻译文档,大家多多指正,勿喷
Command Line 命令行
============

Global Config 全局配置
-------------
你可以通过“pyspider - help”和“pyspider all - help”获得命令帮助。
You can get command help via `pyspider --help` and `pyspider all --help` for subcommand help.
全局选项适用于所有子命令
global options work for all subcommands.

```
用法
Usage: pyspider [OPTIONS] COMMAND [ARGS]...
  
  一个基于python的强大的爬虫系统
  A powerful spider system in python.
命令选项
Options:
  -c, --config FILENAME 文件名    a json file with default values for subcommands.#一个带有默认值的json文件子命令
                           {“webui”: {“port”:5001}}
  --logging-config TEXT    logging config file for built-in python logging #内置python日志记录的日志配置文件
                           module  [default: pyspider/pyspider/logging.conf] #模块[默认值: pyspider/pyspider/logging.conf]
  --debug                  debug mode #调试模式
  --queue-maxsize INTEGER  maxsize of queue #队列的最大容量值
  --taskdb TEXT            database url for taskdb, default: sqlite  #taskdb的数据库url,默认:sqlite
  --projectdb TEXT         database url for projectdb, default: sqlite #projectdb的数据库url,默认:sqlite
  --resultdb TEXT          database url for resultdb, default: sqlite #resultdb的数据库url,默认:sqlite
  --message-queue TEXT     connection url to message queue, default: builtin #连接消息队列的url,默认:builtin
                           multiprocessing.Queue #多线程.队列
  --amqp-url TEXT          [deprecated] amqp url for rabbitmq. please use
                           --message-queue instead. [废弃]amqp url用于rabbitmq。#请使用——消息队列
  --beanstalk TEXT         [deprecated] beanstalk config for beanstalk queue.#[废弃]豆茎队列的豆茎配置
                           please use --message-queue instead. #请使用——消息队列
  --phantomjs-proxy TEXT   phantomjs proxy ip:port #phantomjs 反射 ip:端口 
  --data-path TEXT         data dir path #数据文件路径
  --version                Show the version and exit.#显示版本并退出
  --help                   Show this message and exit.#显示帮助信息并退出
```

#### --config #配置
配置文件是一个JSON文件,配置值为全局选项或子命令(根据子命令命名的子命令)。(例子)(/部署/ # JSON配置)
Config file is a JSON file with config values for global options or subcommands (a sub-dict named after subcommand). [example](/Deployment/#configjson)

``` json
{
  "taskdb": "mysql+taskdb://username:password@host:port/taskdb",
  "projectdb": "mysql+projectdb://username:password@host:port/projectdb",
  "resultdb": "mysql+resultdb://username:password@host:port/resultdb",
  "message_queue": "amqp://username:password@host:port/%2F",
  "webui": {
    "username": "some_name",
    "password": "some_passwd",
    "need-auth": true
  }
}
```

#### --queue-maxsize  #队列最大值

Queue size limit, 0 for not limit #限制队列大小,0表示不限制

#### --taskdb, --projectdb, --resultdb #任务数据,项目数据,结果数据

```
mysql:
    mysql+type://user:passwd@host:port/database
sqlite:
    # relative path 相对路径
    sqlite+type:///path/to/database.db
    # absolute path 绝对路径
    sqlite+type:////path/to/database.db
    # memory database 内存数据库
    sqlite+type://
mongodb:
    mongodb+type://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
    more: http://docs.mongodb.org/manual/reference/connection-string/
sqlalchemy:
    sqlalchemy+postgresql+type://user:passwd@host:port/database
    sqlalchemy+mysql+mysqlconnector+type://user:passwd@host:port/database
    more: http://docs.sqlalchemy.org/en/rel_0_9/core/engines.html
local:
    local+projectdb://filepath,filepath
类型    
type:
    should be one of `taskdb`, `projectdb`, `resultdb`.可以是`taskdb`, `projectdb`, `resultdb`中的一个
```


#### --message-queue #消息队列

```
rabbitmq:
    amqp://username:password@host:5672/%2F
    see https://www.rabbitmq.com/uri-spec.html
beanstalk:
    beanstalk://host:11300/
redis:
    redis://host:6379/db
    redis://host1:port1,host2:port2,...,hostn:portn (for redis 3.x in cluster mode #在3.x在集群模式下) 
kombu:
    kombu+transport://userid:password@hostname:port/virtual_host
    see http://kombu.readthedocs.org/en/latest/userguide/connections.html#urls
builtin:
    None
```

#### --phantomjs-proxy #phantomjs代理
phantomjs代理地址,您需要一个安装并运行phantomjs代理,命令:[' pyspider phantomjs '](# phantomjs)。
The phantomjs proxy address, you need a phantomjs installed and running phantomjs proxy with command: [`pyspider phantomjs`](#phantomjs).

#### --data-path #数据路径
SQLite 数据库和计数器转储文件存储路径
SQLite database and counter dump files saved path 


all
---

```
用法
Usage: pyspider all [OPTIONS]
  
  Run all the components in subprocess or thread #在子进程或线程中运行所有组件
选项
Options:
  --fetcher-num INTEGER         instance num of fetcher #抓取者的实例数量
  --processor-num INTEGER       instance num of processor #处理器实例数量
  --result-worker-num INTEGER   instance num of result worker #结果工作者实例数量
  --run-in [subprocess|thread]  run each components in thread or subprocess. #在线程或子进程中运行每个组件
                                always using thread for windows.#总是使用线程的窗口
  --help                        Show this message and exit.#显示帮助信息并退出
```


one
---

```
用法
Usage: pyspider one [OPTIONS] [SCRIPTS]...
  #One 模式不仅意味着一体化,它是在一个进程中运行所有的东西在tornado.ioloop,主要是为了调试目的
  One mode not only means all-in-one, it runs every thing in one process
  over tornado.ioloop, for debug purpose
选项
Options:
  -i, --interactive  enable interactive mode, you can choose crawl url.#启用交互模式,你可以选择抓取url。
  --phantomjs        enable phantomjs, will spawn a subprocess for phantomjs #启用phantomjs,将为phantomjs生成一个子流程
  --help             Show this message and exit.#显示帮助信息并退出
```
#注:WebUI不是在one模式下运行
**NOTE: WebUI is not running in one mode.**
#在“one”模式下,结果将被默认写入stdout。你可以通过命令“pyspider one > resultxt”来捕捉它们。
In `one` mode, results will be written to stdout by default. You can capture them via `pyspider one > result.txt`.

#### [SCRIPTS]
#项目的脚本文件路径。项目在运行状态下,`rate` 和 `burst`可以设置获取脚本内容
The script file path of projects. Project status is RUNNING, `rate` and `burst` can be set via script comments:

```
# rate: 1.0
# burst: 3
```
当设置了脚本时,“taskdb”和“resultdb”将在默认情况下使用内存中的sqlite 数据库(可以由全局配置“taskdb”,“- resultdb”来覆盖)。将在on_start回调启动时触发。
When SCRIPTS is set, `taskdb` and `resultdb` will use a in-memory sqlite db by default (can be overridden by global config `--taskdb`, `--resultdb`). on_start callback will be triggered on start.

#### -i, --interactive
#在交互模式下,pyspider将启动一个交互式控制台,询问下一个循环过程中要做什么。在控制台,你可以使用:
With interactive mode, pyspider will start an interactive console asking what to do in next loop of process. In the console, you can use:

``` python
crawl(url, project=None, **kwargs)
    Crawl given url, same parameters as BaseHandler.crawl #抓取给定的url,参数和basehandler.crawl中相同

    url - url or taskid, parameters will be used if in taskdb #url或taskid,参数将在taskdb中使
    project - can be omitted if only one project exists. #如果只存在一个项目可以省略
    
quit_interactive()
    Quit interactive mode #退出交互模式
    
quit_pyspider()
    Close pyspider #关闭pyspider
```
#您可以使用“pyspider.libs.utils.python_console()“在你的脚本中打开一个交互式控制台。
You can use `pyspider.libs.utils.python_console()` to open an interactive console in your script.

bench #基准,基线
-----

```
用法
Usage: pyspider bench [OPTIONS]
  #运行基准测试。在bench模式下,使用内存中的sqlite数据库代替磁盘上的sqlite数据库。
  Run Benchmark test. In bench mode, in-memory sqlite database is used
  instead of on-disk sqlite database.
选项
Options:
  --fetcher-num INTEGER         instance num of fetcher #fetcher实例数量
  --processor-num INTEGER       instance num of processor #processor实例数量
  --result-worker-num INTEGER   instance num of result worker #result worker实例数量
  --run-in [subprocess|thread]  run each components in thread or subprocess.#在线程或子进程中运行每个组件
                                always using thread for windows.#总是使用线程的窗口
  --total INTEGER               total url in test page #测试页面中url总数
  --show INTEGER                show how many urls in a page #显示页面中有多少url
  --help                        Show this message and exit.#显示帮助信息并退出
```


scheduler 调度器
---------

```
用法
Usage: pyspider scheduler [OPTIONS]
  #只允许一个调度器运行
  Run Scheduler, only one scheduler is allowed.
选项
Options:
  --xmlrpc / --no-xmlrpc
  --xmlrpc-host TEXT
  --xmlrpc-port INTEGER
  --inqueue-limit INTEGER  size limit of task queue for each project, tasks
                           will been ignored when overflow #每个项目下任务队列的大小限制,任务数超出时会被忽略
  --delete-time INTEGER    delete time before marked as delete #删除标记为删除的时间
  --active-tasks INTEGER   active log size #活动日志大小
  --loop-limit INTEGER     maximum number of tasks due with in a loop #在循环中完成的最大任务数量
  --scheduler-cls TEXT     scheduler class to be used.#调度器使用的类
  --help                   Show this message and exit.#显示帮助信息并退出
```

#### --scheduler-cls

set this option to use customized Scheduler class #设置此选项可使用定制的调度器类

phantomjs
---------

```
用法
Usage: run.py phantomjs [OPTIONS] [ARGS]...
  如果安装了phantomjs,就可以运行phantomjs抓取
  Run phantomjs fetcher if phantomjs is installed.
选项
Options:
  --phantomjs-path TEXT  phantomjs path #phantomjs 路径
  --port INTEGER         phantomjs port #phantomjs 端口
  --auto-restart TEXT    auto restart phantomjs if crashed #如果phantomjs崩溃自动重启
  --help                 Show this message and exit.#显示帮助信息并退出
```

#### ARGS
#添加args传递到phantomjs命令行
Addition args pass to phantomjs command line.

fetcher 抓取器
-------

```
用法
Usage: pyspider fetcher [OPTIONS]
  #运行抓取器
  Run Fetcher.
选项
Options:
  --xmlrpc / --no-xmlrpc
  --xmlrpc-host TEXT
  --xmlrpc-port INTEGER
  --poolsize INTEGER      max simultaneous fetches #最大同时抓取
  --proxy TEXT            proxy host:port #反射 地址:端口
  --user-agent TEXT       user agent #用户代理
  --timeout TEXT          default fetch timeout #默认抓取超时
  --fetcher-cls TEXT      Fetcher class to be used. #抓取器使用的类
  --help                  Show this message and exit.#显示帮助信息并退出
```

#### --proxy #代理
#可以使用fetcher默认代理替换”self.crawl“中的选项
Default proxy used by fetcher, can been override by `self.crawl` option. [DOC](apis/self.crawl/#fetch)

processor #处理器
---------

```
用法
Usage: pyspider processor [OPTIONS]
  #运行调度器
  Run Processor.
选项
Options:
  --processor-cls TEXT  Processor class to be used.#调度器使用的类
  --help                Show this message and exit.#显示帮助信息并退出
```

result_worker #结果工作者
-------------

```
用法
Usage: pyspider result_worker [OPTIONS]
  运行结果工作者
  Run result worker.
选项
Options:
  --result-cls TEXT  ResultWorker class to be used. #结果工作者使用的类
  --help             Show this message and exit.#显示帮助信息并退出
```


webui 页面
-----

```
用法
Usage: pyspider webui [OPTIONS]
  运行页面
  Run WebUI
选项
Options:
  --host TEXT            webui bind to host #绑定主机地址
  --port INTEGER         webui bind to host #绑定主机端口
  --cdn TEXT             js/css cdn server #js/css cdn 服务器
  --scheduler-rpc TEXT   xmlrpc path of scheduler #调度器的xmlrpc地址
  --fetcher-rpc TEXT     xmlrpc path of fetcher #提取器的xmlrpc地址
  --max-rate FLOAT       max rate for each project #项目最大速率
  --max-burst FLOAT      max burst for each project #项目最大爆发
  --username TEXT        username of lock -ed projects #锁定项目的用户名
  --password TEXT        password of lock -ed projects #锁定项目的密码
  --need-auth            need username and password #必须验证用名密码
  --webui-instance TEXT  webui Flask Application instance to be used.#webui使用的Flask 应用实例
  --help                 Show this message and exit.#显示帮助信息并退出
```

#### --cdn
#JS / CSS libs CDN服务,URL必须兼容[cdnjs](https://cdnjs.com/)
JS/CSS libs CDN service, URL must compatible with [cdnjs](https://cdnjs.com/)

#### --fercher-rpc
#fetcher XMLRPC服务器的XML-RPC路径URI。如果没有设置,请使用Fetcher实例。
XML-RPC path URI for fetcher XMLRPC server. If not set, use a Fetcher instance.

#### --need-auth
#如果可以,所有页面都需要通过指定“--username”和“--password”来获取用户名和密码。
If true, all pages require username and password specified via `--username` and `--password`.
标签: pyspider 命令
共有 人打赏支持
粉丝 0
博文 38
码字总数 36741
×
sijinge
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: