scrapy startproject 项目名
例子以下:css
localhost:spider zhaofan$ scrapy startproject test1 New Scrapy project 'test1', using template directory '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/scrapy/templates/project', created in: /Users/zhaofan/Documents/python_project/spider/test1 You can start your first spider with: cd test1 scrapy genspider example example.com localhost:spider zhaofan$
这个时候爬虫的目录结构就已经建立完成了,目录结构以下:python
|____scrapy.cfg |____test1 | |______init__.py | |____items.py | |____middlewares.py | |____pipelines.py | |____settings.py | |____spiders | | |______init__.py
接着咱们按照提示能够生成一个spider,这里以百度做为例子,生成spider的命令格式为;
scrapy genspider 爬虫名字 爬虫的网址ajax
localhost:test1 zhaofan$ scrapy genspider baiduSpider baidu.com Created spider 'baiduSpider' using template 'basic' in module: test1.spiders.baiduSpider localhost:test1 zhaofan$
命令的使用范围shell
这里的命令分为全局的命令和项目的命令,全局的命令表示能够在任何地方使用,而项目的命令只能在项目目录下使用数据库
全局的命令有:
startproject
genspider
settings
runspider
shell
fetch
view
version浏览器
项目命令有:
crawl
check
list
edit
parse
benchscrapy
startproject
这个命令没什么过多的用法,就是在建立爬虫项目的时候用ide
genspider
用于生成爬虫,这里scrapy提供给咱们不一样的几种模板生成spider,默认用的是basic,咱们能够经过命令查看全部的模板fetch
localhost:test1 zhaofan$ scrapy genspider -l Available templates: basic crawl csvfeed xmlfeed localhost:test1 zhaofan$
当咱们建立的时候能够指定模板,不指定默认用的basic,若是想要指定模板则经过
scrapy genspider -t 模板名字网站
localhost:test1 zhaofan$ scrapy genspider -t crawl zhihuspider zhihu.com Created spider 'zhihuspider' using template 'crawl' in module: test1.spiders.zhihuspider localhost:test1 zhaofan$
crawl
这个是用去启动spider爬虫格式为:
scrapy crawl 爬虫名字
这里须要注意这里的爬虫名字和经过scrapy genspider 生成爬虫的名字是一致的
check
用于检查代码是否有错误,scrapy check
list
scrapy list列出全部可用的爬虫
fetch
scrapy fetch url地址
该命令会经过scrapy downloader 讲网页的源代码下载下来并显示出来
这里有一些参数:
--nolog 不打印日志
--headers 打印响应头信息
--no-redirect 不作跳转
view
scrapy view url地址
该命令会讲网页document内容下载下来,而且在浏览器显示出来由于如今不少网站的数据都是经过ajax请求来加载的,这个时候直接经过requests请求是没法获取咱们想要的数据,因此这个view命令能够帮助咱们很好的判断
shell
这是一个命令行交互模式
经过scrapy shell url地址进入交互模式
这里我么能够经过css选择器以及xpath选择器获取咱们想要的内容(xpath以及css选择的用法会在下个文章中详细说明),例如咱们经过scrapy shell http://www.baidu.com
这里最后给咱们返回一个response,这里的response就和咱们通requests请求网页获取的数据是相同的。
view(response)会直接在浏览器显示结果
response.text 获取网页的文本
下图是css选择器的一个简单用法
settings
获取当前的配置信息
经过scrapy settings -h能够获取这个命令的全部帮助信息
C:\Users\felix>scrapy settings -h
Usage
=====
scrapy settings [options]
Get settings values
Options
=======
--help, -h show this help message and exit
--get=SETTING print raw setting value
--getbool=SETTING print setting value, interpreted as a boolean
--getint=SETTING print setting value, interpreted as an integer
--getfloat=SETTING print setting value, interpreted as a float
--getlist=SETTING print setting value, interpreted as a list
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
拿一个例子进行简单的演示:(这里是个人这个项目的settings配置文件中配置了数据库的相关信息,能够经过这种方式获取,若是没有获取的则为None)
C:\Users\felix>scrapy settings --get=MYSQL_HOST 192.168.1.18
runspider
这个和经过crawl启动爬虫不一样,这里是scrapy runspider 爬虫文件名称
全部的爬虫文件都是在项目目录下的spiders文件夹中
version
查看版本信息,并查看依赖库的信息
C:\Users\felix>scrapy version
Scrapy 1.5.0
C:\Users\felix>scrapy version -vScrapy : 1.5.0lxml : 4.1.1.0libxml2 : 2.9.5cssselect : 1.0.3parsel : 1.4.0w3lib : 1.19.0Twisted : 17.9.0Python : 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)]pyOpenSSL : 17.5.0 (OpenSSL 1.1.0g 2 Nov 2017)cryptography : 2.1.4Platform : Windows-10-10.0.16299-SP0