Scrapy spider 主要方法

时间:2022-07-24
本文章向大家介绍Scrapy spider 主要方法,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

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 的主要方法,这些方法是我们在开发中经常用到的。