课程笔记3:Scrapy框架——Spider的用法

Spider的三个核心任务:

  • 定义链接配置
  • 定义抓取逻辑(爬取网站的动作)
  • 定义解析逻辑(分析爬取到的网页)

Spider的运行流程:

  1. 以初始URL初始化Request,并设置回调函数。当该Request成功请求并返回时,生成一个Response(这个Response将作为参数传给该回调函数)。
  2. 在回调函数内分析返回的网页内容,返回的结果有两种形式:item和Request。
  3. Item:如果解析到有效的结果,会以字典或Item对象的形式返回。接着就可以将数据保存下来(可通过Feed Exports等组件将返回结果存入文件;也可以通过设置Pipeline实现数据的处理+保存。)。
  4. Request:如果解析到的是下一页的链接,那么就可以利用此链接构造新的Request并设置新的回调函数。接着,会生成新的Response(这个Response也会作为参数传给新指定的回调函数)。在回调函数中,可以再次使用选择器来分析等到新的网页内容,并根据分析的数据生成Item。

总结:定义好初始URL,引擎会自动生成初始Response。在回调函数中,通过初始Response拿到页面里面的内容字段和翻页字段,接着整理内容字段以item形式返回,另外整理翻页字段以Request形式返回。引擎拿到新的Request会生成新的Response,如此循环往复。

Spider类:

我们定义的Spider一般都继承自scrapy.spiders.Spider——这个类是最简单最基本的Spiders类,其他Spider必须继承自这个类。

基础属性

name:爬虫名称,定义Spider名字的字符串(必须唯一,一般为网站域名)

allowed_domains:允许爬取的域名(即白名单,为可选配置)

start_urls:起始URL列表(如果没有实现start_requests()方法,默认从这里开始抓取)

custom_settings:是一个字典,是专属于本Spider的配置(此设置会覆盖全局的设置;必须在初始化前被更新;必须定义成类变量)

crawler:由from_crawler()方法来设置,代表的是本Spider类对应的Crawler对象(Crawler对象包含了很多项目组件,可以用来获取项目配置信息,如Settings)

settings:这是一个Settings对象,利用它可以直接获取项目的全局设置变量。

常用方法

start_requests():用于生成初始请求,必须返回一个可迭代对象;默认使用start_urls里面的URL来构造Request(请求方式为GET,如果想要以POST方式访问站点,可以直接重写这个方法,发送POST请求时使用FormRequest即可)

parse():当Response没有指定回调函数时,该方法会默认被调用(返回一个包含Request或Item的可迭代对象)

closed():Spider关闭时,该方法会被调用(一般会定义释放资源的一些操作或其他收尾操作)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值