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
安装完成后输入scrapy命令验证:
scrapy
2) 在存放爬虫项目的目录下创建爬虫项目:
scrapy startproject ScrapyDemo
CMD切换操作:
F: # 切盘
cd A/B/... # 切换目录
该命令会在当前目录下生成Scrapy项目:
3) 使用PyCharm打开创建的项目,初始项目结构如下:
2.2、PyCharm搭建Scrapy环境
1) 新建爬虫项目目录
方式1:使用PyCharm打开本地存放爬虫项目的文件夹(删除main.py
)
方式2:在已有项目中新建存放爬虫项目的目录
2) 打开Terminal终端,安装Scrapy:
pip install scrapy
3) 在Terminal终端创建爬虫项目(方式2需要cd到该目录下):
scrapy startproject ScrapyDemo
该命令会在当前目录下生成Scrapy项目,项目初始结构与CMD模式下相同
2.3、Scrapy项目结构
无论使用哪种方式搭建,最重要的是爬虫,因此,爬虫文件不可或缺文章来源:https://www.toymoban.com/news/detail-726420.html
4) 在spiders文件夹下创建核心爬虫文件(可自定义):文章来源地址https://www.toymoban.com/news/detail-726420.html
到了这里,关于PyCharm搭建Scrapy环境的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!