Scrapy入门教程随笔

本文详细介绍了使用Scrapy框架进行网络爬虫开发的步骤,包括创建项目、生成爬虫、数据提取、保存数据以及使用pipeline进行数据处理。重点讲解了pipeline的配置和使用,以及如何实现翻页请求。此外,还提到了item的定义和使用,强调了其在不同数据处理中的作用。同时,文章还涵盖了日志管理和设置,确保爬虫运行过程中的信息记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

流程介绍

1、创建一个scrapy项目

scrapy startproject mySpider

2、生成一个爬虫

scrapy genspider itcast "itcast.cn"

3、提取数据 

完善spider,使用xpath等方法

4、保存数据

pipeline中保存数据

使用pipeline

完成pipeline代码后,需要在setting中设置开启

ITEM_PIPELINES = {
   'myspider.pipelines.MyspiderPipeline': 300,
}

(键:代码的位置;值:权重,距离引擎的远近,近的先执行)

pipeline可以有多个

1、可能会有多个spider,不同的pipeline处理不同的iterm的内容

2、一个spider的内容可能要做不同的操作,比如存入不同的数据库中

注意:

  • pipeline的权重越小,优先级越高
  • pipeline中process_iterm方法名不能修改为其他的名称
  • 在pipeline中可以通过spider.name来判断item来自于哪个spider文件

使用logging

在scrapy中

  • 在settings中设置LOG_LEVEL="WARNING"
  • 在settings中设置LOG_FILE="./a.log"   #设置日志保存的位置
  • import logging,实例化logging的方式在任何文件中使用logger输出日志

普通项目中

  • import logging
  • logging.basicConfig(...)   #设置日志输出的样式,格式
  • 实例化一个logger = logging.getLogger(__name__)
  • 在任何py文件中调用即可

实现翻页请求

scrapy.Request知识点:

scrapy.Request(url, [, callback, method='GET', headers, body, cookies, meta, dont_filter=False])

注:一般文档中方括号中的参数表时可选参数

scrapy.Request常用参数为:

  • callback: 指定传入的url交给哪个函数去处理
  • meta: 实现在不同的解析函数中传递数据,meta默认会携带部分信息,比如下载延迟,请求深度等
  • dont_filter: 默认False,scrapy会去重url,不会重复请求

item的使用

预先定义需要爬的字段

class MyspiderItem(scrapy.Item):
    name = scrapy.Field()
    pass

注:scrapy.Item和scrapy.Field()是一个字典,总的来说,可以把我们定义的MyspiderItem理解为一个字典。

那么scrapy为啥要定义一个字典呢?

答:在获取到数据的时候,使用不同的item来存放不同的数据。在把数据交给pipeline的时候,可以通过isinstance(item, MyspiderItem)来判断数据是属于哪个item,进行不同的数据处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值