这门课在解决什么工作场景

很多上班族对编程的最初需求,其实不是去开发一个庞大的商业系统,而是想把手动复制粘贴的活儿自动化。比如每天要从固定网站扒一批公开数据做竞品分析,或者要把几个网页里的表格抓下来汇总到表格里。这门课的主题就是用 Python 写一个爬虫,切入点很具体,不贪大求全。它解决的场景是:你不需要懂底层计算机原理,只要能把一段抓取网页数据的脚本跑起来,并把它变成能复用的小工具。对于平时要处理大量公开信息搜集、做市场调研或者想转行做基础数据岗位的人来说,这种能力能直接省下每天几个小时的机械劳动。

适合什么基础以及建议先看哪几块

从课程结构看,它确实是为零基础设计的。资料一开始从语言的诞生和版本选择讲起,接着是下载安装和编辑器配置。如果你以前连命令行都没打开过,这部分不能跳。建议先看语言概述里的案例演示,直接看最终能实现什么效果,判断这是否符合自己的预期。接着把环境配置那几块跟着操作一遍,特别是编辑器插件的手动安装部分,很多人卡在工具没配好就放弃了。把开发环境跑通,比看懂所有语法概念更重要。资料里关于语言优势和发展趋势的部分可以快进,把时间留给动手敲代码。

学完能独立做什么以及资料怎么配合练习

学完这门课,你不一定能立刻去开发高并发的分布式抓取系统,但能独立完成一个单页面的数据抓取脚本。你可以自己写代码去请求网页,把里面的文本、链接或者图片下载到本地,并且知道怎么在编辑器里调试和格式化代码。资料配合练习的方法是:先看演示了解全貌,然后自己建一个项目文件夹,照着把环境配好,写第一行代码打印结果。不要只是拖动进度条看视频,爬虫这门手艺必须靠报错来长经验。遇到网页结构变化或者请求被拦截的情况,先尝试自己查文档解决。把课程里的示例跑通后,换一个你工作中真正需要抓的网页,自己改写代码,这才算把知识落到了实处。

课程目录

