前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Scrapy spider 主要方法

Scrapy spider 主要方法

作者头像
喵叔
发布2020-09-08 16:46:48
8040
发布2020-09-08 16:46:48
举报
文章被收录于专栏:喵叔's 专栏喵叔's 专栏

Spider 类是 Scrapy 中的主要核心类,它定义了爬取网站的规则。 Spider 是循环爬取,它的而爬取步骤是:

  1. start_requests 方法用 start_urls 中的 URL 初始化 Request ,然后将请求返回结果 Response 作为参数传递给 parse 方法;
  2. parse 是回调函数,它分析传递过来的 Response 的内容,从中提取出 Item 对象、 dict 、 Request 或者包含三者的可迭代数据,将 Request 传递给 Scrapy 继续进行下一轮的循环;
  3. parse 使用 selector 分析 Response 提取向所需的数据。
零、 Spider 基本类

所有的爬虫类都必须继承自 Spider 类。他提供了 start_requests 方法的默认实现和读取并请求 start_urls,然后根据返回结果调用 pase 方法。他的常用属性如下:

  1. name:spider 唯一名称, Scrapy 通过 spider 的名称来定位和初始化爬虫;
  2. allowed_domains:可选属性,需要配合中间件 OffsiteMiddleWare 使用,它不会跟进不在域名列表中的域名;
  3. start_urls:当没有指定 URL 时,将会从 start_urls 列表中开始获取页面数据;
  4. custom_settings:可选属性,参数类型是 dict,会覆盖项目设置,必须为 class 。
一、 start_requests

项目启动时会调用 start_requests 方法,然后从 start_urls 列表中依次获取 url 生成 Request ,然后调用回调方法 parse 。这个方法只被调用一次所以我们可以将它写为生成器。

二、 parse

parse 是 Scrapy 默认的回调方法,她负责处理 Response 并返回抓取的数据,获取返回需要跟进的 URL。

三、 Selector

负责提取页面内容,Selector 是一套构建在 lxml 之上的选择器机制,主要通过 xpath 和 css 来提取数据。常用的方法如下:

  1. xpath:传入 xpath 表达式,返回对应的节点列表;
  2. css:传入 css 表达式,返回对应的节点列表;
  3. extract:返回被选择元素的字符串列表;
  4. re:通过正则表达式提取字符串。

tio:选择器可以嵌套使用,例如:

image = response.css("#image")
image_new = image.css("[href*='baidu.com']").extract()
四、总结

上通过简单的描述讲解了 spider 的主要方法,这些方法是我们在开发中经常用到的。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-12-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 零、 Spider 基本类
  • 一、 start_requests
  • 二、 parse
  • 三、 Selector
  • 四、总结
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档