Scrapy框架 - 学习日记1

1. Scrapy介绍

  • 什么是Scrapy

Scrapy是⼀个为了爬取⽹站数据,提取结构性数据⽽编写的应⽤框架,我们只需要实现少量的代码,就能够快速的抓取。
Scrapy使⽤了Twisted异步⽹络框架,可以加快我们的下载速度

http://scrapy-chs.readthedocs.io/zh_CN/1.0/intro/overview.html

  • 异步和⾮阻塞的区别

在这里插入图片描述
异步:调⽤在发出之后,这个调⽤就直接返回,不管有⽆结果。

⾮阻塞:关注的是程序在等待调⽤结果时的状态,指在不能⽴刻得到结果之前,该调⽤不会阻塞当前线程

2. Scrapy⼯作流程

  • 爬虫的几种工作模式:
    在这里插入图片描述
  • 另⼀种爬⾍⽅式

在这里插入图片描述
Scrapy⼯作流程
在这里插入图片描述

Scrapy engine(引擎)总指挥:负责数据和信号的在不同模块间的传递scrapy已经实现
Scheduler(调度器)⼀个队列,存放引擎发过来的request请求scrapy已经实现
Downloader(下载器)下载把引擎发过来的requests请求,并返回给引擎scrapy已经实现
Spider(爬⾍)处理引擎发来的response,提取数据,提取url,并交给引擎需要⼿写
Item Pipline(管道)处理引擎传过来的数据,⽐如存储需要⼿写
Downloader Middlewares(下载中间件)可以⾃定义的下载扩展,⽐如设置代理⼀般不⽤⼿写
Spider Middlewares(中间件)可以⾃定义requests请求和进⾏response过滤⼀般不⽤⼿写

3. Scrapy⼊⻔

1 创建⼀个scrapy项⽬
scrapy startproject mySpider
2 ⽣成⼀个爬⾍
scrapy genspider demo “demo.cn”
3 提取数据
完善spider 使⽤xpath等
4 保存数据
pipeline中保存数据

  • 在命令中运⾏爬⾍

scrapy crawl qb # qb爬⾍的名字

  • 在pycharm中运⾏爬⾍
 from scrapy import cmdline
 cmdline.execute("scrapy crawl qb".split())

4. pipline使⽤

从pipeline的字典形可以看出来,pipeline可以有多个,⽽且确实pipeline能够定义多个。

为什么需要多个pipeline:

  • 可能会有多个spider,不同的pipeline处理不同的item的内容
  • ⼀个spider的内容可以要做不同的操作,⽐如存⼊不同的数据库中

注意:

  • pipeline的权重越⼩优先级越⾼
  • pipeline中process_item⽅法名不能修改为其他的名称

总结:
1.scrap有的介绍:

  • 异步网络框架Twisted闭包实现的
  • 爬虫的几种工作模式
  • 安装方式 pip install scrapy

2.scrapy的工作流程
- 引擎
- 调度器
- 中间件
- item pipline
- spider

3.scrapy 入门

  • 创建一个项目 scrapy startproject myspider
  • 生成一个爬虫 scrapy genspider demo xx.com
  • 提取数据 xpath
  • 保存数据 pipline中 保存数据
  • 运行爬虫项目 a . 先创建一个py文件 b. 写入以下代码
  • from scrapy import cmdline
    cmdline.execute(“scrapy crawl qb”.split())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值