MapFlow

PUBLIC LEARNING ROADMAP

爬虫工程师+后端开发者的数据链路项目 学习技能树

由 Skill Tree Engine 确定性生成的只读快照

25 个知识节点 · intermediate

发布者:qwx

知识目录

基础概念

Python基础语法与数据结构

从C语言视角快速掌握Python列表/字典/元组、控制流与函数,是整条链路的语法地基

建议预留 60 分钟

学习目标

  • 掌握Python与C语法差异的快速迁移
  • 熟练使用列表/字典/元组操控数据

关键概念

  • 数据类型
  • 控制流
  • 函数定义

为什么学习

  • 该节点是全部后续代码的地基,需从C视角迁移并熟练写出可运行脚本

如何检验理解

  • 能独立用列表/字典写出一个处理结构化数据的脚本并运行通过

补充知识

前端HTML/CSS/JS基础

掌握HTML/CSS/JavaScript基础,能搭建简单静态数据展示页面

建议预留 60 分钟

学习目标

  • 掌握HTML/CSS页面结构
  • 会写基础JavaScript交互

关键概念

  • HTML标签
  • CSS样式
  • JavaScript

为什么学习

  • 目标要求带简单前端展示界面,掌握基础HTML/CSS/JS搭建简单页面即可

如何检验理解

  • 能编写一个含列表与样式的静态HTML页面并嵌入简单JS

基础概念

Linux基础操作

掌握命令行、文件权限、进程管理等操作,用于云服务器运行服务

建议预留 60 分钟

学习目标

  • 掌握常用Linux命令
  • 理解文件权限与进程管理

关键概念

  • shell命令
  • 文件权限
  • 进程管理

为什么学习

  • 云服务器部署的基础,需熟练使用命令行管理文件与进程

如何检验理解

  • 能通过命令行完成文件管理、权限修改与进程启停

补充知识

Git版本管理

使用Git管理代码版本,掌握提交、分支、回滚,保障项目可维护

建议预留 45 分钟

学习目标

  • 掌握git常用命令
  • 理解提交与分支机制

关键概念

  • git提交
  • 分支
  • 回滚

为什么学习

  • 独立项目需要版本管理,掌握提交/分支/回滚等基础操作即可

如何检验理解

  • 能对项目完成git提交、建分支与版本回滚

核心技能

Python面向对象与模块化

类/对象/模块导入,类比C语言结构体与头文件封装,为组织爬虫与API代码结构打基础

建议预留 60 分钟

学习目标

  • 掌握类、对象、继承与封装
  • 学会模块组织与包管理

关键概念

  • 类与对象
  • 模块导入
  • 包结构

为什么学习

  • 独立工程需用类封装Spider与数据模型,用模块组织功能,需理解面向对象设计思路

如何检验理解

  • 能定义类封装一个数据模型并写成可导入的独立模块供其他文件调用

核心技能

异常处理与调试排查

try/except、日志logging与断点调试,移植嵌入式调试思维,是定位抓取与接口异常的核心软技能

建议预留 45 分钟

学习目标

  • 掌握try/except容错模式
  • 使用logging记录运行轨迹
  • 会用print与断点定位问题

关键概念

  • 异常类型
  • 日志级别
  • 调试器

为什么学习

  • 网络抓取极易异常,需要熟练设计try/except与日志来定位和容错

如何检验理解

  • 能为一处网络请求编写异常捕获并输出定位日志,复现错误原因

核心技能

HTTP协议与Web基础

URL、请求/响应报文、状态码、请求头与Cookie机制,是数据抓取与API开发共同的前提

建议预留 60 分钟

学习目标

  • 理解请求/响应报文结构
  • 掌握状态码与请求头、Cookie机制

关键概念

  • URL结构
  • HTTP方法
  • 状态码
  • Cookie/会话

为什么学习

  • 作为抓取与后端API的公共基础,需理解请求响应模型与状态码语义而非死记

如何检验理解

  • 能说出常见状态码含义并说明一次抓取请求的头与参数构成

核心技能

requests库与HTTP请求实战

用requests发送GET/POST、携带参数与headers、保持会话,是静态数据抓取的直接工具

建议预留 60 分钟

学习目标

  • 掌握GET/POST请求构造
  • 处理参数、headers与session保持

关键概念

  • requests库
  • 会话Session
  • 请求参数

为什么学习

  • 熟练用requests拿回网页内容是爬虫项目的核心操作,需实际完成多次请求练习

如何检验理解

  • 能对目标站点构造GET请求并携带自定义headers成功拿回响应内容

核心技能

