zoukankan      html  css  js  c++  java
  • scrapy之Spider

    Scrapy爬虫项目运行时,最重要的就是Spider类(spiders文件夹下的爬虫文件)了。

    scrapy.spiders.Spider这个类是最简单最基本的Spider类,其他Spider必须继承这个类。

    scrapy.spiders.Spider这个类提供了start_requests()方法的默认实现,读取并请求start_urls属性,并根据返回的结果调用parse()方法解析结果。

    它还有如下一些基础属性:

    •  name。爬虫名称,是定义 Spider名字的字符串。Spider的名字定义了 Scrapy如何定位并初4化 Spider、它必须是唯一的。不过我们可以生成多个相同的 Spider 实例,数量没有限制。
name 是Spider 最重要的属性。如果 Spider爬取单个网站,一个常见的做法是以该网站的域名来命名 Spider。例如,Spider爬取 mywebsite.com,该Spider通常会被命名为mywebsite。
    • allowed_domains。允许爬取的域名,是可选配置,不在此范围的链接不会被跟进爬取。
    • start_urls。它是起始 URL列表,当我们没有实现start requests()方法时,默认会从这个列表开始抓取

    • custom_settings。它是一个字典,是专属于本 Spider的配置,此设置会覆盖项目全局的设置。此设置必须在初始化前被更新,必须定义成类变量。
    • crawler。它是由 from_crawler()方法设置的,代表的是本 Spider 类对应的Crawler对象。
Crawler对象包含了很多项目组件,利用它我们可以获取项目的一些配置信息,如最常见的获取项目的设置信息,即Settings。

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


    除了基础属性,Spider还有一些常用的方法:

    • 
start_requests()。此方法用于生成初始请求,它必须返回一个可迭代对象。此方法会默认使用 start urls 里面的URL来构造 Request,而且Request是GET请求方式。如果我们想在启动时以POST方式访问某个站点,可以直接重写这个方法,发送POST请求时使用FormRequest 即可。

    • parse()。当Response没有指定回调函数时,该方法会默认被调用。它负责处理Response,处理返回结果,并从中提取出想要的数据和下一步的请求,然后返回。该方法需要返回一个包含 Request 或 Item 的可迭代对象。

    • closed()。当 Spider 关闭时,该方法会被调用,在这里一般会定义释放资源的一些操作或其他收尾操作。
  • 相关阅读:
    linux学习17 运维核心技能-Linux系统下用户权限管理
    linux学习16 Linux用户和组管理命令演练和实战应用
    linux学习15 Linux系统用户和组全面讲解
    linux学习14 Linux运维高级系统应用-glob通配及IO重定向
    linux学习13 Linux运维常用文件管理命令及系统变量基础
    linux学习12 bash的常见特性及文本查看命令实战
    linux学习11 Linux基础命令及命令历史
    linux学习10 Linux目录结构和根文件系统全面讲解
    【Hadoop离线基础总结】Hive调优手段
    【Hadoop离线基础总结】Hive的基本操作
  • 原文地址:https://www.cnblogs.com/codexlx/p/12614939.html
Copyright © 2011-2022 走看看