课程目录181 集
  • 1-1 [Python 语言概述] Python的诞生 (06:33).mp4
  • 1-2 [Python 语言概述] Python的发展趋势 (04:54).mp4
  • 1-3 [Python 语言概述] Python的优势以及缺点 (05:59).mp4
  • 1-4 [Python 语言概述] Python的应用领域 (02:39).mp4
  • 1-5 [Python 语言概述] Python的版本以及课程安排 (04:01).mp4
  • 1-6 [Python 语言概述] 写一个爬虫玩-案例演示 (09:43).mp4
  • 1-7 [Python 语言概述] 2.1 Python下载安装 (06:18).mp4
  • 2-1 [Python 环境配置] VSCode下载安装 (02:59).mp4
  • 2-2 [Python 环境配置] 手动安装pylint和autopep8 (13:37).mp4
  • 2-3 [Python 环境配置] VSCode插件配置 (06:27).mp4
  • 2-4 [Python 环境配置] 先尝试写一个程序 (10:50).mp4
  • 3-1 [Python 基础语法] 变量(上) (12:29).mp4
  • 3-2 [Python 基础语法] 变量(下) (10:57).mp4
  • 3-3 [Python 基础语法] 注释 (04:32).mp4
  • 3-4 [Python 基础语法] 数据类型初接触-字符串 (11:21).mp4
  • 3-5 [Python 基础语法] 数据类型初接触-数字 (01:30).mp4
  • 3-6 [Python 基础语法] 数据类型初接触-布尔值 (01:28).mp4
  • 3-7 [Python 基础语法] 数据类型初接触-None (01:08).mp4
  • 3-8 [Python 基础语法] 数据类型初接触-type() 判断数据类型 (04:59).mp4
  • 3-9 [Python 基础语法] 运算初接触-算数运算符 (07:54).mp4
  • 3-10 [Python 基础语法] 运算初接触-赋值运算符 (01:47).mp4
  • 3-11 [Python 基础语法] 函数初接触-函数定义、调用 (07:16).mp4
  • 3-12 [Python 基础语法] 函数初接触-函数的参数 (04:08).mp4
  • 3-13 [Python 基础语法] 函数初接触-函数的返回值 (06:11).mp4
  • 3-14 [Python 基础语法] 函数初接触-认识几个内置函数 (07:55).mp4
  • 3-15 [Python 基础语法] 好记性不如烂笔头 - 安排 (01:22).mp4
  • 3-16 [Python 基础语法] 好记性不如烂笔头 - 讲解 (09:56).mp4
  • 4-1 [Python 数据类型] 字符串(一) (06:31).mp4
  • 4-2 [Python 数据类型] 字符串(二) (09:15).mp4
  • 4-3 [Python 数据类型] 字符串(三) (07:42).mp4
  • 4-4 [Python 数据类型] 字符串(四) (09:25).mp4
  • 4-5 [Python 数据类型] 字符串(五) (06:58).mp4
  • 4-6 [Python 数据类型] 列表 (13:04).mp4
  • 4-7 [Python 数据类型] 元组 (07:49).mp4
  • 4-8 [Python 数据类型] 字典 (10:52).mp4
  • 4-9 [Python 数据类型] 集合 (02:55).mp4
  • 4-10 [Python 数据类型] 迭代(遍历)数据 (10:39).mp4
  • 4-11 [Python 数据类型] range()函数的妙用 (06:38).mp4
  • 4-12 [Python 数据类型] 使用列表推导式提升编码效率 (04:59).mp4
  • 4-13 [Python 数据类型] 序列类型 (03:10).mp4
  • 4-14 [Python 数据类型] 字符串常用方法(一) (12:17).mp4
  • 4-15 [Python 数据类型] 字符串常用方法(二) (03:36).mp4
  • 4-16 [Python 数据类型] 字符串常用方法(三) (03:34).mp4
  • 4-17 [Python 数据类型] 字符串常用方法(四) (06:35).mp4
  • 4-18 [Python 数据类型] 数字常用方法(一) (04:35).mp4
  • 4-19 [Python 数据类型] 数字常用方法(二) (05:16).mp4
  • 4-20 [Python 数据类型] 数字常用方法(三) (05:13).mp4
  • 4-21 [Python 数据类型] 数字常用方法(四) (04:29).mp4
  • 4-22 [Python 数据类型] 列表常用方法(一) (05:00).mp4
  • 4-23 [Python 数据类型] 列表常用方法(二) (04:21).mp4
  • 4-24 [Python 数据类型] 列表常用方法(三) (03:15).mp4
  • 4-25 [Python 数据类型] 元组常用方法 (02:22).mp4
  • 4-26 [Python 数据类型] 字典常用方法(一) (06:53).mp4
  • 4-27 [Python 数据类型] 字典常用方法(二) (04:49).mp4
  • 4-28 [Python 数据类型] 字典常用方法(三) (04:33).mp4
  • 4-29 [Python 数据类型] 集合常用方法(一) (09:10).mp4
  • 4-30 [Python 数据类型] 集合常用方法(二) (06:18).mp4
  • 4-31 [Python 数据类型] 集合常用方法(三) (04:23).mp4
  • 4-32 [Python 数据类型] 集合常用方法(四) (01:46).mp4
  • 4-33 [Python 数据类型] 集合常用方法(五) (02:52).mp4
  • 5-1 [Python 流程控制] == 和 != 是什么 (01:44).mp4
  • 5-2 [Python 流程控制] 条件语句 (09:38).mp4
  • 5-3 [Python 流程控制] 认识流程控制 (07:57).mp4
  • 5-4 [Python 流程控制] 三元表达式(三目运算符) (07:04).mp4
  • 5-5 [Python 流程控制] 循环语句 (06:50).mp4
  • 5-6 [Python 流程控制] continue 跳过循环 (03:45).mp4
  • 5-7 [Python 流程控制] break 跳出(停止)循环 (03:04).mp4
  • 5-8 [Python 流程控制] 初识迭代器 (03:15).mp4
  • 5-9 [Python 流程控制] 初识生成器 (06:38).mp4
  • 6-1 [Python 运算符] 算数运算符 (09:07).mp4
  • 6-2 [Python 运算符] 赋值运算符-海象运算符 (06:37).mp4
  • 6-3 [Python 运算符] 比较运算符 (02:43).mp4
  • 6-4 [Python 运算符] 逻辑运算符(一) (06:15).mp4
  • 6-5 [Python 运算符] 逻辑运算符(二) (09:25).mp4
  • 6-6 [Python 运算符] 成员运算符 (03:43).mp4
  • 6-7 [Python 运算符] 身份运算符 (08:01).mp4
  • 6-8 [Python 运算符] 位运算符(一) (09:40).mp4
  • 6-9 [Python 运算符] 位运算符(二) (05:58).mp4
  • 6-10 [Python 运算符] 位运算符(三) (05:47).mp4
  • 6-11 [Python 运算符] 位运算符(四) (08:04).mp4
  • 6-12 [Python 运算符] 运算符的优先级别 (03:50).mp4
  • 7-1 [Python 模块与包] 什么是模块 (07:13).mp4
  • 7-2 [Python 模块与包] 了解命名空间 (05:38).mp4
  • 7-3 [Python 模块与包] 模块导入(一) (05:20).mp4
  • 7-4 [Python 模块与包] 模块导入(二) (07:00).mp4
  • 7-5 [Python 模块与包] 认识__name__属性 (07:19).mp4
  • 7-6 [Python 模块与包] 什么是包 (02:20).mp4
  • 7-7 [Python 模块与包] 包的导入(一) (09:09).mp4
  • 7-8 [Python 模块与包] 包的导入(二) (06:58).mp4
  • 7-9 [Python 模块与包] 包的导入(三) (09:00).mp4
  • 7-10 [Python 模块与包] 包的导入(四) (05:23).mp4
  • 7-11 [Python 模块与包] 包的导入(五) (09:55).mp4
  • 7-12 [Python 模块与包] 模块的内置属性 (10:45).mp4
  • 7-13 [Python 模块与包] 包的内置属性 (03:40).mp4
  • 7-14 [Python 模块与包] pip介绍以及常用命令演示 (11:08).mp4
  • 7-15 [Python 模块与包] pip配置国内镜像源 (09:44).mp4
  • 8-1 [Python 函数精讲] 查看内置函数以及函数的帮助信息 (07:38).mp4
  • 8-2 [Python 函数精讲] 函数定义的补充 (07:48).mp4
  • 8-3 [Python 函数精讲] 函数注释的补充 (10:28).mp4
  • 8-4 [Python 函数精讲] 函数名的作用 (08:35).mp4
  • 8-5 [Python 函数精讲] 函数返回值(return)的补充 (05:10).mp4
  • 8-6 [Python 函数精讲] 序列解包与封包 (07:15).mp4
  • 8-7 [Python 函数精讲] 函数的必须参数以及关键字传参 (03:46).mp4
  • 8-8 [Python 函数精讲] 函数的默认参数 (02:33).mp4
  • 8-9 [Python 函数精讲] 函数的可变参数 (03:29).mp4
  • 8-10 [Python 函数精讲] 关键字参数 (04:37).mp4
  • 8-11 [Python 函数精讲] 函数的参数提示 (07:39).mp4
  • 8-12 [Python 函数精讲] 解包传参 (02:53).mp4
  • 8-13 [Python 函数精讲] 作用域与作用域链 (09:04).mp4
  • 8-14 [Python 函数精讲] global 关键字 (08:49).mp4
  • 8-15 [Python 函数精讲] nonlocal 关键字 (06:11).mp4
  • 8-16 [Python 函数精讲] 递归(一) (08:07).mp4
  • 8-17 [Python 函数精讲] 递归(二) (14:47).mp4
  • 8-18 [Python 函数精讲] 闭包 (06:56).mp4
  • 8-19 [Python 函数精讲] lambda表达式 (05:31).mp4
  • 9-1 [Python 面向对象] 认识类和对象 (07:07).mp4
  • 9-2 [Python 面向对象] self是什么鬼 (05:29).mp4
  • 9-3 [Python 面向对象] __init__() 构造函数 (08:53).mp4
  • 9-4 [Python 面向对象] 类变量 (09:38).mp4
  • 9-5 [Python 面向对象] 私有变量 (10:20).mp4
  • 9-6 [Python 面向对象] 实例方法、类方法、静态方法 (13:36).mp4
  • 9-7 [Python 面向对象] 私有方法 (09:07).mp4
  • 9-8 [Python 面向对象] 最简单的继承 (06:20).mp4
  • 9-9 [Python 面向对象] 继承后进行功能扩展 (09:00).mp4
  • 9-10 [Python 面向对象] 多重继承 (11:48).mp4
  • 9-11 [Python 面向对象] isinstance() (02:35).mp4
  • 9-12 [Python 面向对象] 使用dir() (02:20).mp4
  • 10-1 [Python 文件读写] 尝试文件读写 (06:35).mp4
  • 10-2 [Python 文件读写] 相对路径与绝对路径 (06:53).mp4
  • 10-3 [Python 文件读写] 文件的打开模式 (05:01).mp4
  • 10-4 [Python 文件读写] 文件写入 (04:36).mp4
  • 10-5 [Python 文件读写] 文件读取 (08:46).mp4
  • 10-6 [Python 文件读写] 关闭文件 (03:20).mp4
  • 10-7 [Python 文件读写] 重命名以及删除文件 (05:40).mp4
  • 10-8 [Python 文件读写] 迭代文件内容 (09:03).mp4
  • 11-1 [Python 异常处理] 异常介绍 (05:40).mp4
  • 11-2 [Python 异常处理] 最简单的异常捕获 (04:28).mp4
  • 11-3 [Python 异常处理] 捕获指定异常 (07:15).mp4
  • 11-4 [Python 异常处理] else 以及 finally (05:38).mp4
  • 11-5 [Python 异常处理] 自定义异常 (07:03).mp4
  • 12-1 [Python 正则表达式-语法篇] 正则演示 (08:21).mp4
  • 12-2 [Python 正则表达式-语法篇] 最简单的正则 (03:58).mp4
  • 12-3 [Python 正则表达式-语法篇] 字符集 (08:02).mp4
  • 12-4 [Python 正则表达式-语法篇] 重复匹配 (05:45).mp4
  • 12-5 [Python 正则表达式-语法篇] 单词边界和字符串边界 (06:33).mp4
  • 12-6 [Python 正则表达式-语法篇] 贪婪和非贪婪模式 (04:02).mp4
  • 12-7 [Python 正则表达式-语法篇] 子表达式(分组) (08:17).mp4
  • 12-8 [Python 正则表达式-语法篇] 零宽断言 (09:01).mp4
  • 12-9 [Python 正则表达式-语法篇] 匹配IP地址 (15:29).mp4
  • 12-10 [Python 正则表达式-语法篇] 匹配邮箱 (07:25).mp4
  • 13-1 [Python 正则表达式-代码篇] re模块的使用 (05:28).mp4
  • 13-2 [Python 正则表达式-代码篇] 修饰符以及正则中的注释 (12:41).mp4
  • 13-3 [Python 正则表达式-代码篇] search、match、fullmatch (06:07).mp4
  • 13-4 [Python 正则表达式-代码篇] 匹配对象和分组捕获(一) (09:13).mp4
  • 13-5 [Python 正则表达式-代码篇] 匹配对象和分组捕获(二) (07:37).mp4
  • 13-6 [Python 正则表达式-代码篇] findall、finditer (04:54).mp4
  • 13-7 [Python 正则表达式-代码篇] split (05:41).mp4
  • 13-8 [Python 正则表达式-代码篇] sub (10:31).mp4
  • 14-1 [实战案例-写一个爬虫玩儿] 写一个爬虫玩-案例演示 (09:43).mp4
  • 14-2 [实战案例-写一个爬虫玩儿] 案例流程规划 (09:58).mp4
  • 14-3 [实战案例-写一个爬虫玩儿] request_data模块编写 (16:06).mp4
  • 14-4 [实战案例-写一个爬虫玩儿] get_data模块编写(一) (14:43).mp4
  • 14-5 [实战案例-写一个爬虫玩儿] get_data模块编写(二) (07:41).mp4
  • 14-6 [实战案例-写一个爬虫玩儿] get_data模块编写(三) (10:40).mp4
  • 14-7 [实战案例-写一个爬虫玩儿] get_data模块编写(四) (09:28).mp4
  • 14-8 [实战案例-写一个爬虫玩儿] create_dir模块编写 (07:38).mp4
  • 14-9 [实战案例-写一个爬虫玩儿] html_template模块编写 (11:39).mp4
  • 14-10 [实战案例-写一个爬虫玩儿] down_data模块编写(一) (08:37).mp4
  • 14-11 [实战案例-写一个爬虫玩儿] down_data模块编写(二) (10:18).mp4
  • 14-12 [实战案例-写一个爬虫玩儿] down_data模块编写(三) (08:48).mp4
  • 14-13 [实战案例-写一个爬虫玩儿] run模块编写(一) (11:50).mp4
  • 14-14 [实战案例-写一个爬虫玩儿] run模块编写(二) (09:37).mp4
  • 14-15 [实战案例-写一个爬虫玩儿] run模块编写(三) (10:35).mp4
  • 14-16 [实战案例-写一个爬虫玩儿] run模块编写(四) (09:41).mp4
  • 14-17 [实战案例-写一个爬虫玩儿] run模块编写(五) (08:46).mp4
  • 14-18 [实战案例-写一个爬虫玩儿] run模块编写(六) (09:44).mp4
  • 14-19 [实战案例-写一个爬虫玩儿] run模块编写(七) (15:37).mp4
  • 14-20 [实战案例-写一个爬虫玩儿] run模块编写(八) (10:07).mp4
  • 14-21 [实战案例-写一个爬虫玩儿] run模块编写(九) (01:58).mp4
  • 14-22 [实战案例-写一个爬虫玩儿] run模块编写(十) (04:57).mp4
  • 14-23 [实战案例-写一个爬虫玩儿] 结束 (05:36).mp4