HTML/CSS/JS与文档解析基础

理解网页结构、DOM与选择器,为BeautifulSoup提取结构化数据奠定基础

建议预留 60 分钟

学习目标

  • 理解HTML DOM结构与标签层级
  • 掌握CSS选择器基本用法

关键概念

  • DOM
  • 标签属性
  • CSS选择器

为什么学习

  • 需能读懂HTML标签层级并在浏览器审查中找到目标数据所在节点

如何检验理解

  • 能用浏览器开发者工具定位某个网页元素对应的HTML节点与CSS路径

基础概念

后端工程基础与虚拟环境

pip包管理、venv虚拟环境、项目目录组织,是后续Flask与部署的工程化前提

建议预留 45 分钟

学习目标

  • 掌握pip与venv虚拟环境
  • 学会组织项目目录与依赖清单

关键概念

  • 虚拟环境venv
  • pip依赖
  • 项目结构

为什么学习

  • 独立项目需用虚拟环境隔离依赖并组织清晰目录,是后端与部署的工程前提

如何检验理解

  • 能为项目创建venv、安装requirements并在干净环境运行成功

核心技能

BeautifulSoup数据提取

用BeautifulSoup解析HTML、定位节点并提取结构化数据,是静态数据提取的实现手段

建议预留 60 分钟

学习目标

  • 掌握BeautifulSoup节点定位
  • 提取并结构化整理网页数据

关键概念

  • BeautifulSoup
  • find/find_all
  • 结构化提取

为什么学习

  • 爬虫项目核心环节,需熟练从解析结果中提取字段并组织成结构化数据

如何检验理解

  • 能从一个网页中提取多条记录的多个字段并组装为字典列表

核心技能

Flask Web框架入门

掌握Flask路由、视图函数、请求上下文与模板渲染,用于搭建展示数据的后端API

建议预留 90 分钟

学习目标

  • 掌握Flask路由与视图函数
  • 理解请求上下文与响应返回

关键概念

  • 路由
  • 视图函数
  • JSON返回

为什么学习

  • 后端展示的核心框架,需能创建路由与视图返回数据,奠定API开发基础

如何检验理解

  • 能用Flask创建多个路由并正确返回JSON与渲染页面

核心技能

数据库设计与SQL基础

关系型数据库建模与SQL增删改查,类比C语法与结构体设计,是数据持久化的基石

建议预留 90 分钟

学习目标

  • 掌握建表与表关系设计
  • 写出标准SQL增删改查

关键概念

  • SQL
  • 表结构
  • 主外键

为什么学习

  • 需能建表并完成增删改查,将爬取数据持久化存储供API查询

如何检验理解

  • 能为爬取数据设计表结构并用SQL完成插入与查询

核心技能

JSON/API接口数据抓取

识别并调用REST/JSON接口、模拟AJAX,是比解析HTML更高效的动态数据获取方式

建议预留 60 分钟

学习目标

  • 识别并调用JSON接口
  • 模拟浏览器AJAX请求获取数据

关键概念

  • XHR
  • JSON解析
  • 接口参数

为什么学习

  • 许多动态页面靠XHR接口供数,熟练调用JSON接口可大幅提升抓取效率

如何检验理解

  • 能从页面Network中识别XHR请求并直接用requests复现拿到JSON数据

核心技能

ORM对象关系映射

用SQLAlchemy/Peewee将Python对象映射到数据库表,简化并规范数据层操作

建议预留 90 分钟

学习目标

  • 掌握ORM模型定义
  • 用ORM完成数据操作

关键概念

  • SQLAlchemy
  • 模型类
  • 会话查询

为什么学习

  • 在API项目中用ORM管理数据库更高效安全,需掌握模型定义与查询

如何检验理解

  • 能用ORM定义一个模型并完成增删查改与关联查询

核心技能

RESTful API设计

设计规范REST接口、资源URI与HTTP动词语义,是后端展示数据对外的接口标准

建议预留 90 分钟

学习目标

  • 掌握REST资源与URI设计
  • 规范HTTP动词与状态码

关键概念

  • RESTful
  • 资源URI
  • JSON响应

为什么学习

  • 展示层前端将调用这些接口,需设计清晰规范的资源与路由

如何检验理解

  • 能为爬取数据设计一组GET查询资源的REST接口并返回规范JSON

核心技能

动态页面渲染与Selenium/Playwright

处理JS渲染页面,用浏览器自动化工具驱动加载,目标要求对动态爬取有基础了解即可

建议预留 90 分钟

学习目标

  • 理解动态渲染原理
  • 会用浏览器自动化工具抓取动态页

