编辑: 达达恰西瓜 2019-08-12
1.

1 1.2 1.2.1 1.2.2 1.2.3 1.3 1.3.1 1.3.2 1.4 1.4.1 1.4.2 1.5 1.5.1 1.5.2 1.6 1.6.1 1.6.2 1.6.3 1.7 1.7.1 1.7.2 1.7.3 1.7.4 1.8 1.8.1 1.8.2 1.8.3 1.8.4 1.9 1.9.1 目录 Introduction

一、获取 Web 资源 1-1 urllib 库1-2 异常处理 1-3 第三方工具

二、HTML 解析 2-1 Beautiful Soup 入门 2-2 DIY 萌娘搜索工具(字符集版)

三、Web API 3-1 DIY 外语翻译小工具(字符集版) 3-2 开源中国新闻解析(解析 XML)

四、数据存储 4-1 RSS 转 CSV(可供 *Excel 解析) 4-2 SQLite3 API

五、数据洗涤 5-1 Jupyter & Numpy & Pandas 安装 5-2 Numpy 矩阵运算 5-3 NBA 赛事数据洗涤(使用 Pandas)

六、数据可视化 6-1 Matplotlib 的安装与基本操作 6-2 Flask Web 框架 6-3 Highcharts API 6-4 英雄联盟角色属性的数据可视化

七、机器学习基础 7-1 关联规则 7-2 K-M 聚类算法 7-3 KNN 邻近算法 7-4 scikit-learn 框架

八、人工神经网络的实现 8-1 五分钟构建人工神经网络

1 1.9.2 1.9.3 8-2 反向传播算法原理 8-3 构建多个隐藏层

2 Python3 数据处理入门 全程以 Python3 为主要语言,讲解数据处理的基础知识和技术,涉及网络数据采集,数据分 析,数据可视化,机器学习等方面的基础内容. 特点: 1. 注重实际应用以及娱乐性 2. 提供实战项目、数据 3. 内容由简到难,由基础到进阶.同时也可以根据读者水平或兴趣,有选择的学习某些部 分4. 内容布置贴合本土环境,接地气,和国外优秀的书籍相比大量使用了国内的资源,以免 读者无法获取相关资料 5. 作者根据自身的经验,在一定程度上降低了读者做数据处理相关操作的难度,让学习更 加简单 6. 广泛使用开源工具并支持低性能计算机,让读者学习的成本降低 7. 已有对应的实验性视频教程(用以辅助学习) Introduction

3 urllib 库 获取 Web 端文本数据 首先我们来运行如下的Python3代码 from urllib.request import urlopen html = urlopen('https://www.python.org').read().decode() print(type(html)) print(html[:15]) 上面这段代码主要功能是获取Python官网的主页HTML源代码,然后打印出其中的一部分. 就其功能来看,代码量已经是非常少了,足见Python简单粗暴的特性. 下面我们来了解了解这段代码. 首先我们用 from urllib.request import urlopen 从urllib库的 request中引入urlopen方法;

然后我们用urlopen从https://www.python.org的获取一段Web资源, 用read从中读取出来,再经过decode解码并赋值给变量html;

最后我们输出html的部分 内容. 其中decode在缺省情况下会将数据以utf-8方式解码,所以看一下HTML页面的 也是有必要的. 目前为止我们已经完成了Python数据挖掘中具有Hello World意义的代码,我们可以用这个方 法去获取我们想要的文本类型的数据, 例如:html、txt、xml、css、js…… 获取 Web 端非文本数据 下面我们来尝试使用urllib库下载一张图片,代码如下: from urllib.request import urlopen img = urlopen('https://www.python.org/static/img/python-logo.png').read() with open('python-logo.png', 'wb') as f: f.write(img) 1-1 urllib 库4这段代码大多数地方我们都不必细说,不过其中有两个地方值得关注. 首先是类似图片、视频、编译后的程序等二进制文件,我们并不回对其使用decode解码;

