1.认识scrapy目录结构
__init__.py文件为项目的初始化文件,主要写的是一些项目的初始化信息
items.py 文件为爬虫项目的数据容器文件,朱亚欧用来定义我们要获取的数据
pipelines.py 文件为爬虫项目的管道文件,主要用来对items里面定义的数据进一步加工与处理
setting.py文件为爬虫项目的设置文件,主要为爬虫项目的一些设置信息,
spiders 文件夹下放置的是爬虫项目中爬虫部分相关的文件
spiders/__init__.py文件为爬虫项目中爬虫部分的初始化文件,主要对spiders进行初始化。
2.用scrapy进行爬虫项目管理(命令)
创建一个爬虫项目:
scrapy startproject myfirstpjt(项目名)
创建成功后,可以通过 "cd 项目名" 进入爬虫项目所在的目录
打开爬虫项目所在文件夹,发现此时多一个名为myfirstpjt的文件夹,该文件夹就是刚才我们所创建的爬虫项目
使用scrapy startproject来创建爬虫项目,在创建的时候我们也可以加上一些参数进行控制,通过scrapy startproject
-h 调出startproject的帮助信息,可以看到具体可以添加那些参数。
参数分别进行分析:
1.--logfile=FILE 参数主要用来指定日记文件,其中FILE为指定的日记文件的路径地址。
实现代码:scrapy startproject --logfile=“..log.log” mypjtl
scrapy startproject --logfile=“日记路径” 项目名称
2.--loglevel =LEVEL,-L LEVEL 参数主要控制日记信息的等级,默认为DEBUG模式,
实现代码:scrapy startproject --loglevel=DEBUG mypjt2
3.通过--nolog参数,可以控制不输出日记信息,比如,实现创建一个爬虫项目,并且不输出日记信息
实现代码:scrapy startproject --nolog mypjt3
这是在创建爬虫项目中常见的重要参数,如果要删除爬虫项目,直接删除该爬虫项目对应的文件夹来实现。
3.常用工具命令
scrapy 中,工具命令分为,一种为全局命令,一种为项目命令
全局命令不需要在依靠scrapy项目就可以再全局中直接运行,而项目命令必须要在scrapy项目中才可以运行。
1.全局命令:
查看全局命令有哪些。运行,scrapy -h 会出现所有的全局命令,如下:
(1). fetch命令:
fetch 命令主要用来显示爬虫爬取的过程。(在scrapy项目目录外使用,则会调用scrapy默认的爬虫来 进行网页爬取,在项目内使用该命令,会调用该项目中的爬虫进行网页爬取)
scrapy fetch -h 列出所有可以使用
scrapy fetch --headers --nolog http://news.sina.com.cn
--headers 显示爬取时候的头部信息
(2)runspider命令 :
先编写一个scrapy爬虫文件,first.py,运行爬虫文件,并将日记等级设置设置为info
实现代码:scrapy runspider --loglevel=INFO first.py
(3)setting命令:
通过scrapy总的setting命令查看scrapy对应的配置信息 ,在目录内使用,查看项目的配置信息,在 目录为使用,查看的是scrapy默认配置信息
(4)shell命令:
通过shell命令,可以启动scrapy的交互终端,创建一个交互终端环境,并设置为不输出日记信息。
实现代码:scrapy shell 网址 --nolog
(5)startproject命令:
主要用于创建项目
(6)version命令:
显示scrapy版本信息
(7)view命令:
通过view命令,可以实现下载某一个网页并用浏览器查看的功能
实现代码:scrapy view 网址
2.项目命令
scrapy项目命令,主要有:bench ,check,crawl,edit,genspider,list,parse
注意点:全局命令,可以在非scrapy爬虫项目文件夹中使用,同时也可以在项目文件夹中使用。项目命令,一般只 能在scrapy爬虫项目文件夹中使用。
(1)Bench命令
使用bench命令可以测试本地硬件性能,当我们运行,scrapy bench的时候,会创建一个本地服务器并且会以 最大的速度爬行,在此为了测试本地硬件的性能,不进行内容的处理。
(2)genspider命令
可以使用genspider命令来创建scrapy爬虫文件,这是一种快速创建爬虫文件的方式,需要在爬虫项目目录里 面使用
可以使用-l参数当前可以使用的爬虫模板,
实现代码:scrapy genspider -l
可以看到,爬虫模板有:basic,crawl,csvfeed,xmlfeed 此时,可以基于其中任意一个爬虫模板来生成 一个爬虫文件,格式为“scrapy genspider -t 模板 爬虫名称 爬取域名”
查看爬虫模板的内容,通过 -d 参数实现查看某一个爬虫模板的内容,通过“scrapy genspider -d csvfeed(模板名)”
(3)check命令
爬虫测试比较麻烦,所以在scrapy中使用合同(contract,是一种交互式的检查方式)的方式对爬虫进行测试
使用scrapy中的check命令,可以实现对某一个爬虫文件进行合同检查。
实现代码: scrapy check 爬虫名 注意:check后面是爬虫名称,不是爬虫文件,没有.py的后缀
(4)crawl 命令
可以通过crawl命令启动某一个爬虫,启动格式是:‘scrapy crawl 爬虫名’
(5)list命令
通过scrapy中的list命令,可以列出当前可使用的爬虫文件
(6)edit命令: 这个命令在linux中比较方便,
在linux中使用edit命令编辑某一个爬虫,首先使用,scrapy list 先列出当前存在的爬虫文件。
找到需要编辑的文件。
scrapy edit 爬虫文件
(7)parse命令
通过parse命令,可以实现获取指定的url网址,并使用对应的爬虫文件进行处理和分析