爬虫架构Scrapy的构建

3月25日

项目系统需要构建爬虫模块,使用爬虫技术从网络上获取到本年度的校招岗位信息,并作为项目中推荐系统的数据集,实现对项目结果的真实场景运用。

此项目中的爬虫模块主要运用Scrapy架构,基于Python语言实现。近期我学习了Scrapy框架的相关知识,并且在本机上搭建好了系统的爬虫架构,在此有一些体会与收获。

Scrapy架构的学习:

系统架构图(图源:Scrapy官方文档):
在这里插入图片描述

通过我对相关资料的搜索与总结,认识到Scrapy中7大架构的具体功能如下:

  • Scrapy Engine
    引擎负责控制数据流在系统所有组件中的流动,并在相应动作发生时触发事件;它也是程序的入口,可以通过scrapy指令方式在命令行启动。
  • 调度器(Scheduler)
    调度器从引擎接收爬取请求(Request)并将它们入队,以便之后引擎请求它们时提供给引擎。
  • 下载器(Downloader)
    下载器负责处理产生最终发出的请求对象Request并将返回的响应生成Response对象传递给爬虫。
  • 爬虫——Spiders
    Spiders是用户编写用于分析响应(Response)结果并从中提取Item字段需要的数据,将需要访问的URL提交给引擎。
  • 数据管道——Item Pipeline
    Item Pipeline负责处理从Spider中获取到的Item,包含清理、验证、持久化处理。
  • 下载器中间件(Downloader middlewares)
    下载器中间件是在引擎及下载器之间,处理Downloader传递给引擎的Response,可以自定义扩展下载功能的组件。
  • Spider中间件(Spider middlewares)
    Spider中间件是在引擎及Spider之前,处理Spider的输入(Response)和输出(Items和Requests),可以自定义扩展Scrapy的功能。

Scrapy的构建步骤:

使用pip安装Scrapy:

pip install Scrapy

在命令行中键入scrapy,会看到以下的提示内容:

Scrapy 2.4.1 - no active project

Usage:
  scrapy <command> [options] [args]

Available commands:
  bench         Run quick benchmark test
  commands
  fetch         Fetch a URL using the Scrapy downloader
  genspider     Generate new spider using pre-defined templates
  runspider     Run a self-contained spider (without creating a project)
  settings      Get settings values
  shell         Interactive scraping console
  startproject  Create new project
  version       Print Scrapy version
  view          Open URL in browser, as seen by Scrapy

创建Scrapy的爬网项目时,可以运行startproject指令参数直接初始化Scrapy项目:

scrapy startproject JobSpider

文件内容的解析:

框架会自动在当前目录下创建一个同名的文件夹JobSpider,经过代码的阅读与理解,查找了相关资料进行学习,项目文件结构如下:

  1. scrapy.cfg:项目的配置文件
  2. JobSpider文件夹:
  • 放置spider代码的目录spriders,爬虫文件将创建到此目录中。
  • init.py:声明了这个文件夹是一个Python包。
  • items.py:需要提取的数据结构定义文件。
  • middlewares.py:是和Scrapy的请求/响应处理相关联的框架。
  • pipelines.py:用来对items里面提取的数据做进一步处理,如保存等。
  • settings.py:项目的配置文件。

执行结果:

明白了Scrapy爬虫框架的原理与使用之外,我阅读了一些爬虫功能实现的相关资料,尝试写了一些爬虫的文件,对爬虫框架的使用进行测试。通过框架的搭建与使用,成功地完成了对测试内容的爬取。

在下个阶段,将基于爬虫框架,实现对招聘网站中本年度校招信息的爬取,并进行解析与存储,通过多个平台的信息爬取与收集,逐步完善爬虫模块。

参考书目:《虫术:Python绝技》(电子工业出版社)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值