Python爬虫学习实验5——Scrapy

1、进阶学习(由进行目标路由爬取信息,转变成工程化爬取)

2、Scrapy 简介

  • Scrapy 是一个用于提取网页数据的快速、高效的爬虫框架。它提供了强大的功能和灵活的配置,使得爬虫开发更加系统化和工程化。
  • Scrapy 的设计理念是将爬虫任务拆分成若干独立的组件,每个组件负责不同的任务,通过管道将这些组件连接起来,完成整个爬虫任务。

面试考点:

1.引擎向spider要url

2.引擎将要爬取的url给调度器

3.调度器会将url生成请求对象放入到指定的队列中

4.从队列中出队一个请求

5.引擎将请求交给下载器进行处理

6.下载器发送请求获取互联网数据

7.下载器将数据返回给引擎

8.引擎将数据再次给到spiders

9.spiders通过xpath解析该数据,得到数据或者url

10.spiders将数据或者url给到引擎

11.引擎判断是数据还是url,是数据,交给管道(item pipeline)处理;是url,交给调度器处理

3、Scrapy 的特点

模块化设计:Scrapy 将爬虫任务分解成多个独立的模块,每个模块负责特定的任务,如请求调度、数据提取、数据存储等。

高效的异步处理:Scrapy 使用 Twisted 框架实现异步网络请求,提高了爬虫的效率和速度。

强大的数据提取:Scrapy 提供了强大的选择器(如 XPath、CSS 选择器),方便从网页中提取所需数据。

灵活的配置:Scrapy 支持多种配置方式,可以根据需求灵活调整爬虫的行为。

4、Scrapy 的工作流程

Requests (请求)

爬虫(Spider)生成初始的请求(Requests)并将其提交给引擎(Engine)。 这些请求包括需要爬取的 URL 以及如何处理响应(Response)的回调函数。

Scheduler (调度器)

引擎将请求传递给调度器(Scheduler)。

调度器负责管理这些请求,并按优先级将其排列,等待处理。

Requests (请求)

调度器将请求交回给引擎,按顺序处理。

Downloader Middleware (下载中间件)

请求经过下载中间件(Downloader Middleware)进行预处理。

下载中间件可以在请求发送前添加、修改请求头等操作。

Downloader (下载器)

引擎将请求发送给下载器(Downloader),下载器负责向目标网站发送 HTTP 请求并获取响应。 下载器将响应返回给引擎。

Response (响应)

响应经过下载中间件进行后处理,然后返回给引擎。 引擎将响应发送给爬虫进行处理。

Spiders (爬虫)

爬虫接收到响应后,使用预先定义的回调函数解析响应,提取数据或生成新的请求。 解析后的数据可以直接生成 Items,新的请求会返回给引擎继续处理。

Item Pipelines (项目管道)

爬虫生成的 Items 通过引擎传递给项目管道(Item Pipelines)。 项目管道负责处理、清洗、验证、存储这些 Items。

5、Scrapy 的核心组件

在深入学习如何使用 Scrapy 之前,我们先了解一下 Scrapy 的核心组件。

3.1 Spider

Spider 是 Scrapy 中最核心的组件,负责定义爬取逻辑和数据提取规则。每个 Spider 都是一个独立的类,继承自 scrapy.Spider,并实现一些关键的方法,如 start_requests 和 parse。

3.2 Item

Item 是用来定义抓取的数据结构的类。它类似于数据库中的表结构,用于存储爬取到的数据。

3.3 Item Pipeline

Item Pipeline 用于处理和存储抓取到的数据。它是一个独立的模块,负责对 Item 进行处理,例如清洗数据、验证数据和将数据存储到数据库中。

3.4 Selector

Selector 是 Scrapy 提供的数据提取工具,用于从 HTML 或 XML 文档中提取数据。Selector 支持 XPath 和 CSS 选择器两种方式。

3.5 Downloader Middleware

Downloader Middleware 是 Scrapy 中用于处理请求和响应的中间件。它可以在请求发送之前和响应到达之后进行处理,例如添加请求头、处理重定向等。

3.6 Scheduler

Scheduler 是 Scrapy 中用于管理请求队列的组件。它负责将请求添加到队列中,并按照一定的顺序发送请求。

3.7 Engine

Engine 是 Scrapy 的核心引擎,负责协调 Spider、Scheduler、Downloader 和 Item Pipeline 之间的工作流。

 6、基本四个步骤

新建项目 (scrapy startproject xxx):新建一个新的爬虫项目

明确目标 (编写items.py):明确你想要抓取的目标

制作爬虫 (spiders/xxspider.py):制作爬虫开始爬取网页

存储内容 (pipelines.py):设计管道存储爬取内容

7、认识文件 

mySpider/

scrapy.cfg

mySpider/

__init__.py

items.py

pipelines.py

settings.py

spiders/

__init__.py

...

scrapy.cfg: 项目的配置文件。

mySpider/: 项目的Python模块,将会从这里引用代码。

mySpider/items.py: 项目的目标文件。

mySpider/pipelines.py: 项目的管道文件。

mySpider/settings.py: 项目的设置文件。

mySpider/spiders/: 存储爬虫代码目录。

8、pycharm安装scrapy遇到的问题及解决

pycharm安装scrapy包时,遇到“超时”(time out),所以我决定将源改成国内源,又快又好使。

仅需两行代码:

pip install --upgrade pip

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值