Scrapy 爬虫框架(一)

简介: Scrapy 爬虫框架(一)

Scrapy 爬虫框架
1. 概述
Scrapy是一个可以爬取网站数据,为了提取结构性数据而编写的开源框架。Scrapy的用途非常广泛,不仅可以应用到网络爬虫中,还可以用于数据挖掘、数据监测以及自动化测试等。Scrapy是基于Twisted的异步处理框架,架构清晰、可扩展性强,可以灵活完成各种需求。

在Scrapy的工作流程中主要包括以下几个部分:

§ Scrapy Engine(框架的引擎):用于处理整个系统的数据流,触发各种事件,是整个框架的核心。

§ Scheduler(调度器):用于接收引擎发过来的请求,添加至队列中,在引擎再次请求时将请求返回给引擎。可以理解为从URL队列中取出一个请求地址,同时去除重复的请求地址。

§ Downloader(下载器):用于从网络下载Web资源。

§ Spiders(网络爬虫):从指定网页中爬取需要的信息。

§ Item Pipline(项目管道):用于处理爬取后的数据,例如数据的清洗、验证以及保存。

§ Downloader Middlewares(下载器中间件):位于Scrapy引擎和下载器之间,主要用于处理 引擎与下载器之间的网络请求与响应。

§ Spider Middlewares(爬虫中间件):位于爬虫与引擎之间,主要用于处理爬虫的响应输入和请求输出。

§ Scheduler Middlewares(调度中间件):位于引擎和调度之间,主要用于处理从引擎发送到调度的请求和响应。

2. 搭建Scrapy爬虫框架
本人的系统环境是macOS,第三方开发工具PyCharm,在terminal下输入命令"pip install scrapy"。

liuxiaowei@MacBookAir spiders % pip install scrapy

说 明

Scrapy框架在安装的过程中,同时会将lxml与pyOpenSSL模块也安装在Python环境当中。
3. Scrapy的基本应用
3.1 创建Scrapy项目
在指定(也可以是任意路径)的路径下创建一个保存项目的文件夹,例如,在“/Users/liuxiaowei/PycharmProjects/爬虫练习/Scrapy爬虫框架“内运行命令行窗口,然后输入”scrapy startproject scrapyDemo“,即可创建一个名称为”scrapyDemo“的项目,如下所示:

(venv) liuxiaowei@MacBookAir Scrapy爬虫框架 % scrapy startproject scrapyDemo
New Scrapy project 'scrapyDemo', using template directory '/Users/liuxiaowei/PycharmProjects/爬虫练习/venv/lib/python3.9/site-packages/scrapy/templates/project', created in:
    /Users/liuxiaowei/PycharmProjects/爬虫练习/Scrapy爬虫框架/scrapyDemo

You can start your first spider with:
    cd scrapyDemo
    scrapy genspider example example.com

打开刚刚创建的scrapyDemo项目,项目打开以后,在左侧项目的目录结构中可以看到如下图所示的目录结构:

image.png

目录结构中的文件说明如下:

§ spiders(文件夹):用于创建爬虫文件,编写爬虫规则。

§ init 文件:初始化文件。

§ items文件:用于数据的定义,可以寄存处理后的数据。

§ middlerwares文件:定义爬取时的中间件,其中包括SpiderMiddleware(爬虫中间件)、DownloaderMiddleware(下载中间件)

§ pipelines文件:用于实现清洗数据、验证数据、保存数据。

§ settings文件:整个框架的配置文件,主要包含配置爬虫信息,请求头、中间件等。

§ scrapy.cfg文件:项目部署文件,其中定义了项目等配置文件路径等相关信息。

接下文 Scrapy 爬虫框架(二)https://developer.aliyun.com/article/1618013

相关文章
|
1月前
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
105 6
|
2月前
|
数据采集 中间件 开发者
Scrapy爬虫框架-自定义中间件
Scrapy爬虫框架-自定义中间件
58 1
|
2月前
|
数据采集 中间件 Python
Scrapy爬虫框架-通过Cookies模拟自动登录
Scrapy爬虫框架-通过Cookies模拟自动登录
111 0
|
1月前
|
数据采集 前端开发 中间件
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第26天】Python是一种强大的编程语言,在数据抓取和网络爬虫领域应用广泛。Scrapy作为高效灵活的爬虫框架,为开发者提供了强大的工具集。本文通过实战案例,详细解析Scrapy框架的应用与技巧,并附上示例代码。文章介绍了Scrapy的基本概念、创建项目、编写简单爬虫、高级特性和技巧等内容。
77 4
|
1月前
|
数据采集 中间件 API
在Scrapy爬虫中应用Crawlera进行反爬虫策略
在Scrapy爬虫中应用Crawlera进行反爬虫策略
|
2月前
|
数据采集 XML 前端开发
Scrapy 爬虫框架(二)
Scrapy 爬虫框架(二)
50 0
|
4月前
|
数据采集 中间件 调度
Scrapy 爬虫框架的基本使用
Scrapy 爬虫框架的基本使用
|
4月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
215 4
|
4月前
|
数据采集 存储 搜索推荐
打造个性化网页爬虫:从零开始的Python教程
【8月更文挑战第31天】在数字信息的海洋中,网页爬虫是一艘能够自动搜集网络数据的神奇船只。本文将引导你启航,用Python语言建造属于你自己的网页爬虫。我们将一起探索如何从无到有,一步步构建一个能够抓取、解析并存储网页数据的基础爬虫。文章不仅分享代码,更带你理解背后的逻辑,让你能在遇到问题时自行找到解决方案。无论你是编程新手还是有一定基础的开发者,这篇文章都会为你打开一扇通往数据世界的新窗。
|
5月前
|
数据采集 存储 JSON
从零到一构建网络爬虫帝国:HTTP协议+Python requests库深度解析
【7月更文挑战第31天】在网络数据的海洋中,使用Python的`requests`库构建网络爬虫就像探索未知的航船。HTTP协议指导爬虫与服务器交流,收集信息。HTTP请求包括请求行、头和体,响应则含状态行、头和体。`requests`简化了发送各种HTTP请求的过程。
95 4