查看全课大纲(第 22 / 101 节)
- 1.数据分析基本概念
- 2.学习数据分析的一般路线
- 3.数据分析的流程
- 4.数据类型
- 5.环境部署(1)
- 6.环境部署(2)
- 7.课程介绍
- 8.TXT文件操作
- 9.JSON文件操作
- 10.CSV文件操作
- 11.Excel文件操作
- 12.数据库及SQL常用语法
- 13.数据库基本操作
- 14.数据库多表连接
- 15.实战:欧洲职业足球数据库分析
- 16.爬虫简介
- 17.URL管理模块
- 18.网页下载模块
- 19.网页解析模块(1)
- 20.网页解析模块(2)
- 21.Scrapy简介
- 22.Scrapy使用步骤(1)
- 23.Scrapy使用步骤(2)
- 24.Scrapy使用步骤(3)
- 25.Scrapy使用步骤(4)
- 26.实战:获取国内城市空气质量指数数据
- 27.NumPy和SciPy介绍
- 28.多维数组
- 29.多维数组操作
- 30.NumPy的常用方法
- 31.向量化介绍
- 32.向量化及通用函数
- 33.实战:2016美国大选分析
- 34.数据结构-Series
- 35.数据结构-DataFrame
- 36.数据结构-Index
- 37.Series的索引操作
- 38.DataFrame的索引操作
- 39.索引操作总结
- 40.运算与对齐
- 41.函数应用操作(1) -- map
- 42.函数应用操作 (2) -- apply applymap
- 43.文件读写操作
- 44.排序操作
- 45.数据清洗--处理缺失数据
- 46.数据清洗--处理重复数据
- 47.数据清洗--替换数据
- 48.常用统计方法(1) -- describe quantile
- 49.常用统计方法(2) -- sum mean median count
- 50.常用统计方法(3) -- max min idxmax idxmin
- 51.常用统计方法(4) -- mad var std cumsum
- 52.实战:全球食品数据分析
- 53.层级索引
- 54.分组与聚合介绍
- 55.分组操作(1) -- GroupBy对象及常用聚合操作
- 56.分组操作(2) -- 自定义分组及聚合操作
- 57.透视表介绍
- 58.透视表操作
- 59.数据规整(1) -- 数据合并concat
- 60.数据规整(2) -- 数据连接merge
- 61.数据重构(3) -- 数据重构stack unstack
- 62.实战:互联网电影资料库分析
- 63.探索性数据分析EDA介绍
- 64.EDA的目的
- 65.EDA常用工具
- 66.Matplotlib绘图基本介绍
- 67.Matplotlib画布
- 68.散点图和柱状图的绘制
- 69.直方图的绘制
- 70.矩阵绘图
- 71.子图的使用
- 72.Matplotlib颜色、标记、线型
- 73.Matplotlib坐标刻度、标签、图例、标题
- 74.Seaborn介绍
- 75.数据集分布可视化(1) -- 单变量分布、双变量分布
- 76.数据集分布可视化(2) -- 变量关系可视化
- 77.类别数据可视化 -- 类别散布图、类别内数据分布、类别内统计图
- 78.交互式数据可视化工具Bokeh介绍
- 79.Bokeh绘制散点图、柱状图、盒子图、弦图
- 80.Bokeh绘制常用图形元素
- 81.3D绘图 -- mplot3d
- 82.3D曲线可视化
- 83.3D散点图可视化
- 84.3D柱状图可视化
- 85.Pandas绘图
- 86.实战:Lending Club借贷数据探索性分析及可视化
- 87.机器学习介绍及应用场景
- 88.机器学习建模介绍 (1) -- 分类
- 89.机器学习建模介绍 (2) -- 回归
- 90.机器学习建模介绍 (3) -- 聚类
- 91.机器学习分类
- 92.机器学习工具scikit-learn
- 93.使用scikit-learn的流程
- 94.数据集准备及划分
- 95.模型选择
- 96.数据预处理及特征工程
- 97.过拟合与欠拟合
- 98.模型调参介绍
- 99.模型调参方法
- 100.模型测试及评价
- 101.实战:通过移动设备行为数据预测性别和年龄
Scrapy使用步骤(1)
约 6 分钟
Scrapy 使用步骤(一):框架安装与项目创建
小象实战讲义 · Python数据分析实战
在上一节中,我们了解了Scrapy框架的基本架构和核心组件。从本节开始,我们将正式进入Scrapy的实战学习,一步步掌握如何使用这个强大的框架来构建网络爬虫。作为起点,本节将首先解决Scrapy的安装问题,并学习如何创建一个符合Scrapy规范的爬虫项目,为后续编写爬虫主体代码打下基础。
💡 核心导读
- 安装与验证:学习如何在Anaconda环境中安装Scrapy框架,并使用
scrapy bench命令验证安装是否成功。 - 开发五步法:了解使用Scrapy进行爬虫开发的完整流程,包括创建工程、定义Item、编写Spider、配置Pipeline和执行爬虫。
- 项目创建:掌握使用
scrapy startproject命令创建新项目的方法,理解Scrapy项目默认的目录结构及其作用。 - 目录结构解析:熟悉新创建的Scrapy项目中各主要文件和文件夹的功能,如
items.py、pipelines.py、settings.py和spiders/目录。
1. Scrapy框架的安装与验证
Scrapy是一个功能强大且独立的网络爬虫框架。与Pandas、NumPy等库不同,它没有集成在Anaconda的默认发行版中,需要我们手动安装。
1.1 安装命令
在已安装Anaconda的环境下,可以通过以下命令安装Scrapy:
# 注意:此命令为演示目的,实际安装请在命令行中执行
# 讲义环境已锁定,不包含scrapy,此处仅作语法展示
# 实际安装命令:conda install -c conda-forge scrapy
print("安装命令:conda install -c conda-forge scrapy")安装命令:conda install -c conda-forge scrapy这条命令通过conda-forge频道安装Scrapy。如果你已经按照课程要求成功安装了Anaconda,那么执行此命令安装Scrapy通常不会遇到问题。
1.2 验证安装
安装完成后,我们需要验证Scrapy是否安装成功。Scrapy提供了一个简单的基准测试命令scrapy bench。
# 注意:此命令为演示目的,实际验证请在命令行中执行
# 讲义环境已锁定,不包含scrapy,此处仅作语法展示
# 实际验证命令:scrapy bench
print("验证命令:scrapy bench")
print("如果安装成功,命令行会启动一个本地测试服务器并显示爬取状态,无报错信息。")验证命令:scrapy bench
如果安装成功,命令行会启动一个本地测试服务器并显示爬取状态,无报错信息。运行scrapy bench后,它会启动一个本地测试服务器并尝试进行爬取。即使它没有实际爬取到任何数据(显示爬取了0个item),但只要命令行没有抛出任何错误信息,就说明Scrapy框架本身已经正确安装并可以正常运行了。
2. Scrapy爬虫开发五步法
在使用Scrapy进行开发时,通常遵循一个清晰的五步流程。理解这个流程有助于我们建立对Scrapy项目开发的整体认知。
- 创建工程:Scrapy是一个框架,创建项目时必须遵循其规定的目录结构和文件组织规则。
- 定义Item(可选):Item用于构造和封装爬取到的数据对象。你可以选择将数据封装在一个Item类中,也可以使用自定义的字典或列表来存储。这一步是可选的。
- 编写Spider:这是爬虫的核心主体。在这里,你需要定义起始URL、如何跟踪链接、以及如何解析网页内容以提取所需数据。
- 编写与配置Pipeline(可选):Pipeline用于处理爬取后的结果。例如,进行数据清洗、验证、去重,或者将数据保存到文件、数据库等。这一步也是可选的。
- 执行爬虫:将前面编写好的代码整合起来,执行爬虫命令,Scrapy框架便会自动完成网页下载、解析、数据处理等一系列操作。
核心要点:第二步和第四步(Item和Pipeline)是可选的。对于简单的爬虫任务,你可以直接在Spider中解析并保存数据。但对于结构复杂或需要后续处理的项目,使用Item和Pipeline能使代码更清晰、更易于维护。
3. 创建Scrapy工程
安装好Scrapy后,我们就可以使用它提供的命令行工具来创建第一个爬虫项目了。
3.1 创建命令
创建Scrapy项目的命令格式如下:
# 注意:此命令为演示目的,实际创建请在命令行中执行
# 讲义环境已锁定,不包含scrapy,此处仅作语法展示
# scrapy startproject <project_name>
print("创建项目命令:scrapy startproject tutorial")
print("其中 'tutorial' 是项目名称,可以替换为任意你喜欢的名字,如 'my_spider', 'test_project' 等。")创建项目命令:scrapy startproject tutorial
其中 'tutorial' 是项目名称,可以替换为任意你喜欢的名字,如 'my_spider', 'test_project' 等。scrapy startproject是Scrapy框架自带的固定命令。- 第三个参数是你的项目名称,例如示例中的
tutorial。你可以将其改为任何合法的名称,如my_first_spider。
3.2 项目目录结构解析
执行创建命令后,Scrapy会在当前目录下生成一个以项目名命名的文件夹,其中包含了一套预设好的文件和目录结构。
假设我们在命令行中执行了 scrapy startproject tutorial2,将会生成如下结构(此处用文本模拟):
tutorial2/
├── scrapy.cfg # 项目部署配置文件
└── tutorial2/ # 项目Python模块
├── __init__.py
├── items.py # 定义Item数据结构
├── middlewares.py # 项目中间件定义(高级用法)
├── pipelines.py # 定义数据处理Pipeline
├── settings.py # 项目配置文件
└── spiders/ # 存放Spider代码的目录
├── __init__.py
└── ... # 后续创建的Spider文件将放在这里各主要文件/目录功能说明:
items.py:用于定义爬取的数据结构。你可以在这里创建Item类,规定要爬取的每个数据项有哪些字段(如标题、链接、发布时间等)。pipelines.py:用于编写数据处理管道。爬虫解析出的Item对象会依次通过这里定义的管道,进行清洗、验证、存储等操作。settings.py:项目的全局配置文件。可以在这里设置并发请求数、下载延迟、User-Agent、启用哪些Pipeline等。spiders/目录:这是放置爬虫主体代码的地方。我们后续编写的每一个Spider类,都会以独立的Python文件形式创建在这个目录下。创建项目时,这个目录是空的。scrapy.cfg:通常用于将项目部署到Scrapyd(一个用于运行Scrapy爬虫的服务)时的配置。
创建成功后,命令行通常会给出提示,并告诉你下一步可以输入 cd tutorial2 进入项目目录,然后使用 scrapy genspider 命令来生成一个Spider模板(这将在下一节详细讲解)。
📝 动手练一练
- 概念辨析:Scrapy开发流程中的“定义Item”和“配置Pipeline”步骤被标记为“可选”。请结合你的理解,简述在什么情况下你会选择使用它们?在什么简单的场景下可能暂时不用?
👉 点击查看参考答案
参考答案:
- 使用Item和Pipeline的场景:当爬取的数据结构复杂、字段多且固定时,使用Item类能使数据结构更清晰、易于管理和类型检查。当需要对爬取的数据进行一系列标准化处理(如清洗、去重、格式转换)或存储到特定介质(数据库、JSON文件)时,使用Pipeline可以将处理逻辑模块化,使Spider代码更专注于解析。
- 暂时不用的简单场景:对于一次性、结构极其简单(如只爬取一个标题)的爬虫,或者快速原型验证时,可以直接在Spider的解析函数中将数据打印出来或保存到一个简单的字典/列表中,跳过Item和Pipeline以快速实现功能。
- 流程推演:如果我们在
/home/user/projects目录下执行了scrapy startproject news_crawler命令。请描述命令执行后: a) 系统会在哪个路径下创建什么文件夹? b) 我们接下来应该使用什么命令进入项目根目录? c) 我们将在哪个子目录下创建第一个爬虫文件?
👉 点击查看参考答案
参考答案: a) 系统会在 /home/user/projects 目录下创建一个名为 news_crawler 的文件夹。 b) 接下来应该使用命令:cd news_crawler c) 我们将在 news_crawler/spiders/ 这个子目录下创建第一个爬虫文件(实际是通过在项目根目录运行 scrapy genspider 命令自动生成)。
本章小结
本节我们迈出了使用Scrapy框架的第一步。我们首先学习了如何在Anaconda环境中安装Scrapy,并通过 scrapy bench 命令验证安装。接着,我们掌握了Scrapy爬虫开发的完整五步流程,从宏观上理解了各环节的职责。最后,我们重点实践了使用 scrapy startproject 命令创建新项目,并详细解析了Scrapy项目默认的目录结构,明确了 items.py、pipelines.py、settings.py 以及最重要的 spiders/ 目录各自的作用。
📋 行动清单
学完本节,你可以立即:
- 在你的本地Anaconda环境中,尝试执行
conda install -c conda-forge scrapy来安装Scrapy框架。 - 在命令行中运行
scrapy bench,观察输出,确认框架安装成功(无报错)。 - 使用
scrapy startproject命令创建一个练习用的项目(例如my_practice),并浏览其生成的目录结构,对照讲义理解每个文件的作用。
—— 小象教研组
配套资料 · 直接下载
课件、代码、数据集等配套资料全部免费,点击即可直接下载,无需分享或解锁。
- 下载本节课件:Scrapy使用步骤(1)PDF · 173KB
- 下载全套课件打包(第1-5章)ZIP · 12.8MB
- 下载全套课件打包(第6-8章)ZIP · 15MB
- 下载实战数据集:AppleStore 应用商城分析ZIP · 329KB
- 下载实战数据集:女性服装电商分析ZIP · 2.8MB
- 下载Python 数据分析环境搭建指南PDF · 2MB
- 下载Scrapy 安装教程PDF · 12.7MB
- 下载附加实战项目:AppleStore 应用商城数据分析ZIP · 0.3MB · ipynb + CSV 数据
- 下载附加实战项目:银行电话营销数据分析ZIP · 0.4MB · ipynb + CSV 数据
- 下载附加实战项目:女性服装电商评论数据分析ZIP · 2.7MB · ipynb + CSV 数据
- 下载附加实战项目:美国化学学会杂志数据分析ZIP · 34.2MB · ipynb + SQLite 数据库