Scrapy框架入门(一)

184 阅读3分钟

Scrapy 是一个用于爬取网站数据、提取结构化信息的 Python 框架,它具有高效、灵活、可扩展等特点,广泛应用于网络爬虫开发

传统爬虫爬取数据流程

  1. 明确爬取目标与需求。
  2. 用网络请求库发送 HTTP 请求。
  3. 接收并根据状态码判断响应。
  4. 利用解析库解析响应数据。
  5. 清洗、处理提取的数据。
  6. 将数据存储到本地或数据库。
  7. 制定页面遍历的爬取策略。
  8. 采取措施应对网站反爬虫机制。

Scrapy爬取数据流程

  1. 首先,Spider 将起始 URL 交给 Scheduler。
  2. Scheduler 把 URL 分发给 Downloader 进行下载。
  3. Downloader 将下载好的网页内容返回给 Spider。
  4. Spider 解析网页内容,提取出 Item 和新的 URL。提取到的 Item 会被送到 Item Pipeline 进行处理,而新的 URL 则会被交给 Scheduler,继续进行下一轮的爬取。

Scrapy的优点

  • 异步处理:Scrapy 基于 Twisted 异步网络库构建,能实现异步 I/O 操作。这意味着在等待一个请求的响应时,它可以同时处理其他请求,不会被单个请求阻塞。传统爬虫若采用同步方式,在处理大量请求时,效率会大幅降低。比如在爬取新闻网站的多篇文章时,Scrapy 可同时发起多个请求并处理响应,而传统同步爬虫只能按顺序一个一个处理。
  • 高并发处理:借助异步机制,Scrapy 能轻松处理高并发请求。在需要爬取大规模数据时,它可以高效地管理大量的并发连接,显著提升爬取速度。传统爬虫若要实现高并发,通常需要复杂的多线程或多进程编程,并且容易出现资源竞争和性能瓶颈等问题。
  • 主要的是上面的两个,另外还有框架都有的特点,利于维护,插件多种多样,处理数据功能强大等

Scrapy的主要组件

  • Spider(蜘蛛) :负责定义爬取的逻辑和规则,包括起始 URL、如何跟进链接以及如何解析页面数据等。
  • Item(项目) :用于定义爬取数据的结构,类似于数据库中的表结构,明确了要保存的数据字段。
  • Item Pipeline(项目管道) :负责处理蜘蛛提取出来的 Item,如数据清洗、验证、存储到数据库等。
  • Downloader(下载器) :负责根据蜘蛛的请求下载网页内容,将下载的页面传递给蜘蛛进行解析。
  • Scheduler(调度器) :用于管理爬取请求的队列,决定下一个要抓取的 URL,实现对爬取任务的调度和管理。

image.png

安装Scrapy

pip install scrapy==2.6.1

创建项目

scrapy startproject a 终端运行这行代码,a是项目名称,当然得指定路径,我认为最方便的方法就是在你的vscode pycharm 上的终端运行,那样默认的就是你代码文件的地址,如果你打开的是cmd,那么就默认的是c盘

前一阵子在准备蓝桥杯,博客有点停滞了,后面会陆续发一些内容,主要是我近期学的一些东西,本人大一,新手小白,请大家多多指教!