课程概述
大数据时代,基于数据获取和数据分析去发现问题并做出科学、客观的决策变得越来越重要。在数据分析技术应用中,爬虫程序作为数据采集的重要手段之一,不仅在大数据、人工智能行业有广泛的应用,在其他工科、医科、商科、文科等学科也有重要应用。
本课程的目标是教会学生使用Python程序设计语言编写程序,能够在互联网上进行不同类型数据爬取,并能够进行相应的数据预处理、数据存储、数据可视化以及简单数据分析。整门课程按照主题,分为了6个模块。
第一个模块是Python的基础知识,对于没有Python语言基础的同学,可以通过第一个模块的学习,快速入门。
第二个模块是关于网络爬虫的一些基础知识。包括编写与使用网络爬虫程序必须遵循的相关法律法规及伦理道德,以及与爬虫程序相关的一些Web开发相关知识。
后续4个模块则是根据数据爬取目标的特点设计了4个大型案例,每个案例设置了不同的情境与任务,不断地提出问题,引导学习者不断地完善、改进程序,精益求精。
在整门课程的学习过程中,强调数据获取过程中必须合理合法,授课方式更注重培养学习者的科学思维方式以及互联网时代新的学习方式。希望通过本课程的学习,能够为学习者后续专业知识学习、研究及工作需要,奠定数据获取、数据处理的基础。
授课目标
完成本课程的学习后,学习者将能收获以下基本技能:
1)熟练分析网页元素、掌握静态页面数据、动态页面数据以及json数据的分析、爬取技能;
2)掌握requests、wordcloud、matplotlib、pyecharts等第三方库的使用;
3)学会第三方库的使用技巧,未来在没有老师教授的情况下也能自主学习,完成任务;
4)培养学习者科学思维,以及互联网时代新的学习方式,为后续专业知识学习、研究及工作需要,奠定数据获取和数据分析的技术基础。
课程大纲
【模块1】Python程序设计语言基础
课时目标:1)对于已经学过Python语言基础的同学,可以直接进入下一章节“【模块2】爬虫基础”的学习。2)对于已经有C语言基础、但没有学过Python语言的同学,只需要快速浏览一遍顺序结构、选择结构、循环结构、模块化思维(函数)的语法,但是1.5数据的类型的介绍中,包含了组合数据类型的使用,这是C语言中没有的,必须先认真学习,掌握之后,再开始学习后续知识。3)对于已经学习过Python语言基础的同学,可以直接从下一个模块开始学习。
1.1 Python语言初探
1.2 IPO程序设计与顺序结构
1.3 程序控制之分支结构
1.4 程序控制之循环结构
1.5 理解数据的类型
1.6 模块化思维
1.7 文件读取
【模块2】爬虫基础
课时目标:磨刀不误砍柴工。在开始编写爬虫程序之前,了解一些网络请求响应、网页HTML等爬虫相关基础知识,是非常必要的。
2.1 学习爬虫技术之前的重要提示
2.2 从一个简单的请求开始
2.3 HTTP那些事儿
2.4 认识HTML
2.5 爬虫第三方库requests简介
【模块3】单页面静态数据爬取与可视化
课时目标:单页面静态数据爬取是编写爬虫程序最基本的技能。在这个模块中,非常详细的描述了如何利用网页开发者工具(F12)去分析一个页面的网页元素,定位目标数据所在标签。对于没有任何爬虫基础的小伙伴,在学完【模块2】之后,应该先从3.1开始。另外,很多教材与慕课对于词云的绘制,只是进行了简单的介绍,在本模块中详细介绍了如何利用词频统计改进词云绘制效果。
3.1 单页面数据爬取与简单词云绘制
3.2 细说词云绘制
3.3 词频统计
3.4 利用词频统计改进词云绘制效果
【模块4】多页面数据爬取与存储
课时目标:多页面数据采集是一个常见的任务需求,例如各个电商网站的商品评论数据、豆瓣评论数据等。不管要抓取的数据对象是什么,只要目标数据是有规律的分布在多个网页上,在完成【模块4】的学习后,就能够对其他分布在多个页面的目标数据进行采集。
4.1 单章节小说爬取与模块化
4.2 目录页分析与存储
4.3 多章节小说存储
4.4 小说爬取中常见问题解决
【模块5】动态页面数据爬取
课时目标:有时候,我们会遇到一些网站,在页面上命名看到了目标数据,但使用常规的数据采集方法抓取时,却偏偏抓回一个None?Why?这就是动态页面数据的抓取问题了,来吧,一起学习,看看如何解决这一类问题吧~~
5.1 任务进阶安排
5.2 从一个城市开始
5.3 动态查询一个城市天气
5.4 周边景点当天天气查询
5.5 周边景点7天气温折线图绘制
5.6 一省全域天气查询
5.7 天气数据API的使用
【模块6】PubMed数据库文献分析
课时目标:JSON数据是目前网页传输数据时采用的主要方式之一。COVID-19数据具有数据量大、层次复杂的特点。如果能够熟练分析具有如此复杂结构的COVID-19 JSON数据,并根据任务场景从中提取目标数据,就说明学习者在数据爬取与处理方面的能力已经得到有效的训练,已经具备了相应能来来应对其他任务场景。
6.1 案例导入
6.2 PubMed数据库单篇文献基础信息抓取
6.3 PubMed多篇文献信息获取
【模块7】利用pandas处理国家统计局数据并展示
7.1 pandas的主要数据结构
7.2 pandas之数据的导入导出
7.3 pandas之使用自定义函数
7.4 pandas之数据清洗-以统计局数据为例
7.5 pandas之图形绘制
预备知识
1)如果具备Python程序设计语言基础,学习本课程将会较为轻松,可以直接略过第一部分【预备知识】,直接从【模块1】开始学习。
2)如果具备C程序设计语言基础,只需要快速浏览一遍顺序结构、选择结构、循环结构、模块化思维(函数)的语法,但是1.5数据的类型中,包含组合数据类型,这是C语言中没有的,必须先认真学习,掌握之后,再开始学习后续知识,也能够快速上手。
3)如果不具备任何程序设计语言基础,则需要认真观看完“第一章 Python语言基础”,并完成对应关练习,理解Python语言的数据类型、程序控制结构等,具备基本程序设计能力之后,方能较快理解后续章节的相关内容。