Scrapy命令详解

  • 1 创建项目命令
# 可以在创建的时候指定项目所在的目录,myproject是项目名
scrapy startproject myproject [project_dir]

这将在project_dir目录下创建一个Scrapy项目。如果project_dir没有指定,project_dir将与myproject相同。

  • 创建爬虫命令
# 先切换目录
cd project_dir
# 执行创建,myspider是爬虫的名字, mydomain.com是指定此爬虫需要爬取的网站的domain
scrapy genspider myspider mydomain.com

帮助命令

我们可以在任何目录下通过运行以下命令获取有关每个命令的更多信息:

scrapy <command> -h

示例1:

D:\>scrapy startproject -h
Usage
=====
  scrapy startproject <project_name> [project_dir]

Create new project

Options
=======
--help, -h              show this help message and exit

Global Options
--------------
--logfile=FILE          log file. if omitted stderr will be used
--loglevel=LEVEL, -L LEVEL
                        log level (default: DEBUG)
--nolog                 disable logging completely
--profile=FILE          write python cProfile stats to FILE
--pidfile=FILE          write process ID to FILE
--set=NAME=VALUE, -s NAME=VALUE
                        set/override setting (may be repeated)
--pdb                   enable pdb on failure

示例2:

 1 D:\>scrapy genspider -h
 2 Usage
 3 =====
 4   scrapy genspider [options] <name> <domain>
 5 
 6 Generate new spider using pre-defined templates
 7 
 8 Options
 9 =======
10 --help, -h              show this help message and exit
11 --list, -l              List available templates
12 --edit, -e              Edit spider after creating it
13 --dump=TEMPLATE, -d TEMPLATE
14                         Dump template to standard output
15 --template=TEMPLATE, -t TEMPLATE
16                         Uses a custom template.
17 --force                 If the spider already exists, overwrite it with the
18                         template
19 
20 Global Options
21 --------------
22 --logfile=FILE          log file. if omitted stderr will be used
23 --loglevel=LEVEL, -L LEVEL
24                         log level (default: DEBUG)
25 --nolog                 disable logging completely
26 --profile=FILE          write python cProfile stats to FILE
27 --pidfile=FILE          write process ID to FILE
28 --set=NAME=VALUE, -s NAME=VALUE
29                         set/override setting (may be repeated)
30 --pdb                   enable pdb on failure

查看所有可用的命令:

scrapy -h

示例:

 

 1 D:\>scrapy -h
 2 Scrapy 1.8.0 - no active project
 3 
 4 Usage:
 5   scrapy <command> [options] [args]
 6 
 7 Available commands:
 8   bench         Run quick benchmark test
 9   fetch         Fetch a URL using the Scrapy downloader
10   genspider     Generate new spider using pre-defined templates
11   runspider     Run a self-contained spider (without creating a project)
12   settings      Get settings values
13   shell         Interactive scraping console
14   startproject  Create new project
15   version       Print Scrapy version
16   view          Open URL in browser, as seen by Scrapy
17 
18   [ more ]      More commands available when run from project directory
19 
20 Use "scrapy <command> -h" to see more info about a command

全局命令

有两种命令,一种只能在Scrapy项目内部工作(特定于项目的命令)和那些在没有活动的Scrapy项目(全局命令)的情况下工作的命令,从项目内部运行时它们可能表现略有不同(因为他们会使用项目覆盖设置)。

startproject

genspider

# 创建爬虫,可指定模板
scrapy genspider [-t template] <name> <domain>
# 列出创建spider所有可用模板 :
scrapy genspider -l
# 指定模板生成spider ,不指定默认为basic模板,这里指定crawl模板
scrapy genspider -t crawl zhihu www.zhihu.com 
scrapy genspider -d 模板名:可以查看到模板的内容

settings

获取配置文件信息

runspider

在Python文件中运行自包含的蜘蛛,而无需创建项目。

shell

获取数据后进入交互模式,可以使用程序中的方法进行操作。交互模式主要用于调试

# 进入shell
scrapy shell
# 向一个网页发送请求,得到一个response对象
fetch('http://www.baidu.com')
# 在浏览器中查看响应结果
view(response)
# 得到响应的文本信息
response.text
# response是一个Htmlresponse对象,可以使用xpath,css的方法解析网页

 

fetch

类似于requests的url请求。可以添加参数[–nolog]不显示响应头;[–headers];显示响应头;[–no重定向]禁止重定向

 scrapy fetch <url>

view

会把请求的数据保存成一个文件并在浏览器中打开。

version

输出版本

仅限项目的命令

crawl
运行爬虫,后面的参数是spider的名称

scrapy crawl myspider 

check
检查语法是否有错误

scrapy check

list
可以列出当前项目中可使用的爬虫文件

scrapy list

edit
可以对指定的某个文件进行编辑

parse
对指定的url网址进行分析和处理,

bench
可以测试本地硬件的性能,当运行scrapy bench时,会创建一个本地服务器并会以最大的速度进行爬行,就为了测试本地硬件的性能。可以检测到每分钟能爬多少网页,当我们实际运行项目时,可以参照这个数据进行比较,从而对爬虫项目继续改进和修改。

posted @ 2020-01-16 10:39  cknds  阅读(386)  评论(0编辑  收藏  举报