Python爬虫实战之研招专业目录抓取(共享源码)

        今天给大家分享一个实战项目,利用 Scrapy 框架抓取研招网的招生目录信息。包括各个招生单位的所有招生专业信息以及考试课程信息等,最终效果如下。(相关源码等资源,可关注公众号:Python资源分享,回复 yanzhao ,即可获取)

Python爬虫实战之研招专业目录抓取(共享源码)_第1张图片

    首先给大家简单介绍下Scrapy框架以及它的安装。Scrapy是适用于Python的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据,整体架构如下: 

 

Python爬虫实战之研招专业目录抓取(共享源码)_第2张图片

    主要的组件及其作用如下:

  • 引擎(Scrapy Engine)框架的核心,用于整个系统的数据流处理, 触发事务等;

  • 调度器(Scheduler)用于接受引擎发送的请求, 压入队列中, 并在引擎再次请求时返回. 可以看成是网址的优先队列, 由它决定下一个要抓取的网址是什么,去除重复的网址;

  • 下载器(Downloader)用于下载网页内容, 并将网页内容返回给蜘蛛,Scrapy下载器建立在twisted这个高效的异步模型上;

  • 爬虫(Spiders)用于从响应的结果中提取用户想要的信息,即所谓的实体Item。用户也可以从中提取出网址, 让 Scrapy 继续抓取下一个网址;

  • 项目管道(Pipeline)负责处理爬虫从网页中抽取的实体,主要是持久化实体例如保存到数据库中、验证实体的有效性、清除不需要的信息;

  • 下载器中间件(Downloader Middlewares)位于Scrapy引擎和下载器之间的框架,用于处理Scrapy引擎与下载器之间的请求及响应;

  • 爬虫中间件(Spider Middlewares)介于Scrapy引擎和爬虫之间的框架,用于处理蜘蛛的响应输入和请求输出。

  • 调度中间件(SchedulerMiddewares)介于Scrapy引擎和调度之间的中间件,从Scrapy引擎发送到调度的请求和响应。

    这些组件是如何协同工作的呢?Scrapy运行流程如下:

  • 引擎从调度器中取出一个网址用于接下来的页面抓取

  • 引擎把URL封装成一个请求(Request)传给下载器

  • 下载器把资源下载下来,并封装成响应包(Response)传给Spider;

  • 爬虫解析Response内容,解析出实体(Item),则交给实体管道进行进一步的处理;解析出链接(URL),则把URL交给调度器等待抓取;

    Python标准库中默认并不包含Scrapy框架,需要自己安装,Windows下Scrapy的安装如下:

  • 安装wheel

          pip install wheel

  • 安装twisted(建议离线安装

          pip install twisted

  • 安装pywin32

          pip install pywin32

  • 安装scrapy

          pip install scrapy

    注意:twisted 在线安装经常会失败,建议离线安装,此外,也可以借助第三方软件如 Anaconda 直接安装scrapy,会自动下载安装相关包。

研招网硕士招生目录分析

Python爬虫实战之研招专业目录抓取(共享源码)_第3张图片

Python爬虫实战之研招专业目录抓取(共享源码)_第4张图片

Python爬虫实战之研招专业目录抓取(共享源码)_第5张图片

Python爬虫实战之研招专业目录抓取(共享源码)_第6张图片

Python爬虫实战之研招专业目录抓取(共享源码)_第7张图片

Python爬虫实战之研招专业目录抓取(共享源码)_第8张图片

Python爬虫实战之研招专业目录抓取(共享源码)_第9张图片

Python爬虫实战之研招专业目录抓取(共享源码)_第10张图片

Python爬虫实战之研招专业目录抓取(共享源码)_第11张图片

Python爬虫实战之研招专业目录抓取(共享源码)_第12张图片

Python爬虫实战之研招专业目录抓取(共享源码)_第13张图片

Python爬虫实战之研招专业目录抓取(共享源码)_第14张图片

Python爬虫实战之研招专业目录抓取(共享源码)_第15张图片

Python爬虫实战之研招专业目录抓取(共享源码)_第16张图片

Python爬虫实战之研招专业目录抓取(共享源码)_第17张图片

Python爬虫实战之研招专业目录抓取(共享源码)_第18张图片

Python爬虫实战之研招专业目录抓取(共享源码)_第19张图片

Python爬虫实战之研招专业目录抓取(共享源码)_第20张图片

Python爬虫实战之研招专业目录抓取(共享源码)_第21张图片

Python爬虫实战之研招专业目录抓取(共享源码)_第22张图片

 

Python爬虫实战之研招专业目录抓取(共享源码)_第23张图片

源代码及相关资源,可关注 Python资源分享 微信公众号,回复yanzhao 即可获取。 欢迎加入QQ群一起学习交流:858228002 。

你可能感兴趣的:(Python学习,Python爬虫,Python编程,研招网数据抓取,Scrapy,网络爬虫)