一、Scrapy爬虫的常用命令
命令 | 说明 | 格式 | tips |
startproject | 创建一个新工程 | scrapy startproject <name> [dir] | 无 |
genspider | 创建一个爬虫 | scrapy genspider [options] <name> [dir] | 无 |
settings | 获取爬虫配置信息 | scrapy settings [options] | 无 |
crawl | 运行一个爬虫 | scrapy crawl <spider> | 无 |
list | 列出工程中所有的爬虫 | scrapy list | 无 |
shell | 启动url调式命令行 | scrapy shell [url] | 可以自己调试【很方便】 |
二、Scrapy爬虫的步骤 [简述]
步骤一:建立一个Scrapy爬虫工程
D:\test>scrapy startproject python123demo
#过渡:
D:\test> cd python123demo D:\test\python123demo>
步骤二:在工程中产生一个Scrapy爬虫
D:\test\python123demo>scrapy genspider demo www.baidu.com
步骤三:配置产生的spider爬虫
--->针对demo.py文件修改:初始化url地址;获取后面的解析内容;有事也需要配置pipelines.py文件
步骤四:运行爬虫,获取网页
D:\test\python123demo>scrapy crawl demo
-------->分割线,下面是一些要点
- item.py 用来保存数据的数据结构
- middlewares.py 在爬取过程中定义的中间键,可用来处理requests,response和错误异常
- pipelines.py 管道,可以用来输出一些Items
- settings.py 定义了配置消息
- 最主要的都在spider文件下的demo.py
- 最后保存yield里面的数据 scrapy crawl demo -o save.json --->这是保存为json格式,可以定义为其他格式
三、Scrapy爬虫的小例子
1、cmd中的基础操作:
C:\Users\Administrator\Desktop>scrapy startproject mySpider C:\Users\Administrator\Desktop>cd mySpider C:\Users\Administrator\Desktop\mySpider>scrapy genspider demo www.baidu.com
2、生成文件的介绍:
3、生成的demo.py文件如下
import scrapy class DemoSpider(scrapy.Spider): name = 'demo' #爬虫名 allowed_domains = ['www.baidu.com'] #允许爬虫的范围 start_urls = ['http://www.baidu.com/'] #初始爬虫url def parse(self, response): #处理响应文件 pass
说明:
(1)start_urls是爬虫执行时,第一次取url的地址(无论start_urls有多少url,都只会取一次url)
(2)parse()用于处理响应文件response
- 在parse中若是yield item,则将爬取的item交给pipelines进行处理
- 若是return item,则不经过pipelines处理
重点:parse()方法的工作机制
一般情况下使用的yield item,而不是return item
parse函数被当成一个生成器使用,scrapy会逐一获取parse方法中生成的结果,并且判断该结果是什么类型。
补充:怎么判断?
- 若yield item 就是数据,scrapy框架会将其传到pipeline管道文件进行处理
- 若yield scrapy.Request(url= ,callback= )就是请求,scrapy框架会将其传到调度器,调度器对其进行入队列、出队列,再交给下载器去下载