关键概念

  • Selenium
  • Playwright
  • JS渲染

为什么学习

  • 动态爬取仅需基础了解:能识别需渲染的页面并用浏览器工具抓取即可,不必深入

如何检验理解

  • 能识别一个JS渲染页面并用Selenium/Playwright驱动拿到数据

补充知识

反爬识别与访问策略

认识User-Agent伪装、IP频率限制、延时与重试等反爬应对,提升爬虫健壮性

建议预留 60 分钟

学习目标

  • 识别常见反爬机制
  • 设计延时与重试策略

关键概念

  • UserAgent
  • 频率控制
  • 重试容错

为什么学习

  • 目标为入门水平,只需理解常见反爬手段并会加延时重试即可

如何检验理解

  • 能为爬虫配置UA伪装、随机延时与失败重试策略

核心技能

爬虫数据存储与批量处理

将抓取数据持久化到SQLite/CSV并批量落库去重,打通抓取到存储的完整数据链

建议预留 60 分钟

学习目标

  • 掌握数据持久化到SQLite
  • 批量写入与去重

关键概念

  • 持久化
  • 批量插入
  • 去重

为什么学习

  • 数据抓取后需可靠落库,是后续清洗汇总与API展示的数据来源

如何检验理解

  • 能将抓取的多条记录批量写入数据库并实现重复剔除

补充知识

云服务器基础部署

登录云服务器、配置环境、部署后端API与爬虫对外提供服务

建议预留 90 分钟

学习目标

  • 掌握云服务器登录与环境配置
  • 将Flask应用对外部署

关键概念

  • SSH
  • 云服务器
  • 外网访问

为什么学习

  • 目标仅要求入门了解,能按步骤把Flask应用跑在云服务器上即可

如何检验理解

  • 能将已完成的API项目部署到云服务器并对外访问成功

核心技能

API前后端联调与数据展示

前端页面通过fetch/Ajax调用后端API并渲染数据,打通抓取到展示的最终链路

建议预留 90 分钟

学习目标

  • 掌握fetch调用API
  • 实现前端数据渲染展示

关键概念

  • fetch/Ajax
  • DOM渲染
  • 前后端联调

为什么学习

  • 目标是带简单前端展示界面的API,须能联通前后端完成真实数据展示

如何检验理解

  • 能写一个前端页面用fetch调用后端API并渲染出抓取数据列表

核心技能

数据清洗与预处理

处理脏数据、格式归一化、字段校验,确保进入分析与展示的数据质量

建议预留 45 分钟

学习目标

  • 识别脏数据与字段问题
  • 实现清洗与格式归一化

关键概念

  • 数据清洗
  • 字段校验
  • 去重

为什么学习

  • 抓取数据往往脏乱,需能识别并清洗字段缺失、格式不一致等问题

如何检验理解

  • 能对一份含脏数据的抓取结果完成去重、字段填充与格式统一

核心技能

Pandas/NumPy数据汇总分析

用Pandas/NumPy对清洗后数据做统计分析、聚合汇总,产出可展示的统计结果

建议预留 90 分钟

学习目标

  • 掌握Pandas DataFrame基本操作
  • 做分组聚合与统计汇总

关键概念

  • Pandas
  • DataFrame
  • 分组聚合

为什么学习

  • 目标要求数据汇总处理,需熟练用Pandas做聚合统计并转成API可返回的结构

如何检验理解

  • 能用Pandas对抓取数据做分组统计并输出汇总结果供接口展示

补充知识

任务调度与定时抓取

用APScheduler/cron实现定时运行爬虫自动更新,让数据链路持续运转

建议预留 45 分钟

学习目标

  • 掌握APScheduler定时任务配置
  • 实现自动化周期抓取

关键概念

  • APScheduler
  • 计划任务
  • 自动更新

为什么学习

  • 独立爬虫项目常需定时自动更新,掌握APScheduler做周期调度即可

如何检验理解

  • 能配置一个定时任务让爬虫按周期自动运行并更新数据

补充知识

Docker容器化部署

编写Dockerfile构建镜像、用容器运行应用,实现环境隔离与便捷部署

建议预留 90 分钟

学习目标

  • 理解镜像与容器概念
  • 编写Dockerfile并运行容器

关键概念

  • Dockerfile
  • 镜像
  • 容器

为什么学习

  • 目标仅要求基础了解,能写出Dockerfile把应用容器化并跑起来即可

如何检验理解

  • 能为项目编写Dockerfile并构建镜像启动容器访问服务

前置关系与知识联系

结合互动地图查看具体关系类型,再选择下一步。