大数据初体验——基于地图可视化分析新浪新闻评论地域分布特点
2016-11-13 12:53
676 查看
**概述:**本文带领大家初次体验大数据处理的一些经过,从从灵感的迸发,信息的获取,数据的处理,到地图可视化,各方面都进行了抛砖引玉的论述,对于部分技术细节也做了些许探讨,希望能和大家一起捅破大数据处理的窗户~~一、灵感的迸发==============平时在网上浏览新闻的时候,我总能沉浸其中,无法自拔,好吧,我说的是各种神评论……所谓,高手在民间,水军在遨游,键盘侠在江湖,往往一条百十来字的新闻短讯,总是能轻易获取百万千万的点击量和关注度,尤其是关于娱乐圈爱恨情仇,更是能一石激起千层浪,吊足了观众胃口,博满了大众眼球,对于我这种无欲无求的吃瓜群众,也总能在各种撕X大战的评论中体会到汉语的博大精深,跪倒在网友的脑洞大开之下。所以我就特别好奇,都是那些才华爆表的网友爆出了这些个奇葩金句?
咱就不八卦了,看一些正能量的新闻
点开新闻的评论,可以看到没条评论显示的详细信息:
每条评论都有位置信息,我们把每一条评论收集下来,汇总处理,就可以在地图上显示了。
二、信息的获取==============
利用python爬虫,获取每一条评论的信息,把得到的详细信息保存成csv格式的文件。我们一步一步来实现:
第一步,分析获取评论信息时浏览器都提交了什么。----------------------------------------------
点击新闻链接,得到新闻网址(http://news.sina.cn/2016-11-12/detail-ifxxsfip4563934.d.html?pos=3)利用chrome浏览器的开发者工具,获取到浏览器提交的数据
对应的request
header为
[*http://cmnt.sina.cn/aj/v2/index?product=comos&group=0&index=fxxsfip4563934&page=1*](http://cmnt.sina.cn/aj/v2/index?product=comos&group=0&index=fxxsfip4563934&page=1)有耐心的话我们可以多测试几次就发现,不同新闻的评论网址中,index的值不同,同一新闻不同评论页面的page值不同,而index的值,就是我们访问的新闻地址中的detail的值:(http://news.sina.cn/2016-11-12/detail-ifxxsfip4563934.d.html?pos=3)(红色部分)。到这里就好办了,把新闻地址中的detail-i后面的字符串提取出来,再按照新闻评论的地址构造request请求地址,就可以获得新闻评论的详细信息,通过改变page的值,就可以获得每一页的评论。代码如下:
第二步,获得页面信息,利用正则表达式分析网页并提取我们所关心的信息。--------------------------------------------------------------------
这一步比较简单,就是简单地网页解析,这里我们获取了"ip"IP地址、"area"位置信息,"content"评论内容,"nick"昵称,"time"时间,"config"用户终端类型,"agree"点赞数,"face"头像图片链接等一些信息,再保存成csv格式就好,额外的,我这里利用百度开放API把位置转化成经纬度显示。
最后得到的csv文件打开是这样的(我只爬取了前二十页的评论内容,当然,真正的大数据往往处理的都这就是百万千万亿万的数据,我这里只是那几百上千的数据初步体验一下~~)
在这个表格中,共获取了728条这样的数据
第三步,数据的处理------------------
刚才获得的信息里面,就包含了前二十页评论的全部内容,对于这样的初步数据,还是有一些粗糙的,比如说,用户名有重复(为什么会有重复呢?因为同一个评论可能又被其他用户评论了,所以一个评论可能会多次出现),评论内容有重复(可能同一个用户多次发同一个评论,可能不同人发送相同评论),这些数据在我们下一步可视化处理之前,都要根据我们的用途做不同程度的优化。我下一步要分析的是不同地区用户的分布,需要的数据就是用户名,对应的位置信息这两项。因此在这里假设每一个用户可能多次评论,但简单地认为该用户就在这一个地区使用,也就是说,我们要先剔除重复的的用户,保证每个用户名只出现一次。利用excel的函数即可实现。先把本次处理需要的数据提取出来新建一个表格
仔细分析上图数据,我们发现存在有问题,一是同一用户位置和地址显示的有的不一致。其中位置是我在网页中爬取得,地址和坐标是利用网页爬取到的IP转换的,之所以会有这样的问题存在,可能和数据源的差异有关,不过在所有数据中,这一部分误差是很小的。那么这里我为什么要根据IP载重新获取地址呢,我考虑的是按照IP来作为我处理的标准,除去个别可能用代理IP来看新浪新闻的用户,其实IP还是能真实反映出用户发表评论时的所在地。二是同一个用户,发表了不同的评论,所以他的用户名出现了两次,像这样的就要剔除掉重复的。根据用户名剔除重复的,最后数据如下:
七百多个评论中,有将近三百个重复的,说明用户讨论的还是比较多的,因为只有用户之间相互回复评论,才能出现这么多重复的用户名
第四步,可视化处理。====================
在数据分析软件中(我用的是适合新手操作的网页版),按照要求的格式上传数据,选择图表模式,一步一步就得到了我们想要的结果了——是不是一眼就看出来那些地区的新浪用户多了吧。打开地图看一看,有没有你附近的人刚刚发表了神评论~~大体分布:
点击某个标记,即可看到评论的详细信息
更改地图模板,看看用户分布热力图
**原来这些用户大都来自沿海地区额。毕竟沿海地区发达,用手机的人多,对特朗普新闻关注的可能性也大。内地的互联网发展起来还有很大空间。其实图中显示的贵州、川渝地区也相对于其他西部地区密集,成都不愧是西南的中心城市,贵州前期重点发展的互联网、云技术看来也为互联网繁荣奠定者基础。
当然这只是简单一个分析,毕竟我们取得的样本的合理性还有待商榷,不过方法就是这样的方法,路子就是这样的路子,当我们有精确地数据来源,按这个方法来就可以了。数据处理完了,我们根据这张图有什么细思极恐的发现吗?反正我是只看到了如果下一次我们对淘宝的某一个热销产品爬取一下数据,获得购买这一产品的用户分布,比如说三星note,是不是就可以得到一张“不定时炸弹分布图”呢?商家是不是可以根据这些分布图来布局促销方案,或者在那些购买者比较多的地区多开设服务站呢?这也就是大数据带给我们的福利吧!
咱就不八卦了,看一些正能量的新闻
点开新闻的评论,可以看到没条评论显示的详细信息:
每条评论都有位置信息,我们把每一条评论收集下来,汇总处理,就可以在地图上显示了。
二、信息的获取==============
利用python爬虫,获取每一条评论的信息,把得到的详细信息保存成csv格式的文件。我们一步一步来实现:
第一步,分析获取评论信息时浏览器都提交了什么。----------------------------------------------
点击新闻链接,得到新闻网址(http://news.sina.cn/2016-11-12/detail-ifxxsfip4563934.d.html?pos=3)利用chrome浏览器的开发者工具,获取到浏览器提交的数据
对应的request
header为
[*http://cmnt.sina.cn/aj/v2/index?product=comos&group=0&index=fxxsfip4563934&page=1*](http://cmnt.sina.cn/aj/v2/index?product=comos&group=0&index=fxxsfip4563934&page=1)有耐心的话我们可以多测试几次就发现,不同新闻的评论网址中,index的值不同,同一新闻不同评论页面的page值不同,而index的值,就是我们访问的新闻地址中的detail的值:(http://news.sina.cn/2016-11-12/detail-ifxxsfip4563934.d.html?pos=3)(红色部分)。到这里就好办了,把新闻地址中的detail-i后面的字符串提取出来,再按照新闻评论的地址构造request请求地址,就可以获得新闻评论的详细信息,通过改变page的值,就可以获得每一页的评论。代码如下:
第二步,获得页面信息,利用正则表达式分析网页并提取我们所关心的信息。--------------------------------------------------------------------
这一步比较简单,就是简单地网页解析,这里我们获取了"ip"IP地址、"area"位置信息,"content"评论内容,"nick"昵称,"time"时间,"config"用户终端类型,"agree"点赞数,"face"头像图片链接等一些信息,再保存成csv格式就好,额外的,我这里利用百度开放API把位置转化成经纬度显示。
最后得到的csv文件打开是这样的(我只爬取了前二十页的评论内容,当然,真正的大数据往往处理的都这就是百万千万亿万的数据,我这里只是那几百上千的数据初步体验一下~~)
在这个表格中,共获取了728条这样的数据
第三步,数据的处理------------------
刚才获得的信息里面,就包含了前二十页评论的全部内容,对于这样的初步数据,还是有一些粗糙的,比如说,用户名有重复(为什么会有重复呢?因为同一个评论可能又被其他用户评论了,所以一个评论可能会多次出现),评论内容有重复(可能同一个用户多次发同一个评论,可能不同人发送相同评论),这些数据在我们下一步可视化处理之前,都要根据我们的用途做不同程度的优化。我下一步要分析的是不同地区用户的分布,需要的数据就是用户名,对应的位置信息这两项。因此在这里假设每一个用户可能多次评论,但简单地认为该用户就在这一个地区使用,也就是说,我们要先剔除重复的的用户,保证每个用户名只出现一次。利用excel的函数即可实现。先把本次处理需要的数据提取出来新建一个表格
仔细分析上图数据,我们发现存在有问题,一是同一用户位置和地址显示的有的不一致。其中位置是我在网页中爬取得,地址和坐标是利用网页爬取到的IP转换的,之所以会有这样的问题存在,可能和数据源的差异有关,不过在所有数据中,这一部分误差是很小的。那么这里我为什么要根据IP载重新获取地址呢,我考虑的是按照IP来作为我处理的标准,除去个别可能用代理IP来看新浪新闻的用户,其实IP还是能真实反映出用户发表评论时的所在地。二是同一个用户,发表了不同的评论,所以他的用户名出现了两次,像这样的就要剔除掉重复的。根据用户名剔除重复的,最后数据如下:
七百多个评论中,有将近三百个重复的,说明用户讨论的还是比较多的,因为只有用户之间相互回复评论,才能出现这么多重复的用户名
第四步,可视化处理。====================
在数据分析软件中(我用的是适合新手操作的网页版),按照要求的格式上传数据,选择图表模式,一步一步就得到了我们想要的结果了——是不是一眼就看出来那些地区的新浪用户多了吧。打开地图看一看,有没有你附近的人刚刚发表了神评论~~大体分布:
点击某个标记,即可看到评论的详细信息
更改地图模板,看看用户分布热力图
**原来这些用户大都来自沿海地区额。毕竟沿海地区发达,用手机的人多,对特朗普新闻关注的可能性也大。内地的互联网发展起来还有很大空间。其实图中显示的贵州、川渝地区也相对于其他西部地区密集,成都不愧是西南的中心城市,贵州前期重点发展的互联网、云技术看来也为互联网繁荣奠定者基础。
当然这只是简单一个分析,毕竟我们取得的样本的合理性还有待商榷,不过方法就是这样的方法,路子就是这样的路子,当我们有精确地数据来源,按这个方法来就可以了。数据处理完了,我们根据这张图有什么细思极恐的发现吗?反正我是只看到了如果下一次我们对淘宝的某一个热销产品爬取一下数据,获得购买这一产品的用户分布,比如说三星note,是不是就可以得到一张“不定时炸弹分布图”呢?商家是不是可以根据这些分布图来布局促销方案,或者在那些购买者比较多的地区多开设服务站呢?这也就是大数据带给我们的福利吧!
相关文章推荐
- 数据可视化,在地图上分析供应链/销售/物流网络
- 利用python数据分析——基于Seaborn模块可视化
- PLUTO平台是由美林数据技术股份有限公司下属西安交大美林数据挖掘研究中心自主研发的一款基于云计算技术架构的数据挖掘产品,产品设计严格遵循国际数据挖掘标准CRISP-DM(跨行业数据挖掘过程标准),具备完备的数据准备、模型构建、模型评估、模型管理、海量数据处理和高纬数据可视化分析能力。
- 基于.NET 2.0的GIS开源项目SharpMap分析手记(四):地图数据访问机制分析
- 基于.NET 2.0的GIS开源项目SharpMap分析手记(四):地图数据访问机制分析
- 牛博牛人 基于twitter的可视化数据分析 – 麦子麦–DBWinds
- 基于机器学习的NLP情感分析(一)---- 数据采集与词向量构造方法(京东商品评论情感分析)
- python画地图数据可视化分析
- PLUTO平台是由美林数据技术股份有限公司下属西安交大美林数据挖掘研究中心自主研发的一款基于云计算技术架构的数据挖掘产品,产品设计严格遵循国际数据挖掘标准CRISP-DM(跨行业数据挖掘过程标准),具备完备的数据准备、模型构建、模型评估、模型管理、海量数据处理和高纬数据可视化分析能力。
- 可视化数据分析(一) 基于Javascript的D3实践学习
- 美国计算机科学与工程专业本科和硕士研究生课程设置特点分析——基于22所美国著名大学统计数据的分析
- 正则表达式的初体验:分析字符串数据
- BlogEngine.Net架构与源代码分析系列part3:数据存储——基于Provider模式的实现
- C语言数据类型大小分析(基于VC2005编译器)
- WEKA 数据挖掘可视化分析平台
- 基于flex及SVG技术打造交互式地图(数据篇)
- 在JDK 6.0中基于StAX分析XML数据
- BlogEngine.Net架构与源代码分析系列part3:数据存储——基于Provider模式的实现
- RTI推出首个基于数据分布服务标准的商用NDDS中间
- 分析Memcached客户端如何把缓存数据分布到多个服务器上