• PyCharm搭建Scrapy环境




    1、Scrapy概述

    1.1、Scrapy简介

    Scrapy是一个基于Python的开源网络爬虫框架,用于从网页中提取数据。它提供了一套高效、灵活和可扩展的工具,可以帮助开发者快速构建和部署爬虫程序

    Scrapy是一个由Python语言开发的适用爬取网站数据、提取结构性数据的Web应用程序框架。主要用于数据挖掘、信息处理、数据存储和自动化测试等。通过Scrapy框架实现一个爬虫,只需要少量的代码,就能够快速的网络抓取

    Scrapy基于Twisted,Twisted是一个异步网络框架,主要用于提高爬虫的下载速度。Scrapy使用Twisted异步网络库来处理网络通讯,架构清晰,并且包含了各种中间件接口,可以灵活的完成各种需求。Scrapy使用的是非堵塞的异步处理

    Scrapy框架具有以下特点:

    • 高性能:Scrapy 采用异步的网络请求和处理机制,能够高效地处理大规模的网页抓取任务

    • 可配置性:Scrapy提供了丰富的配置选项,可以通过配置文件或代码灵活地设置爬虫的行为,包括请求头、请求间隔、并发数等

    • XPath和CSS选择器:Scrapy内置了强大的选择器,支持使用XPath和CSS选择器来定位和提取网页中的数据

    • 中间件和扩展:Scrapy提供了中间件和扩展机制,开发者可以通过编写中间件和扩展来自定义和扩展框架的功能,例如自定义请求处理、数据处理、错误处理等

    • 分布式支持:Scrapy可以与分布式任务队列(如Celery)结合使用,实现分布式爬取和数据处理

    • 数据存储:Scrapy支持将爬取到的数据存储到各种数据存储系统,包括文件、数据库(如MySQL、PostgreSQL)和NoSQL数据库(如MongoDB)等

    • 日志和调试:Scrapy提供了强大的日志和调试功能,可以帮助开发者进行爬虫的调试和错误排查

    1.2、Scrapy架构原理

    Scrapy框架5大组件(架构):

    在这里插入图片描述

    • Scrapy引擎(Scrapy Engine):Scrapy引擎是整个框架的核心,负责Spider、ItemPipeline、Downloader、Scheduler间的通讯、数据传递等
    • 调度器(Scheduler):网页URL的优先队列,主要负责处理引擎发送的请求,并按一定方式排列调度,当引擎需要时,交还给引擎
    • 下载器(Downloader):负责下载引擎发送的所有Requests请求资源,并将其获取到的Responses交还给引擎,由引擎交给Spider来处理
    • 爬虫(Spider):用户定制的爬虫,用于从特定网页中提取信息(实体Item),负责处理所有Responses,从中提取数据,并将需要跟进的URL提交给引擎,再次进入调度器
    • 实体管道(Item Pipeline):用于处理Spider中获取的实体,并进行后期处理(详细分析、过滤、持久化存储等)

    其他组件:

    • 下载中间件(Downloader Middlewares):一个可以自定义扩展下载功能的组件
    • Spider中间件(Spider Middlewares):一个可以自定扩展和操作引擎和Spider间通信的组件

    Scrapy的爬取流程为:

    • 引擎从调度器中取出一个链接(URL)用于接下来的抓取
    • 引擎把URL封装成一个请求(Request)传给下载器
    • 下载器把资源下载下来,并封装成应答包(Response)
    • 爬虫解析Response
    • 解析出的实体(Item),交给实体管道进行进一步的处理
    • 解析出的链接(URL),交给调度器等待抓取

    Scrapy官网:https://docs.scrapy.org

    入门文档:https://doc.scrapy.org/en/latest/intro/tutorial.html

    Scrapy中文文档:https://www.osgeo.cn/scrapy/

    2、Scrapy环境搭建

    2.1、CMD搭建Scrapy环境

    1) CMD命令行安装Scrapy:

    pip install scrapy
    
    • 1

    在这里插入图片描述

    安装完成后输入scrapy命令验证:

    scrapy
    
    • 1

    在这里插入图片描述

    2) 在存放爬虫项目的目录下创建爬虫项目:

    scrapy startproject ScrapyDemo
    
    • 1

    CMD切换操作:

    F:            # 切盘
    cd A/B/...    # 切换目录
    
    • 1
    • 2

    在这里插入图片描述

    该命令会在当前目录下生成Scrapy项目:

    在这里插入图片描述

    3) 使用PyCharm打开创建的项目,初始项目结构如下:

    在这里插入图片描述

    2.2、PyCharm搭建Scrapy环境

    1) 新建爬虫项目目录

    方式1:使用PyCharm打开本地存放爬虫项目的文件夹(删除main.py

    方式2:在已有项目中新建存放爬虫项目的目录

    2) 打开Terminal终端,安装Scrapy:

    pip install scrapy
    
    • 1

    在这里插入图片描述

    3) 在Terminal终端创建爬虫项目(方式2需要cd到该目录下):

    scrapy startproject ScrapyDemo
    
    • 1

    在这里插入图片描述

    该命令会在当前目录下生成Scrapy项目,项目初始结构与CMD模式下相同

    2.3、Scrapy项目结构

    无论使用哪种方式搭建,最重要的是爬虫,因此,爬虫文件不可或缺

    4) 在spiders文件夹下创建核心爬虫文件(可自定义):

  • 相关阅读:
    MySQL中六大约束详细解析
    14:00面试,14:06就出来了,问的问题有点变态。。。
    她从家乡自贡起步,努力奋斗进京任职
    9. xaml ComboBox控件
    《HTML基础学习》
    DOM节点类型
    tomcat下载安装配置教程
    InnoDB之redo log写入和恢复
    算法---矩阵中战斗力最弱的 K 行(Kotlin)
    Studying-代码随想录训练营day62| Floyd 算法精讲、A*算法精讲(A star算法)、最短路算法总结篇、图论总结
  • 原文地址:https://blog.csdn.net/weixin_55629186/article/details/133696749