本文最后更新于:2019 , 八月 19日 星期一, 5:20 下午
认识scrapy
Scrapy是为了爬取网址数据,提取结构性数据而编写的应用框架
了解 scrapy 文件
__init__
初始化文件,主要写的是一份项目的初始化信息items.py
数据容器文件,主要用来定义我们要获取的数据pipelines.py
管道文件,主要用来对items里面定义的数据进一步的加工与处理settings.py
设置文件,主要为爬虫项目的一些设置信息spiders
文件夹放置的是爬虫项目中的爬虫部分相关的文件
spiders文件夹下__init__
初始化文件,主要对spiders进行初始化
创建爬虫项目
在cmd
中,选择创建爬虫的目录
scrapy startproject 项目名
创建成功后,可以进入爬虫所在目录
常用工具命令
全局命令
项目命令
bench命令比较特殊,虽在Available commands中展现,但仍归为项目命令
全局命令
# fetch
主要用来显示爬虫爬取的过程
scrapy fetch http://www.baidu.com/
scrapy fetch -h 获取帮助
# runspider
实现不依托scrapy的爬虫项目,直接运行一个爬虫文件
scrpay runspider --loglevel=INFO 爬虫文件
# settings
查看scrapy对应的配置信息
如果在项目目录使用setting命令,查看的对应项目的配置信息
如果在项目外使用setting命令,查看的对scrapy默认配置信息
scrapy settings --get BOT_NAME
要想查看配置信息中的其他配置信息,我们只需要将上述命令中BOT_NAME位置换成要查询的配置信息项即可
SPIDER_MODULES(爬虫模块相关)
# shell
可以启动Scrapy的交互终端(Scrapy shell)
经常在开发以及调试的时候用到
在不启动Scrapy爬虫的情况下,对网站响应进行调试,我们也可以写一些Python代码进行相应测试
scrapy shell http://www.baidu.com --nolog
爬虫完立即进入交互模式
# startproject
用于创建项目
# version
直接显示Scrapy的版本相关信息
# view
实现下载某个网页并用浏览器查看的功能
scrapy view http://news.163.com
项目命令
项目命令一般只能在Scrapy爬虫项目文件夹中使用
# bench
可以测试本地硬件的性能
会创建一个本地服务器并且会以最大的速度爬行,在此不进行内容的处理
scrapy bench
# check
对爬虫进行合同检查
scrapy check 爬虫名(无后缀)
# crawl
启动某个爬虫
scrapy crwal 爬虫名
# edit
直接打开编辑器对爬虫文件进行编辑,在Windows中执行会出现问题
# genspider
创建爬虫文件,这是一种快速创建爬虫文件的方式
基于现有的爬虫模板直接生产一个新的爬虫文件
可以使用-l参数来查看当前可以使用的爬虫模板
scrapy genspider -l
使用任意一个模板来生成一个爬虫文件
scrapy genspider -t 模板 新爬虫名 新爬虫爬取的域名
-d 查看爬虫模板的内容
scrapy genspider -d csvfeed
# list
列出当前可使用的爬虫文件
scrapy list
# parse
获取指定的URL网址,并使用对应的爬虫文件进行处理和分析
scrapy parse http://www.baidu.com
parse有很多参数
scrapy parse -h
参数大致分为两类,普通参数(Options)和全局参数(Global Options)
parse命令对应的参数
参数 | 含义 |
---|---|
–spider=SPIDER | 强行指定某个爬虫文件spider进行处理 |
-a NAME=VALUE | 设置spider的参数,可能会重复 |
–pipelines | 通过pipelines来处理items |
–nolinks | 不展示提取的链接信息 |
–noitems不展示得到的items | |
–nocolour | 输出结果颜色不高亮 |
–rules,-r | 使用CrawlSpider规则去处理回调函数 |
–callback=CALLBACK,-c CALLBACK | 指定spider中用于处理返回的响应的回调函数 |
–depth=DEPTH,-d DEPTH | 指定爬行深度,默认深度为1 |
–verbose,-v | 显示每层的详细信息 |