Scrapy: 一个强大的 Python 爬虫框架--介绍--下载--启动!!

Scrapy是一个流行的Python爬虫框架,具有高性能、可定制性和分布式支持等特点。其架构包括引擎、调度器、下载器、爬虫和管道组件,以及多个中间件接口。文章介绍了Scrapy的安装、项目创建、爬虫编写和运行流程,展示了其在数据抓取领域的广泛应用。
摘要由CSDN通过智能技术生成

目录

Scrapy

影响力

介绍

        主要特点

 架构

 运行流程

基本使用

安装

 创建 Scrapy 项目

创建爬虫 

爬虫包含的内容

 运行爬虫


Scrapy

影响力

作为目前爬虫主流框架之一,Scrapy的影响力和应用范围非常广泛:

注:该段内容为Bing AI创作

介绍

 Scrapy 是一个基于 Twisted 框架用于抓取网站和提取结构化数据的开源网络爬虫框架,可用于各种有用的应用程序,如数据挖掘、信息处理或历史存档,它的设计目标是快速、高效、可扩展和可定制。Scrapy 提供了一个整合了请求、处理和存储流程的机制,使得开发者可以专注于数据提取和处理的逻辑,而无需过多关注底层细节。

主要特点

  1. 高性能:Scrapy 使用异步处理和多线程机制,能够高效地处理大规模的数据抓取任务。

  2. 可定制性:Scrapy 提供了丰富的扩展接口,允许开发者根据自己的需求进行定制和扩展。

  3. 分布式支持:Scrapy 支持分布式爬取,可以利用多台机器并行抓取数据,提高效率。

  4. 调度器:Scrapy 内置了一个调度器,能够自动管理请求的优先级和并发量,确保爬虫的稳定和高效。

  5. 中间件:Scrapy 提供了丰富的中间件接口,可以对请求和响应进行预处理和后处理,实现代理、用户代理等功能。

  6. 数据处理:Scrapy 提供了方便的机制来处理爬取的数据,可以进行清洗、转换和存储。

 架构

最简单的单个网页爬取流程是 spiders > scheduler > downloader > spiders > item pipeline

省略了engine环节! 

中英文对照表
引擎Engine
调度器Scheduler
下载器Downloader
爬虫Spider
管道Pipeline
中间件Middleware

别问,问就是英语不好。 

Scrapy的架构是一个基于事件驱动的框架,它主要由以下五大组件组成:

  • 引擎(engine)

    • 用来处理整个系统的数据流处理, 触发事务(框架核心)
  • 调度器(Scheduler)

    • 用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址
  • 下载器(Downloader)

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

    • 爬虫是主要干活的, 用于从特定的网页中提取自己需要的信息, 即所谓的实体(Item)。用户也可以从中提取出链接,让Scrapy继续抓取下一个页面
  • 项目管道(Pipeline)

    • 负责处理爬虫从网页中抽取的实体,主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。当页面被爬虫解析后,将被发送到项目管道,并经过几个特定的次序处理数据。

除了这五大组件,Scrapy还有三个中间件管理器类:

  • 下载器中间件(Downloader Middlewares)

    • 位于Scrapy引擎和下载器之间的框架,主要是处理Scrapy引擎与下载器之间的请求及响应
  • 爬虫中间件(Spider Middlewares)

    • 介于Scrapy引擎和爬虫之间的框架,主要工作是处理蜘蛛的响应输入和请求输出
  • 调度中间件(Scheduler Middewares)

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

 运行流程

自己看上面那个图吧。

基本使用

安装

在命令行或者终端中输入:

pip install scrapy

但是这样子有时候会报错,版本不匹配。

解决方案如下:

使用清华的镜像:

Windows:打开cmd,输入 :

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scrapy

Mac:打开终端,输入:

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple scrapy 

 创建 Scrapy 项目

在命令行中执行以下命令,创建一个新的 Scrapy 项目:

scrapy startproject myfrist(project_name)

会生成一个文件夹里面很多文件: 

名称作用
scrapy.cfg项目的配置信息,主要为Scrapy命令行工具提供一个基础的配置信息。(真正爬虫相关的配置信息在settings.py文件中)
items.py设置数据存储模板,用于结构化数据,如:Django的Model
pipelines数据处理行为,如:一般结构化的数据持久化
settings.py配置文件,如:递归的层数、并发数,延迟下载等
spiders爬虫目录,如:创建文件,编写爬虫规则

创建爬虫 

scrapy genspider 爬虫名 爬虫的地址

注意:

一般创建爬虫文件时,以网站域名命名

爬虫包含的内容
  • name: 它定义了蜘蛛的唯一名称
  • allowed_domains: 它包含了蜘蛛抓取的基本URL;
  • start-urls: 蜘蛛开始爬行的URL列表;
  • parse(): 这是提取并解析刮下数据的方法;

代码

import scrapy


class XimalayaSpider(scrapy.Spider):
    name = "ximalaya"
    allowed_domains = ["ximalaya.com"]
    start_urls = ["https://www.ximalaya.com"]

    def parse(self, response):
        print(11111111111111111)

 运行爬虫

在命令行中执行以下命令,运行我们的爬虫:

scrapy crawl myspider

Scrapy 将会按照我们定义的规则进行网页抓取和数据提取,并将结果输出到控制台或存储到指定的文件中。

---------------------------------------------------------------------------------------- 

声明: 此文章为原创作品,辅助创作工具为chatGPT-3.5和Bing AI。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我还可以熬_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值