APP下载

基于Python的网站数据爬取与分析的技术实现策略

2020-07-04欧阳元东

电脑知识与技术 2020年13期
关键词:数据分析

欧阳元东

摘要:Python为网页数据爬取和数据分析提供了很多工具包。基于Python的BeautifulSoup可以快速高效地爬取网站数据,Pandas工具能方便灵活地清洗分析数据,调用Python的Matplotlib工具包能便捷地把数据分析结果图形可视化。本文以爬取www.fianqihoubao.tom网站的空气质量数据,分析爬取数据并可视化图形输出结果为例来阐述Python爬取和分析数据的技术内涵,旨在帮助读者理解与学习爬虫技术、数据清洗分析技术和结果图形输出技术。

关键词:Python;Pandas;Matplotlib;数据爬取;数据分析

中图分类号:TP393 文献标识码:A

文章编号:1009-3044(2020113-0262-02

1Python具有无与伦比的优点

TIOBE编程语言社区排行榜堪称编程语言中的“琅琊榜”,榜Python语言仅次于Java和C排在第三位。Python凭什么排行第三呢?因为Python具有编程简单明了,非常容易上手的优点。其次Python语言具有庞大的爱好者强力支持。爱好者们检索了健康活跃而且能提供有力支持的各种开发者社区。在社区里编程爱好者可以参考大量的文档,指南,教程。此外,Python的开发者社区拥有难以置信的帮助氛围,这意味着当有人需要帮助时,他们都会得到及时的响应和反馈。最重要的是Python有庞大的外围库支持,可以轻松地完成广阔的应用。Python在数据分析、数据挖掘、人工智能、web开发等方面都大有发挥之处,再加上人工智能大量依赖数据,数据获取和处理往往借助Python实现,因此,Python使程序员如虎添翼。

2 BeautifuiSoup工具轻松爬取网站数据

爬虫是大数据行业获取数据的核心技术,没有网络爬虫自动地、不分昼夜地、高智能地在互联网爬取免费的数据,就没有蓬勃发展的大数据企业。Python提供了多种网络数据爬虫工具,其中BeautifulSoup就是其中之一。BeautifulSoup是Pvthon的一个库,最主要的功能就是从网页爬取数据。它提供了一些简单实用的函数,通过html/xml文档为用户提供需要的数据。BeautifulSoup支持Python标准库中的HTML解析器,同时还支持第三方的解析器,可以比较准确,快速地爬取静动态网页数据。

3 Pandas可以轻松实现数据分析数据处理

Pandas是Python在做数据分析时常用的数据分析包嘲,也是很好用的开源工具。Pandas可对较为复杂的二维或三维数组进行计算,同时还可以处理关系型数据库中的数据。pandas提供了高级数据结构和函数,这些数据结构和函数让结构化、表格化数据的处理起来更加快速简单,更具表现力。Pandas提供的复杂索引函数具有处理数据的重组、切片、聚合、求子集的功能。Series和DataFrame是pandas中的数据结构。Series是一种一维的数组型对象,它经常用来处理表格数据的一行或者一列。DataFrame表示矩阵数据表,它包含一排序的列集合,每一列可以是不同的值类型。DataFrame既有行索引也有列索引,可以被视为一个共享相同索引的Series的字典。

4 matplotlib工具轻松呈现可视化图形结果

Matplotlib是一个用于生成出版级质量图标的桌面绘图包,它帮助用户在Python环境下进行MATLAB风格的绘图。它是一个有着良好跨平台交互特性2D绘图工具。数据处理后需要做描述统计用到的直方图、散点图、条形图等都会用到它,编程代码简单,绘图呈图容易。在证券行业做数据分析的K线图、月线图也可用matplotlib绘制。本文实例实现的直方图就是使用matplotlib绘制而成的。

5爬取www.tianqihoubao,com网站数据并分析的技术实现

WWW.fianqihoubao网站叫天气后报网,它提供全国国内城市历史天气查询,天气预报,国际城市历史天气预报以及空气质量pr02.5查询。本实例就是以爬取本网站提供的北京、上海、武汉在2018年全年的天气质量情况数据,清理,分析爬取的数据最后通过直方图呈现出来。

5.1北京上海武汉三地天气数据的爬取算法实现。

笔者定义了二个方法实现数据的爬取,一个是get_data(url)。通过传人url参数实现。具体是设置反爬虫的headers,让headers的user-agent鍵值为WWW.tianqihoubao.eom的页面的us-er-agent值,同时用requests get的方法去爬取数据,在getO方法传递两个参数,一个是ud,一个是headers=headers,这样的目的是对方服务器不会检测到是在爬虫爬数据,具有反爬虫的作用。接下来调用BeautifulSoup工具,借用lxml解析器解析响应页面response.text。利用find(‘table)找到响应页面的表格数据。最后利用pandas的read_html方法把数据保存下来,同时去除表格行检索列。具体Python代码如下:

另一个方法是DataSpider()。该方法是为了拼接字符串实现北京、上海、武汉2018年天气质量数据的获取。get_dataf)实现过程是,先定义包含“beijing”“shanghai”“wllhan”的列表,定义爬取数据的年份变量,接着循环拼接需要保存天气质量数据的文件名,并进入第二层循环。第二层循环共实现12次循环,每一次循环都要拼接一次URL,让URL包含对应到一个城市一个月的准确网页地址,同时调用get_data0方法实现网页数据爬取,并把得到每个月该城市天气质量数据就添加到dfs列表中,最后进入第三层循环实现把爬取的数据按城市分类分别保存在指定的文件中。Python代码如下:

5.2数据分析算法实现

对获取天气质量数据可以做很多种类处理,比如对空值数据进行填充或丢弃,求每月数据的平均,取一年中温度最高的一天,查询最高PM25的值。下面笔者仅仅实现三个地PM25列数据做了平均处理来阐述数据分析方法。具体流程是调用pands的read_csv方法通过传参方式读取北京上海武汉三地数据文件bering-2018-AQI.CSV,shanghai-2018-AQI.csv,wnhan-2018-AQI.csv到指定变量中,并指定数据列名读取,再转换Date列为日期型索引,重采样并计算机每个月的PM25平均值。关键代码是:

6结束语

Python实现数据爬取、数据清洗、数据分析和数据处理可视化输出非常方便。本实例技术实现比较简单,但比较完整地探讨了利用Python实现网站数据爬取和数据清洗处理输出的通用过程,具有一定的通用性,希望能为读者带来参考和借鉴。

猜你喜欢

数据分析
浅析大数据时代对企业营销模式的影响