大数跨境
0
0

20180127-北京-Python爬虫数据抓取实战

20180127-北京-Python爬虫数据抓取实战 数据分析实战
2018-01-29
1
导读:第一届《Python爬虫数据抓取实战》线下课程,在2018年01月27日在北京成功举行。

        准备了两个多月的时间,第一届《Python爬虫数据抓取实战》线下课程,终于在2018年01月27日在北京成功举行。


        Python的数据抓取课程,目标是作为数据分析或者数据挖掘课程的前提课程而设置了,第一版的大纲制定如下:


第一天

上午 磨刀不误砍柴工——Python基础语法

1 数据抓取概述

1.1 什么是数据抓取

1.2 为什么要进行数据抓取

1.3 如何学习数据抓取

2 Python语法基础

2.1 Python中的数据类型

学习Python中的 Character、Boolean、Numeric 数据类型。

2.2 Python中的数据结构

学习Python中的 List、Tuple、Set、Dict 数据结构。

2.3 Python中的程序结构

学习Python中的 顺序、选择、循环 程序结构。

2.4 Python中的函数

学习Python中的函数。

2.5 Python中的异常处理

学习Python中的异常处理。

2.6 Python中的多线程

学习Python中的多线程

下午 解铃还需系铃人——使用Python搭建一个博客

2.1 HTML 代码入门——写一个博客的 Title 部分

学习 HTML 和 CSS,使用 HTML 代码整合 CSS,写一个博客的Title部分。

2.2 HTML Table的应用——完成博客的文章列表部分

学习 HTML Table 标签的写法,完成博客中文章列表的部分。

2.3 搭建一个 Web 服务——完成动态列表页面

学习 flash 库,搭建一个 Web 服务,用于展现列表中的内容。

2.4 持久化数据——完成文章数据到文件的读写操作

学习把数据保存到文件中,主要介绍 JSON 格式数据的读写。

2.5 提交表单和状态保持——完成文章发表和登录功能

学习 Web 中的 Request 和 Session 等概念,理解网页客户端和服务器端交互的原理。


第二天


上午 一个萝卜一个坑——常用的数据抓取技巧

3.1 HTML页面的抓取——抓取和解析 HTML 页面

学习如何抓取CSDN(https://www.csdn.net/)技术博客文章。

3.2 JSON接口的抓取——抓取和解析 JSON 数据接口

学习如何抓取IP地址归属地,以及从返回的结果中解析JSON格式的数据。

3.3 开放平台数据抓取——讯飞文字转语音接口的实现

学习讯飞文字转语音接口,达到通过开放平台提供的接口进行数据抓取。

3.4 JavaScript脚本的抓取——抓取网易云课堂 DWR 接口数据

学习 DWR 接口数据的抓取,达到了解什么是 DWR ,如何解析 DWR 返回的数据。

3.5 字符串处理技巧以及正则表达式的使用

学习常用的字符串处理技巧以及正则表达式的使用,达到从字符串中灵活解析出需要的数据。


下午 万丈高楼平地而起——构建稳健的爬虫


4.1 不达目的不罢休——请求超时、异常处理、和死循环的抓取技巧

HTTP 基于 UDP,不保证通信的100%到达,如何改造这种不可靠性,打造出可靠的抓取方法呢?

4.2 手有余粮心不慌——使用本地缓存保存网页副本,避免重复访问

打开一个网页的平均时间是4.9秒,而从本地文件读取只需0.1秒不到的时间。可见,缓存可以极大地提高抓取速度。

4.3 浓妆淡抹总相宜——设置HTTP请求头部,跳过登录、浏览器等限制

数据抓取是和网站站长斗智斗勇的博弈过程,从模拟豆瓣登录,抓取豆瓣电影评论数据,学习如何设置HTTP头部,来跳过网站登录、浏览器的限制。

4.4 只重衣衫不重人——使用代理服务器,跳过IP地址限制

IP地址限制是一把双刃剑,一般不会遇上,以为万一,还是要学习如何获取免费的代理服务器,跳过网站对IP地址的限制。

4.5 心有灵犀一点通——使用图片识别,跳过验证码的限制

验证码是很多网站防抓取的重要手段,学习如何通过已有工具,识别验证码中的数字,跳过验证码的验证限制。


        因为是第一次讲课,因此存在不少的问题。


        首先,因为基础知识准备过多,导致在第一天上午没有办法完全讲完,而且,准备好的异常处理、多线程和函数的这几个知识点,没有讲,但是貌似并不影响课程的进行,这几个难点,其实可以从课程大纲中去掉。


        其次,在讲解图片中的文字识别的时候,软件并没有讲解好tesseract-ocr的安装,在下次的课程之前,应该出一份该软件的安装文档,让学员自己安装和配置好环境,一一替他们安装配置好,花费了大量的时间,的确是挺浪费时间的。


        然后,在讲解爬虫的攻防的时候,因为之前项目的考虑不周,在前一天晚上没有把这个爬虫跑一次,没有发现文书网多了验证码识别的反爬虫策略,导致现场演示的时候,出了岔子,还好现场解决了一部分的问题。


        还有,讯飞文字转语音的功能在这次的课程中没有讲解,因为在前一天的晚上在MAC上调试这个功能,发现讯飞的文字转语音功能,并不提供MAC版本的支持,这个我直接在课程中跳过,发现也不影响课程的整体进度。


        最后,我发现使用Python搭建一个博客这个章节的内容,完全没有必要讲解,因为学员是零基础,要理解Web开发,真的是非常难,这个部分可以在下一次开课中删掉,而且对理解爬虫,也没有很大的用处。


        因此,这次的课程,肯定是存在很多问题和有待改进的,在下次开课之前,好好修改一番。


        最后,感谢各位同学的信任和支持。



【声明】内容源于网络
0
0
数据分析实战
数据科学实战型原创文章分享,包括但不限制于R、Python、Spark、MySQL等在数据分析、数据挖掘、数据抓取、数据可视化 的精品分享,个人官网:www.datastudy.cc
内容 84
粉丝 0
数据分析实战 数据科学实战型原创文章分享,包括但不限制于R、Python、Spark、MySQL等在数据分析、数据挖掘、数据抓取、数据可视化 的精品分享,个人官网:www.datastudy.cc
总阅读21
粉丝0
内容84