当前位置: 首页 > news >正文

爬虫学习——LinkEXtractor提取链接与Exporter导出数据

一、提取链接

        任务需求:如果爬取的数据通常分布在多个页面中,每个页面包含一部分数据以及到其他页面的链接,提取链接可以使用Selector和使用LinkExtractor两个方法。

        在页面中待提取的链接较少的时候,可以使用Selector来进行解决,但是其毕竟主要的作用还是提取数据,不是专门用于提取链接的,故这里使用LinkExtractor用于专门对大量链接和较为复杂场景的链接提取。可以设定不想要/想要的链接开头,设定提取的css范围和XPath列表以及不想要的链接域等都可以通过LinkExtractor获取到。

二、导出数据

这个解决任务的需求在于对爬取到的数据以某种数据格式保存到文件中,即导出数据。

在Scrapy中负责导出数据的组件被成为Exporter,在Scrapy中有多种Exporter,每种Exporter支持一种数据格式的导出,其可支持的数据格式为:JSON/JSON lines/CSV/XML/Pickle/Marshal。除去这6种文本格式外的格式,均需要自定义Exporter来实现。

导出数据时,Scrapy需提供导出文件的路径、导出文件的数据格式;可以通过命令行参数和修改配置文件实现导出数据。

①使用命令行参数导出(-o/-t)数据:

eg1:scrapy crawl books -o books.csv

eg2:scrapy crawl books-t csv -o books.data

②配置文件(settings.py)导出数据:

在默认配置文件中,使用的是FEED_EXPORTERS_BASE,这个使用的是内部支持的导出格式。

在用户配置文件中,使用的是FEED_EXPORTERS,这个是用户自定义的导出格式。

以下是在配置文件中需要设置的参数值:

FEED_URI:”export_data/%(name)s/%(time)s.data”//文件输出路径

FEED_FORMAT:”json”//文件输出格式

FEED_EXPORT_ENCODING:”utf-8”//文件编码格式

FEED_EXPORT_FIELDS:[‘name’,’author’,’price’,”type”,’’country”]//导出数据包含的字段

FEED_EXPORTERS:{“xlsx”:”myproject.myexporters.XLSXItemExporter”}//这个在自定义了一个XLSXItemExporter时进行这样使用。

以下是对如何进行自定义导出格式的实现阐述:

由于Scrapy中有一个BaseItemExporter导出基类,故在进行自定义导出类XLSXItemExporter实现中,需要继承该基类。然后自定义该类中的方法,最终实现对xlsx格式的导出。

相关文章:

  • OpenCV 图形API(47)颜色空间转换-----将 I420(YUV 4:2:0) 格式的图像数据转换为 RGB 格式
  • 大模型应用开发大纲
  • 什么是SPA,SPA与MAP区别
  • alibaba-JSONObject使用
  • 数据库优化
  • 全球首个人形机器人半程马拉松技术分析:翻车名场面背后的突破与挑战
  • Java第五节:继承thread类创建线程
  • C语言高频面试题——strcpy与memcpy区别
  • 江湖密码术:Rust中的 bcrypt 加密秘籍
  • NestJS-Knife4j
  • Java Lambda表达式指南
  • 深入理解路由器、IP地址及网络配置
  • 【SF顺丰】顺丰开放平台API对接(Java对接篇)
  • 科大讯飞Q1营收46.6亿同比增长27.7%,扣非净利同比增长48.3%
  • 全排列问题cpp
  • OOA-CNN-LSTM-Attention、CNN-LSTM-Attention、OOA-CNN-LSTM、CNN-LSTM四模型多变量时序预测一键对比
  • 代码随想录算法训练营Day32
  • css3新特性第五章(web字体)
  • 推荐系统/业务,相关知识/概念2
  • Vue 3 Proxy 响应式工作原理
  • 印尼巴厘岛多地停电,疑似海底电缆发生故障
  • 马克思主义理论研究教学名师系列访谈|高福进:思想政治理论课要伴随时代不断更新和变化
  • 武汉大学新闻与传播学院已由“80后”副院长吴世文主持工作
  • 三家“券商系”公募同日变更掌门人,新董事长均为公司股东方老将
  • 美乌签署协议建立美乌重建投资基金
  • 来论|受美国“保护”,日本民众要付出什么代价?