其次是尽量在 with as 中打开文件资源. 做得好!现在我们已经可以初步的从Web端获取数据了. 构建中文 URL 我们也许会遇到一些由中文构成的URL,这种URL是不可以被直接放入urlopen当中的,我们 需要对其进行转码操作. 我们主要用到quote方法,用法如下: from urllib.request import urlopen, quote url_head = 'https://zh.moegirl.org/' url_word = 'Python娘' url = url_head + quote(url_word) html = urlopen(url).read().decode() print(html[:50]) 1-1 urllib 库5异常处理 URLError & HTTPError 当我们去访问Web端资源的时候,并不一定每次都一番风顺. 所以如果我们想把程序做的更 加健壮,那我们就需要对程序进行异常处理. Python的异常处理基础我这里就不多说了,我 们这里主要讨论访问Web资源的时候会遇到的异常. 具体来说主要有URLError和HTTPError. 前者是后者的父类,在发生和URL相关的异常时会激发,后者则主要是在与 HTTP相关的URL异常发生时被激发. 下面我来示范一下 from urllib.request import urlopen from urllib.error import URLError, HTTPError url = 'https://www.python.org' req = None try: req = urlopen(url) except HTTPError as e: print(e) print(e.code) print(e.reason) except URLError as e: print(e) print(e.reason) if req: html = req.read().decode() print(html[:50]) 异常处理的经验和简约方法 根据以往的经验,我们应该把子类的异常放在前面处理,正如范例中所安排的. 不过有些时 候我们可以用tuple来实现简约操作. try: req = urlopen(url) except (HTTPError,URLError) as e: print(e) print(e.code) # print(e.reason) 1-2 异常处理

6 1-2 异常处理

7 第三方工具 命令行工具 CURL curl命令是一个利用URL规则在命令行下工作的文件传输工具.它支持文件的上传和下载,所 以是综合传输工具,但按传统,习惯称curl为下载工具.作为一款强力工具,curl支持包括 HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文 件、用户代理字符串、限速、文件大小、进度条等特征.做网页处理流程和数据检索自动 化,curl可以祝一臂之力. 语法 curl [参数] eg: curl https://www.python.org curl https://www.python.org -o index.html --progress 命令行工具 WGET wget命令用来从指定的URL下载文件.wget非常稳定,它在带宽很窄的情况下和不稳定网络 中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下 载完毕.如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载.这对 从那些限定了链接时间的服务器上下载大文件非常有用. 语法 wget [参数] eg: wget https://www.python.org wget https://www.python.org -O - 1-3 第三方工具

8 如果想直接获取内容,我们可以用 curl https://www.python.org 或 wget https://www.python.org -O - , 如果想先存贮为文件,我们可以用 curl https://www.python.org -o index.html 或 wget https://www.python.org 在 Python3 中调用系统工具 那现在我们来尝试使用Python3来调用这些命令,并直接获取它们的返回. 我们要用到 Python3的 subprocess ,我们来看如下操作: import subprocess as sp cmd = ['curl', 'https://www.python.org'] req = sp.check_output(cmd) htm = req.decode() print(htm[:50]) 我们用到了 subprocess 里的 check_output ,这个方法默认接受list形式的命令如同变 量 cmd 所示, 然后会返回bytes类型的数据,我们可以用 decode 进行解码. 1-3 第三方工具

9 Beautiful Soup 入门 Beautiful Soup 简介 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的 转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时甚至数天 的工作时间. 安装 Beautiful Soup 如果你用的是新版的Debain或ubuntu,那么可以通过系统的软件包管理来安装: apt install python3-bs4 Beautiful Soup

4 通过PyPi发布,所以如果你无法使用系统包管理安装,那么也可以通过 easy_install 或 pip 来安装.包的名字是 beautifulsoup4 ,这个包兼容Python2和Python3. # 使用 easy_install easy_install beautifulsoup4 # 使用 pip pip3 install beautifulsoup4 注! 在PyPi中还有一个名字是 BeautifulSoup 的包,但那可能不是你想要的,那是 Beautiful Soup3 的发布版本,因为很多项目还在使用BS3, 所以 BeautifulSoup 包依然有效.但是如果你 在编写新项目,那么你应该安装的 beautifulsoup4 如果你没有安装 easy_install 或 pip ,那你也可以 下载BS4的源码 ,然后通过setup.py来安装. python3 setup.py install 如何使用 将一段文档传入BeautifulSoup 的构造方法,就能得到一个文档的对象, 可以传入一段字符串或 一个文件句柄. 2-1 Beautiful Soup 入门

10 from bs4 import BeautifulSoup soup_f = BeautifulSoup(open("index.html")) soup_s = BeautifulSoup("data") 首先,文档被转换成Unicode,并且HTML的实例都被转换成Unicode编码 对象的种类 Beautiful Soup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象,所有对 象可以归纳为4种: Tag , NavigableString , BeautifulSoup , Comment . Tag Tag 对象与XML或HTML原生文档中的tag相同: soup = BeautifulSoup('Extremely bold') tag = soup.b type(tag) # Tag有很多方法和属性,在 遍历文档树 和 搜索文档树 中有详细解释.现在介绍一下tag中最重要 的属性: name和attributes name 每个tag都有自己的名字,通过 .name 来获取: tag.name # u'b' 如果改变了tag的name,那将影响所有通过当前Beautiful Soup对象生成的HTML文档: tag.name = "blockquote" tag # Extremely bold Attributes 2-1 Beautiful Soup 入门

11 2-1 Beautiful Soup 入门 12

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题