← 返回首页
🕷️

数据采集与处理

掌握数据采集的核心技术与方法,获取高质量数据源,为数据分析奠定坚实基础

📅
开设学期
大一第二学期
⏱️
课时
48 课时
🎯
课程类型
专业核心课
🔧
核心工具
Python / requests / Selenium

📚 课程大纲

共 8 章 · 理论 + 工具 + 实战

1 数据采集概述

了解数据采集的定义、类型(公开数据、传感器数据、网络数据、API数据等)。认识数据采集的重要性与常见应用场景,以及数据采集的法律与伦理边界。

  • 常见数据源类型:网站数据、API数据、数据库数据、文件数据
  • 公开数据集资源:Kaggle、和鲸社区、国家数据平台
  • 数据采集的法律边界: robots.txt、版权法、个人信息保护法
  • 数据采集流程:需求分析 → 来源确定 → 方案设计 → 采集实施
2 网络爬虫基础与HTTP协议

学习网络爬虫的基本原理。深入理解HTTP协议(请求方法GET/POST、请求头、响应状态码)。掌握Python的requests库发送GET/POST请求,获取网页内容。

  • HTTP协议:URL结构、请求方法、状态码(200/404/500)
  • requests库:get()、post()、headers、params、timeout
  • 响应对象:status_code、text、content、json()
  • Session对象:跨请求保持cookie
  • 实战:使用requests抓取天气数据或新闻标题
3 HTML/CSS基础与网页解析

学习看懂网页的HTML结构,理解CSS选择器的基本原理。掌握使用BeautifulSoup库解析HTML文档,精准定位和提取所需数据。

  • HTML文档树结构:标签、属性、文本节点
  • CSS选择器:标签选择器、类选择器(.class)、ID选择器(#id)
  • BeautifulSoup:find()、find_all()、select()的用法
  • 获取标签属性:get()方法提取href、src等属性值
  • 实战:提取豆瓣电影Top250的标题、评分、评价人数
4 XPath与正则表达式

学习XPath路径语言实现精准数据提取,以及正则表达式处理复杂文本数据。两者结合可以应对各种复杂网页结构的数据提取需求。

  • XPath基础:绝对路径、相对路径、谓语条件 [@attr='value']
  • lxml库 + etree.parse() 解析HTML
  • 正则表达式:元字符(\d、\w、\s)、量词(* + ? {n})
  • re模块:findall()、search()、match()、sub()
  • 实战:提取网页中的手机号、邮箱、日期等结构化信息
5 反爬机制与应对策略

了解常见的网站反爬机制(IP封禁、验证码、User-Agent检测、请求频率限制等)及合法应对策略。培养在合法合规前提下完成数据采集的思维。

  • 常见反爬机制:IP限速、验证码(滑动/点选/文字)、请求头检测
  • UA伪装:定期更换User-Agent模拟不同浏览器
  • IP代理池:代理IP获取与验证
  • 请求频率控制:time.sleep() 随机延时
  • 实战:模拟浏览器登录获取微博数据(需Token授权)
6 动态页面与Selenium

学习如何采集动态渲染页面(JavaScript动态加载的内容)。掌握Selenium WebDriver的基本使用,包括元素定位、等待策略、模拟登录等操作。

  • 动态页面原理:Ajax请求、JavaScript渲染
  • Selenium安装与ChromeDriver配置
  • 元素定位:find_element_by_xpath / by_css_selector
  • 显式等待 vs 隐式等待
  • 实战:爬取淘宝/京东商品搜索结果(商品标题、价格、销量)
7 数据存储与管理

学习将采集到的数据以结构化形式存储。包括:CSV文件写入(csv模块)、Excel文件操作(openpyxl)、JSON数据存储,以及MySQL数据库存储方案。

  • CSV文件读写:DictWriter、pandas to_csv()
  • Excel操作:openpyxl创建工作簿、写入数据、设置样式
  • JSON数据处理:json.dump() / json.load()
  • MySQL存储:pymysql库的CRUD操作
  • 实战:将爬取的豆瓣电影数据存储为CSV并导入MySQL
8 综合实战:电商数据采集项目

综合运用所学技术,完成一个完整的电商数据采集项目。包括:多页面商品数据抓取 → 数据清洗与去重 → 结构化存储 → 数据质量检查报告。

  • 项目架构:爬虫调度器 + 页面解析器 + 数据存储器
  • 异常处理与日志记录(logging模块)
  • 断点续传与增量采集机制
  • 数据去重:基于URL哈希或商品ID去重
  • 实战项目:京东/天猫商品数据批量采集与存储