上一期我们讲解了使用 Python 读取 CSV、PDF、Word 文档相关内容。
前面我们已经介绍了网络数据采集的一些基础知识,现在我们将进入高级数据采集部分。到目前为止,我们创建的网络爬虫都不是特别给力,如果网络服务器不能立即提供样式规范的信息,爬虫就不能采集正确的数据。如果爬虫只能采集那些显而易见的信息,不经过处理就存储起来,那么迟早要被登录表单、网页交互以及 Javascript 困住手脚。总之,目前爬虫还没有足够的实力去采集各种数据,只能处理那些愿意被采集的信息。
在高级数据采集部分就是要帮你分析原始数据,获取隐藏在数据背后的故事——网站的真实故事其实都隐藏在 Javascript、登录表单和网站反爬措施背后。
数据清洗
到目前为止,我们都没有处理过那些样式不规范的数据,要么使用的是样式规范的数据源,要么就是放弃样式不符合我们预期的数据。但在网络数据采集中,你通常无法对采集的数据样式太挑剔。
由于错误的标点符号、大小写字母不一致、断行和拼写错误等问题,凌乱的数据(dirty data)是网络中的大问题。下面我们就通过工具和技术,通过改变代码的编写方式,帮你从源头控制数据凌乱的问题,并且对已经入库的数据经行清洗。
编写代码清洗数据
和编写异常处理代码一样,你应该学会编写预防型代码来处理意外情况。
在语言学中有一个模型叫 n-gram,表示文本或语言中的 n 个连续的单词组成的序列。再进行自然语言分析