本文最后更新于: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 显示每层的详细信息

Python      Python

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!

PM3刷固件出问题
win10外接显示器实现双屏操作