Python爬虫学习日志(9)

Scrapy不是一个函数功能库而是一个爬虫框架

1.Scrapy爬虫框架结构

  1. 爬虫框架
  • 爬虫框架是实现爬虫功能的一个软件结构功能组件集合。
  • 爬虫框架是一个半成品,能够帮助用户实现专业网络爬虫。
“5+2”结构

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.Scrapy爬虫框架解析

不需修改的部分

在这里插入图片描述

Downloader Middleware(中间键)
  • 目的:实施Engine、Scheduler和Downloader之间进行用户可配置的控制
  • 功能:修改、丢弃、新增请求或响应
    用户可以编写配置代码
用户编写的部分

在这里插入图片描述

Spider Middleware(中间键)
  • 目的:对请求和爬取项的再处理
  • 功能:修改、丢弃、新增请求或爬取项
    用户可以编写配置代码

3.requests库和Scrapy爬虫的比较

在这里插入图片描述
在这里插入图片描述
选取爬虫的依据:

  • 非常小的需求,requests库。
  • 不太小的需求,Scrapy框架。
  • 定制程度很高的需求(不考虑规模),自搭框架,requests>Scrapy.

4.Scrapy爬虫的常用命令行

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

5.Scrapy爬虫的一个实例

demo网页 http://python123.io/ws/demo.html

步骤:
  1. 建立一个Scrapy爬虫工程
  2. 在工程中产生一个Scrapy爬虫
  3. 配置产生的spider爬虫
命令行中输入:

1) 建立工程:> scrapy startproject python123demo
2)生成爬虫(也可以手动生成) >cd python123demo;
>scrapy genspider demo python123.io

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

yield关键字的使用

在这里插入图片描述
生成器相比一次列出所有内容的优势

  • 更节省存储空间
  • 响应更迅速
  • 使用更灵活
#生成器
def gen(n):
    for i in range(n):
        yield i**2

for i in gen(5):
    print(i, " ",end="")#关键字end可以用于将结果输出到同一行,或者在输出的末尾添加不同的字符,此处为空格
    
#普通写法
def square(n):
    ls = [i**2 for i in range(n)]
    return ls

for i in square(5):
    print(i, " ", end="")

输出结果:

0  1  4  9  16  0  1  4  9  16  
  • yield 生成器每次只返回一个值进行操作,而普通写法需要返回全部值,当数值较大时,占用大量存储空间。

6.Scrapy爬虫的基本使用

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值