在爬取一个网站时,想要爬取的数据通常分布到多个页面中,每个页面包含一部分数据以及其他页面的链接,提取链接有使用 Selector 和使用 Linkextractor 两种方法。

1、使用Selector

  因为链接也是页面中的数据,所以可以使用与提取数据相同的方法进行提取,在提取少量或(几个)链接或提取规则比较简单时,使用 Selector 就足够了。

2、使用 LinkExtractor

  Scrapy 提供了一个专门用于提取链接的类 LinkExtractor,在提取大量链接或提取规则比较复杂时,使用 LinkExtractor更加方便。

3、使用 Exporter 导出数据

  大家掌握了爬取带数据、封装数据、处理数据的相关技术。接下来我们来学习如何将爬取到的数据以某种数据格式保存起来,即导出数据。

  在 Scrapy 中,负责导出数据的组件被称为Exporter(导出器),Scrapy 内部实现了多个 Exportter,每个 Exporter 实现一种数据格式的导出

  支持的数据格式如下(括号中为相应的Exporter):

    (1)JSON(JsonItemExporter)

    (2)JSON(JsonItemExporter)

    (3)CSV(CsvItemExporter)

    (4)XML(XmlItemExporter)

    (5)Pickle(PickleItemExporter)

    (6)Marshal(MarshalItemExporter)

  其中,前 4 种是极为常用的文本数据格式,而后两种是 Python 特有的。在大多数情况下,使用 Scrapy 颞部提供的Exporter 就足够了

  需要以其他数据格式(上述 6 中之外)导出数据时,可以自行实现 Exporter。

4、指定如何导出数据

  在导出数据时,需向 Scrapy 爬虫提供一下信息:

  (1)导出文件路径

  (2)导出数据格式(即选择哪种 Exporter)

  可以通过以下两种方式指定爬虫如何导出数据:

  (1)通过命令行参数指定

  (2)通过配置文件指定

  1、命令行参数

    在运行 scrapy crawl 命令时,可以分为 -o 和 -t 参数指定导出的文件路径以及导出数据格式

scrapy crawl books -o books.csv

  其中, -o books.csv 指定了导出文件的路径,在这里虽然没有使用 -t 参数指定导出数据的格式,但 Scrapy 爬虫通过文件后缀名推断出我想以 csv 作为导出数据的格式,同样的道理,如果过将参数改为 -o books.json, Scrapy 爬虫就会以 json 作为导出数据格式。

  需要明确的指定导出数据格式,使用 -t 参数,例如:

 

scrapy crawl books -t csv -o books1.data
scrapy crawl books -t json -o books1.data
scrapy crawl books -t xml -o books1.data

运行以上命令,Scrapy 爬虫会以 -t 参数中的数据格式字符串(如 csv、json、xml)为键,在配置字典 FEED_EXPORTERS 中搜索 Exporter,FEED_EXPORTERS 的内容由一下两个字典的内容合并而成:

  (1)默认配置文件中 FEED_EXPORTER_BASE

  (2)用户配置文件中的 FEED_EXPORTERS

  前者包含内部支持的导出数据格式,后者包含用户自定义的翻出数据格式

  

