13小时掌握Python爬虫必杀技

13小时掌握Python爬虫必杀技

838分钟

在数据驱动的商业时代,Python爬虫技术已成为获取网络信息的重要工具,金融、电商和市场研究等行业都依赖爬虫技术进行数据分析和市场洞察。 为此,三节课邀请了具有丰富Python经验的郭旭老师带来本次课…

在数据驱动的商业时代,Python爬虫技术已成为获取网络信息的重要工具,金融、电商和市场研究等行业都依赖爬虫技术进行数据分析和市场洞察。 为此,三节课邀请了具有丰富Python经验的郭旭老师带来本次课程,旨在教您快速掌握爬虫技巧,解决数据处理效率低下的问题。 本课程从基础语法到高级爬虫技术,包括数据清洗、存储、反爬等实操方法。通过课程的学习,您将大幅提升数据爬取和处理能力,掌握网络数据抓取的技巧,提高数据获取的合法性和效率,拓展个人的技术视野为职业发展增添竞争力。
第0章 导学 - 0.1 爬虫是什么鬼?它能做什么? - 0.2 本课程将怎么教会你自己写爬虫程序 第1章 准备开发环境 - 1.1 Python语言介绍 - 1.2 安装Python(Windows) - 1.3 安装开发IDE—PyCharm(Windows) - 1.4 安装数据库MySQL(Windows) - 1.5 安装数据库远程控制工具SQLYog(Windows) - 1.6 安装Python3(Mac) - 1.7 安装PyCharm(Mac) - 1.8 安装MySQL(Mac) - 1.9 安装MySQL连接工具(Mac) 第2章 必要的基础知识(网络篇) - 2.1 我们每天使用的网络是如何工作的? - 2.2 IP:网络成员的收货地址 - 2.3 DNS:网络域名与IP地址映射关系的管理员 - 2.4 路由:网络数据的中转站 - 2.5 协议:网络成员间的沟通语言 - 2.6 HTTP协议:浏览器能正常显示网页信息都是它的功劳 - 2.7 TCP IP协议:HTTP协议的地基 - 2.8 用Python实现一个简单的Web Server - 2.9 用Python实现Socket编程-服务端 - 2.10 用Python实现Socket编程-客户端 第3章 必要的基础知识(前端篇) - 3.1 什么是HTML? - 3.2 什么是CSS? - 3.3 什么是JavaScript? - 3.4.1 手写一个HTML页面(HTML标签部分) - 3.4.2 手写一个HTML页面(CSS美化和JS交互) - 3.4.3 手写一个HTML页面(引用CSS文件和JS文件) - 3.5 浏览器F12查看自己写的HTML - 3.6 什么是dom树? - 3.7 人们常说的静态网页和动态网页有什么区别? - 3.8 Get请求和Post请求有什么区别? - 3.9 什么是同步请求?什么是异步请求? - 3.10 如何用Ajax实现异步请求? - 3.11 Http请求中常见的Header内容有哪些? - 3.12 什么是json数据格式? - 3.13 什么是XPATH - 3.14 什么是CSS选择器 第4章 爬虫时常用的基础类库 - 4.1 request:处理http请求 - 4.2 re:正则表达式 - 4.3 pymyql:使用SQL语句操作数据库 - 4.4 类库peewee:ORM方式操作数据库 - 4.5 类库BS4:beautifulsoup解析HTML - 4.6 类库lxml:xpath解析HTML - 4.7 css选择器方式解析HTML - 4.8 类库urllib.parse:解析和封装URL - 4.9 类库pickle:将python对象写入本地磁盘 第5章 实战:简单获取网易新闻列表 - 5.1 需求分析:爬取哪些内容,如何设计爬取流程 - 5.2 数据库设计:设计新闻列表的表结构 - 5.3 页面分析:找到数据的css选择器 - 5.4 页面分析:F12找到数据接口 - 5.5 实现编码:解析JSON数据 - 5.6 实现编码:入库新闻列表 - 5.7 实现编码:入库关键字 - 5.8 实现编码:已存在的数据不重复写入 - 5.9 实现编码:增加数据库事务 - 5.10 总结:爬虫其实就是如此的简单 第6章 多线程编程提高爬虫速度 - 6.1 什么是多线程? - 6.2 类库threading:启动线程 - 6.3 线程同步:线程Lock - 6.4 什么是线程池? - 6.5 操作线程池 - 6.6 对比单线程、多线程、线程池的执行时间 - 6.7 需求分析:爬取网易新闻详情页内容 - 6.8 数据库设计:设计新闻详情的表结构 - 6.9 页面分析:找到数据的css选择器和xpath - 6.10.1 编码:获得需要爬取数据的新闻详情列表 - 6.10.2 编码:解析页面内容并生成对应的ORM对象 - 6.10.3 编码:编写入库代码(事务、线程池) - 6.10.4 编码:运行程序并解决遇到的问题 - 6.11 编码:增加数据是否重复爬取的校验逻辑 第7章 模拟登录并解决验证码的输入 - 7.1 模拟登录前必须了解什么是cookie和session - 7.2 模拟登录豆瓣网,将登录成功的cookie保存在本地 - 7.3 读取本地cookie,用已登录状态访问网站 - 7.4 selenium:Web应用测试工具 - 7.5 使用selenium模拟登录豆瓣 - 7.6.1 滑动验证码-处理流程 - 7.6.2 滑动验证码-模拟输入用户名和密码 - 7.6.3 滑动验证码-找到无缺口的原始背景图 - 7.6.4 滑动验证码-截取并保存图片 - 7.6.5 滑动验证码-比较图片RGB并找到缺口的移动距离 - 7.6.6 滑动验证码-实现滑块拖动逻辑 - 7.6.7 滑动验证码-运行代码并修改BUG - 7.6.8 滑动验证码-增加重试逻辑 第8章 实战:清洗数据并发送到Kindle - 8.1 什么是数据清洗和数据分析? - 8.2.1 确认需求:新闻详情的清洗范围 - 8.2.2 实施需求:SQLYog创建一张与原始表结构一样的新表 - 8.2.3 编码:创建ORM对象并写入数据 - 8.2.4 编码:peewee实现三张表的left join查询 - 8.2.5 清洗编码:数据入库 - 8.3.1 编码:解析HTML中的详情内容并组合为新闻文本 - 8.3.2 编码:将新闻文本存储到本地TXT文件 - 8.4.1 smtplib库:发送纯文本内容的email - 8.4.2 smtplib库:发送带附件的email - 8.5 解决163邮箱SMTP时的554垃圾邮件问题 - 8.6 将新闻详情txt文件发送到Kindle - 8.7 实现微信实时接收爬虫通知 第9章 如何应对网站的反爬虫机制 - 9.1 各大网站为什么设置反爬虫机制? - 9.2 反爬虫机制一般有哪些手段 - 9.3 什么是user-agent - 9.4 类库fake_useragent:随机模拟user-agent 第10章 使用Scrapy框架提高开发效率 - 10.1 什么是Scrapy? - 10.2 创建并运行第一个Scrapy项目 - 10.3 使用Scrapy重新爬取网易要闻 - 10.4 使用item和pipeline实现数据入库 - 10.5 在Spider中发起异步Request - 10.6 通过AllowDomain过滤域名 第11章 总结 - 11.1 课程总结 - 11.2 如何将所学到的知识应用到其它网站? - 11.3 爬虫还有哪些高级应用? 第12章 实战:天天基金网 - 12.1 需求分析 - 12.2 判断页面数据的加载方式 - 12.3 判断返回值是否可被Json类库解析 - 12.4 编码:调用接口获得基金数据 - 12.5 编码:将接口返回值转化为Json列表 - 12.6 编码:解析Json数据并计算平均年化收益率 - 12.7 编码:排序并输出Top20的基金数据 - 12.8 编码:以表格形式输出基金数据 课程资料
郭旭
郭旭

前游戏公司技术总监,高级工商管理硕士。