课程笔记6:Scrapy框架——Extension的使用

news/2024/7/19 10:00:57 标签: python, pycharm, 爬虫

Extension(扩展)简介

Scrapy提供了一些Extension机制,可以让我们添加和扩展一些自定义的功能(监听Scrapy运行过程中的信号,在发生某个事件时,执行我们自定义的方法)。

Scrapy内置的一些Extension:

LogStats:用于记录基本的爬取信息,比如爬取的页面数量、提取的Item数量等。

CoreStats:用于统计爬取过程中的核心统计信息,比如开始爬取时间、爬取结束时间等。

和Downloader Middleware、Spider Middleware以及Item Pipeline一样,Extension也是通过settings.py中的配置来控制是否被启用以及执行优先级。

自定义Extension的实现过程:

  • 实现一个Python类,然后实现对应的处理方法。
  • 定义from_crawler类方法,其第一个参数是cls类对象,第二个参数是crawler(利用crawler的signals对象将Scrapy 的各个信号和已经定义的处理方法关联起来)。

准备工作

目标:利用Extension实现爬取事件的消息通知。在【爬取开始时】、【爬取到数据时】、【爬取结束时】通知指定的


http://www.niftyadmin.cn/n/764755.html

相关文章

Linux笔记1:Linux命令行基础

基本概念 Shell与Bash: 用户>服务程序>系统调用接口>内核>硬件 硬件设备由系统内核直接管理,但由于内核的复杂性太高,在访问时存在较大的风险,因此用户不能直接访问内核。Shell是终端程序的统称,充当了人与内核(硬件)的“翻译官”,会根据用户的命令去调用…

知识补充3:Python——类的继承

类的基础 class Dog:# 从空白中创建这个类,所以定义中没有圆括号# 类的首字母要大写def __init__(self, name, age):# init两边各两个下划线,这是一种特殊方法# 这个方法定义成包含三个形参(首位必须有且为self)# 根据Dog类创建新…

nn_module.py

import torch from torch import nnclass Tudui(nn.Module):def __init__(self):super().__init__()def forward(self, input):output input 1return outputtudui Tudui() x torch.tensor(1.0) output tudui(x) print(output)

课程笔记7:Scrapy框架——规则化爬虫

搭建一个基础爬虫 1.新建项目: scrapy startproject scrapyuniversaldemo 2.查看可用模版并指定crawl模版创建爬虫 scrapy genspider -l # 查看模版非必要 scrapy genspider -t crawl movie ssr1.scrape.center 3.在爬虫的rules中使用Rule来定义index页中的爬取…

知识补充:基于Docker的Redis的基本使用方法

Redis简介 Redis(Remote Dictionary Server)是由Salvatore Sanfilippo开发的key-value(键值对)存储系统。 对比传统数据库与NoSQL数据库传统数据库(关系型数据库) NoSQL代表MySQL、Oracle、SQL ServerRedi…

P1747 求解递增序列中与x最接近元素问题

题目描述 在一个非降序列序列中与给定值 x 最接近的元素 输入描述 第一行包含一个整数 n&#xff0c;为非降序列长度 (1<n<100 000) 第 2 行包含 n 个整数&#xff0c;为非降序列的各个元素&#xff0c; 所有元素的大小均在 0~1 000 000 000 范围内。 第 3 行包含一…

知识补充 :Redis的基本数据类型及对应的命令

Redis支持五种数据类型&#xff1a; 字符串&#xff08;string&#xff09;类型哈希&#xff08;hash&#xff09;类型列表&#xff08;list&#xff09;类型集合&#xff08;set&#xff09;类型有序集合&#xff08;sorted set或zset&#xff09;类型 Redis缓存基础 如果容…

在Windows系统中安装Redis

Redis参考文档&#xff1a;Redis 命令参考 在Windows系统中安装Redis&#xff1a; 最好的当然就是在一台独立的Linux电脑上安装Redis啦&#xff0c;但如果只是测试学习的话&#xff0c;在Windows电脑上&#xff0c;先利用VMware或者Docker创建一个Linux系统&#xff08;我喜欢…