Scrapy 使用 LinkExtractor 提取链接和使用 Exporter 导出数据的更多相关文章

  1. scrapy之使用LinkExtractor提取链接

    一.概述: 在页面含有少量链接时,使用selector来提取信息就可以,但如果链接特别多时,就需要用LinkExtractor来提取. 二.LinkExtractor构造器的各个参数: 1.allow ...

  2. scrapy中使用LinkExtractor提取链接

    le = LinkExtractor(restrict_css='ul.pager li.next') links = le.extract_links(response)   使用LinkExtra ...

  3. 使用Python中的HTMLParser、cookielib抓取和解析网页、从HTML文档中提取链接、图像、文本、Cookies(二)(转)

    对搜索引擎.文件索引.文档转换.数据检索.站点备份或迁移等应用程序来说,经常用到对网页(即HTML文件)的解析处理.事实上,通过 Python语言提供的各种模块,我们无需借助Web服务器或者Web浏览 ...

  4. 【python】使用HTMLParser、cookielib抓取和解析网页、从HTML文档中提取链接、图像、文本、Cookies

    一.从HTML文档中提取链接 模块HTMLParser,该模块使我们能够根据HTML文档中的标签来简洁.高效地解析HTML文档. 处理HTML文档的时候,我们常常需要从其中提取出所有的链接.使用HTM ...

  5. asp之GetArray提取链接地址,以$Array$分隔的代码

    '================================================== '函数名:GetArray '作 用:提取链接地址,以$Array$分隔 '参 数:ConStr ...

  6. Python中的HTMLParser、cookielib抓取和解析网页、从HTML文档中提取链接、图像、文本、Cookies(二)

    对搜索引擎.文件索引.文档转换.数据检索.站点备份或迁移等应用程序来说,经常用到对网页(即HTML文件)的解析处理.事实上,通过 Python语言提供的各种模块,我们无需借助Web服务器或者Web浏览 ...

  7. Scrapy 通过登录的方式爬取豆瓣影评数据

    Scrapy 通过登录的方式爬取豆瓣影评数据 爬虫 Scrapy 豆瓣 Fly 由于需要爬取影评数据在来做分析,就选择了豆瓣影评来抓取数据,工具使用的是Scrapy工具来实现.scrapy工具使用起来 ...

  8. 【Lab】提取result的bits和Y-PSNR数据并整理到Excel

    [Lab]提取result的bits和Y-PSNR数据并整理到Excel 更新:使用openpyxl库直接将数据写入Excel中 注意:openpyxl是第三方库,如果没有安装.请命令行里键入pip ...

  9. jmeter如何使用正则表达式,如何提取token等想要的数据

    使用正则表达式,提取你想要的任何数据, 例如要提取响应结果里的token字段及sex字段(响应内容为: "token":"83EEAA887F1D2F1AA1CDA9E1 ...

随机推荐

  1. Java面向对象编程 -6.2

    数组的引用传递 通过数组的基本定义可以发现,在数组使用的过程中依然需要使用new进行内存空间的开辟,同理,那么也一定存在有内存的关系匹配问题. 但是数组本身毕竟属于引用数据类型,那么既然是引用数据类型 ...

  2. 消息队列(二)--- RocketMQ-NameServer阅读

    概述   所有broker在启动的时候都会向NameServer进行注册,对它进行发送心跳包. 源码阅读 我们先从 NamesrvStartup这个类分析 public static void mai ...

  3. 源头质量 PageHelper(分页),导出功能

    今天星期五,本来想直接关电脑走人的,但想想自己弄出来的,写写留个记忆吧.两个功能 导出 和 Mybatis的插件 PageHelper 分页 一,导出功能代码实现:这里是需要jar包的啊 <!- ...

  4. CSS - px、em、%

    px(像素).em.% 百分比 1. em 1.1 本元素给定字体的 font-size 值,如果元素的 font-size 为 14px ,那么 1em = 14px:如果 font-size 为 ...

  5. 网络基础:ARP 协议、IP协议、路由协议 均属于网络层协议

    ARP协议 ARP--地址解析协议(Address Resolution Protocol),实现通过 对方的IP地址(域名) 寻找对方的 MAC地址 ARP的功能 本地电脑查看 IP 和 MAC 对 ...

  6. 运行时Runtime的API

    const char * class_getName(Class cls); 返回类的名称. Class class_getSuperclass(Class cls); 返回类的超类. Class c ...

  7. Java Web 笔记(杂)

    Java Web 概述 什么是Java Web 在Sun的Java Servlet 规范中,对Java Web 应用做了这样的定义: "Java Web" 应用由一组Servlet ...

  8. Bugku-CTF加密篇之ok(Ook!)

  9. Navicat for MySQL怎么往表中填数据

    只有往表中更新数据,数据库才会起到真正的作用. 工具/原料 仔细阅读 方法/步骤 1.打开数据库,首先连接localhost,如图所示. ​ 2.连接成功后,右侧便会显示已经建成的表,找到要修改的表, ...

  10. 服务器(1)——IIS(1)——Windows7中IIS简单安装与配置(详细图解)

    最近工作需要IIS,自己的电脑又是Windows7系统,找了下安装的方法,已经安装成功. 一.首先是安装IIS.打开控制面板,找到“程序与功能”,点进去 二.点击左侧“打开或关闭Windows功能” ...