400-685-0732 电话咨询定制营销方案
关注专业seo外包公司
SEO创新会
文军营销
大数据驱动  让营销不走弯路

利用python进行数据分析 python如何抓取数据

首页  >   网站建设  >  利用python进行数据分析 python如何抓取数据

在编程当中有许多语言,有c语言,有C++语言,有basic语言,也有Pascal语言,这些语言都是比较常见的,而python也是编程语言当中的一种,如果不是专业的人员,对于这一编程语言是不了解的。那么这一编程语言是什么?又是如何使用的呢?接下来我们就一起来好好的了解一下吧。

利用python进行数据分析——python是什么

Python是一种开放源代码的脚本编程语言,这种脚本语言特别强调开发速度和代码的清晰程度。它可以用来开发各种程序,从简单的脚本任务到复杂的、面向对象的应用程序都有大显身手的地方。Python还被当作一种入门程序员最适合掌握的优秀语言,因为它免费、面向对象、扩展性强同时执行严格的编码标准。

利用python进行数据分析之抓取数据的方法

  1. 正则表达式

当我们使用正则表达式抓取国家面积数据时,首先要尝试匹配元素中的内容,如下所示:

从上述结果看出,多个国家属性都使用了< td class=”w2p_fw” >标签。要想分离出面积属性,我们可以只选择其中的第二个元素,如下所示:

虽然现在可以使用这个方案,但是如果网页发生变化,该方案很可能就会失效。比如表格发生了变化,去除了第二行中的国土面积数据。如果我们只在现在抓取数据,就可以忽略这种未来可能发生的变化。但是,如果我们希望未来还能再次抓取该数据,就需要给出更加健壮的解决方案,从而尽可能避免这种布局变化所带来的影响。想要该正则表达式更加健壮,我们可以将其父元素< tr >也加入进来。由于该元素具有ID属性,所以应该是唯一的。

这个迭代版本看起来更好一些,但是网页更新还有很多其他方式,同样可以让该正则表达式无法满足。比如,将双引号变为单引号,< td >标签之间添加多余的空格,或是变更area_label等。下面是尝试支持这些可能性的改进版本。

虽然该正则表达式更容易适应未来变化,但又存在难以构造、可读性差的问题。此外,还有一些微小的布局变化也会使该正则表达式无法满足,比如在< td >标签里添加title属性。
从本例中可以看出,正则表达式为我们提供了抓取数据的快捷方式,但是,该方法过于脆弱,容易在网页更新后出现问题。幸好还有一些更好的解决方案,后期将会介绍。

  1. Beautiful Soup

Beautiful Soup是一个非常流行的 Python 模块。该模块可以解析网页,并提供定位内容的便捷接口。如果你还没有安装该模块,可以使用下面的命令安装其最新版本(需要先安装 pip,请自行百度):

使用 Beautiful Soup 的第一步是将已下载的 HTML 内容解析为 soup 文档。由于大多数网页都不具备良好的 HTML 格式,因此 Beautiful Soup 需要对其实际格式进行确定。例如,在下面这个简单网页的列表中,存在属性值两侧引号缺失和标签未闭合的问题。

如果 Population 列表项被解析为 Area 列表项的子元素,而不是并列的两个列表项的话,我们在抓取时就会得到错误的结果。下面让我们看一下 Beautiful Soup 是如何处理的。

从上面的执行结果中可以看出,Beautiful Soup 能够正确解析缺失的引号并闭合标签。现在可以使用 find()find_all() 方法来定位我们需要的元素了。

  1. Lxml

Lxml 是基于 libxml2 这一 XML 解析库的 Python 封装。该模块使用 C语言 编写,解析速度比 Beautiful Soup 更快,不过安装过程也更为复杂。和 Beautiful Soup 一样,使用 lxml 模块的第一步也是将有可能不合法的 HTML 解析为统一格式。下面是使用该模块解析一个不完整 HTML 的例子:

同样地,lxml 也可以正确解析属性两侧缺失的引号,并闭合标签,不过该模块没有额外添加 < html > 和 < body > 标签。解析完输入内容之后,进入选择元素的步骤,此时 lxml 有几种不同的方法,比如 XPath 选择器和类似 Beautiful Soupfind() 方法。不过,后续我们将使用 CSS 选择器,因为它更加简洁,并且能够在解析动态内容时得以复用。此外,一些拥有 jQuery 选择器相关经验的读者会对其更加熟悉。

以上就是有关利用python进行数据分析的所有内容,从这里我们就可以知道至于语言,在网站优化的过程当中是非常重要的,也是经常会使用到的一种方法,所以如果你是网络优化的从业者,那么学习这一编程也是非常必要的。如果想了解更多的内容,欢迎关注我们文军营销的官网。

copyright@2015 上海文军信息技术有限公司 沪ICP备10034044号-8 网站地图