Scrapy 核心组件之Spiders组件的使用

 Spiders 组件是 Scrapy 框架的核心组件,它定义了网络爬虫抓取网站数据的方式,其中包 括抓取的动作,如是否跟进链接,以及如何从网页内容中提取结构化数据。换言之,Spiders 组件用于定义抓取网页数据的动作及解析网页数据。

编程梦想家(大学生版)-CSDN博客

那么,Spiders 组件是如何循环抓取所有网页数据的呢?对于使用 Scrapy 编写的爬虫来说,

循环抓取网页数据的流程分为如下 4 个步骤。
(1) 根据初始 URL 创建 Request ,并设置回调函数。当该 Request 设置完毕后返回 Response
并将 Response 作为参数传递给该回调函数。需要说明的是,爬虫中初始的 Request 是通过调
start_requests() 方法获取的,在该方法中读取 start_urls 中的 URL ,并以 parse() 方法作为回
调函数生成 Request
(2) 在回调函数中分析返回的内容。返回的内容主要有 Item 对象、 Request 对象两种形
式。其中, Request 对象会经过 Scrapy 处理,下载相应的内容,并调用设置的回调函数。
(3) 在回调函数中,可以使用 Selectors Scrapy 自带的选择器,用于从网页源代码中提
取数据)、 Beautiful Soup lxml 或其他解析器来解析网页数据,并根据解析的数据生成 Item
(4) Spiders 返回的 Item 数据经 Item Pipeline 组件处理后存储到数据库或文件中。
虽然以上步骤对大多数 Spiders 都适用,但 Scrapy 仍然为不同的采集需求提供了多种默认
Spiders ,例如 10.5 节即将介绍的 CrawlSpider 类。
        Scrapy 框架提供了 Spider 作为爬虫的基类,自定义的爬虫需要继承这个类。 scrapy.Spider
类的常用属性和方法介绍如下。
  •  name 属性:设置爬虫名称的字符串。由于爬虫名称用于被 Scrapy 定位和初始化一个 爬虫,所以它必须是唯一的。通常情况下,我们会将待抓取网站的域名作为爬虫名称。例如, 抓取域名为 mywebsite.com 网站的爬虫被命名为 mywebsite
  • allowed_domains 属性:设置爬虫允许抓取的域名列表。
  •  start_urls 属性:表示初始 URL 元组或列表。当没有指定 URL 时,爬虫会从该列表中
  • 开始抓取。
  •  __init__()方法:负责初始化爬虫名称和初始 URL 列表。
  •  start_requests()方法:负责生成 Requests 对象,交给 Scrapy 下载并返回 Responsestart_requests()方法的返回值是一个可迭代对象,该对象中包含了爬虫抓取的第一个 Request 对象,默认使用初始 URL 列表中的第一个 URL。  
  • parse(response)方法:负责解析 Response,并返回 Item Requests(需指定回调函数)。 Item 传给 Item Pipeline 组件进行持久化存储,而 Requests 则交由 Scrapy 下载,并由指定的回 调函数(默认为 parse())处理。之后会持续循环,直到处理完所有的数据为止。
  •  log(message[level, component])方法:负责发送日志信息。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值