zoukankan      html  css  js  c++  java
  • 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 的主要方法,这些方法是我们在开发中经常用到的。

  • 相关阅读:
    oracle性能调优
    oracle常用函数
    plsql的安装与使用
    WSAIoctl
    SQL中大概有这么几种JOIN
    如何取分组最大值记录
    having
    MSSQL—按照某一列分组后取前N条记录
    sql之left join、right join、inner join的区别
    delphi 接收心跳包怎么写
  • 原文地址:https://www.cnblogs.com/gangzhucoll/p/12778114.html
Copyright © 2011-2022 走看看