scrapy定义:
scrapy是用python 实现一个为了爬取网站数据、提取结构性数据而编写的应用框架,用途非常广泛。
异步: 调用在发出之后,这个调用就直接返回,不管有无结果。
非阻塞:关注的是程序在等待调用结果(消息,返回值)时的状态,指在不能立刻得到结果之前,该调用不会阻塞当前线程
Scrapy Englne(引擎):
负责Spider(爬虫)、item pipeline(管道)、Downloader(下载器)、scheduler(调度器)中间的通讯,信号、数据、传递等。
Scheduler(调度器):
它负责接受引擎发送过来的request请求,并按照一定的方式进行整理排队,入队,当引擎需要时、交还给引擎。
Downloader(下载器):
负责下载Scrapy Engine (引擎)发送过来的的所有requests请求,并将其获取到的Responses交给Scrapy Engine(引擎),由引擎交给Spider来处理,
Spider(爬虫):
负责处理所有Responses,从中分析提取数据,获取ltem字段需要的数据,并将西药跟进的URL提交给引擎,再次进入Scheduler(调度器)。
ltem Pipeline(管道):
它负责处理spider中过去到Item,并进行进行后期处理(详细分析、过滤、存储等)的地方。
Downloader Middlewares(下载中间件):
可以自定义扩展下载功能的组件(代理、cokies等).
Spider Middlewares(spider中间件):
可以自定义扩展和操作引擎和Spider中间通信的功能组件(比如进入Spider的Response;和从Spider出去的Requests)。
scrapy框架 可以直接用 response.css 和 response.xpath 等解析器直接进行解析。
在scrapy框架中进行数据解析是 用到 extract()方法和extract_first('').
创建目录:scrapy startproject 爬虫名称
创建爬虫文件: scrapy genspider 爬虫名字 域名
运行爬虫文件: scrapy crawl 爬虫文件名称
response:
response 相应结果
response.url 得到请求的url
response.text 得到相应的字符串内容
response.status 相应状态码
response.headers 得到响应头部
scrapy框架下载图片:
Scrapy提供了一个 item pipeline ,来下载属于某个特定项目的图片,比如,当你抓取产品时,也想把它们的图片下载到本地。
在 settings 中可以将管道打开。