这篇文章才是学习scrapy高效爬虫框架的正确姿势

本文详细介绍了Scrapy爬虫框架的安装、项目创建、爬虫程序编写、数据解析及保存、Scrapy Shell使用、模板CrawlSpider的运用、POST登陆方法、内置下载方法,包括Files Pipeline和Images Pipeline,并探讨了下载器中间件的设置,为Python爬虫学习者提供了全面的实践指导。
摘要由CSDN通过智能技术生成

絮叨一下

Scrapy 是一套基于基于Twisted的异步处理框架,纯python实现的爬虫框架,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常方便

Scrapt五大基本构成

在这里插入图片描述

  • Scrapy框架主要由五大组件组成,它们分别是调度器(Scheduler)、下载器(Downloader)、爬虫(Spider)和实体管道(Item
    Pipeline)、Scrapy引擎(Scrapy Engine)。下面我们分别介绍各个组件的作用。

  • (1)、调度器(Scheduler):

调度器,说白了把它假设成为一个URL(抓取网页的网址或者说是链接)的优先队列,由它来决定下一个要抓取的网址是
什么,同时去除重复的网址(不做无用功)。用户可以自己的需求定制调度器。

  • (2)、下载器(Downloader):

下载器,是所有组件中负担最大的,它用于高速地下载网络上的资源。Scrapy的下载器代码不会太复杂,但效率高,主要的原因是Scrapy下载器是建立在twisted这个高效的异步模型上的(其实整个框架都在建立在这个模型上的)。

  • (3)、 爬虫(Spider):

爬虫,是用户最关心的部份。用户定制自己的爬虫(通过定制正则表达式等语法),用于从特定的网页中提取自己需要的信息,即所谓的实体(Item)。
用户也可以从中提取出链接,让Scrapy继续抓取下一个页面。

  • (4)、 实体管道(Item Pipeline):

实体管道,用于处理爬虫(spider)提取的实体。主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。

  • (5)、Scrapy引擎(Scrapy Engine):

Scrapy引擎是整个框架的核心.它用来控制调试器、下载器、爬虫。实际上,引擎相当于计算机的CPU,它控制着整个流程。

如果还是不明白看一下csdn大佬整理的图
在这里插入图片描述

1.安装

  • linux下安装:pip install scrapy

    安装一些依赖的文件sudo apt-get install python-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev
    如果报错:说error: command 'x86_64-linux-gnu-gcc' failed with exit objectstatus 1

    那就输入命令:sudo apt-get install python3.8-dev

  • Windows安装:pip install scrapy

    安装一些依赖的文件pip install pypiwin32

2.新建项目

  • 新建项目首先需要使用cd 切换进你想要存放的目录中然后输入:

    scrapy startproject 项目名
    在这里插入图片描述

3.新建爬虫程序

  • scrapy genspider 爬虫名 爬虫的域名 注意不可以使用跟项目名重名

在这里插入图片描述

4.项目目录结构

  • items.py: 用来存放爬虫爬下来的数据的模型

      # 比如作者,以及内容
      import scrapy
      class ZonghengItem(scrapy.Item):
          name = scrapy.Field()
          time = scrapy.Field()
          type = scrapy.Field()
          introduction = scrapy.Field()
    
  • middlewares.py: 用来存放各种中间件的文件

  • pipelines.py: 将items的模型存储在本地磁盘中

    • 这里面有三个函数

      使用的时候需要取消掉settings.py中的

       ITEM_PIPELINES = {
             
       'qsbk.pipelines.QsbkPipeline': 300,
        }
      
        # 用来处理获取的item数据
        def process_item(self, item, spider
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Artisan_C

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

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

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

打赏作者

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

抵扣说明:

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

余额充值