从爬虫到可视化,我的数据拓展之路

2020-06-23 00:00:00 数据 简单 爬虫 可视化 房子

史前时代

大数据时代,媒体热闹,隔三差五被微信朋友圈的文章洗礼,Hadoop、Spark、Redis、Elastic Search,漂亮的名词背了不少,好像学了很多,然而其实并不会用。



刚进入数据领域,为了理解潮流的名词,我买了本数据仓库的书,书写的比较有条理,很长很学术,很厚很完整,我从晚上12点看,基本12.30就睡着了,催眠作用比喝牛奶实用的多,可以想象后这本书压箱底了几年,而且直到现在还压着。

作为一个大公司的码农,如果寻求安逸,大家可以在自己的领域里很舒服,比如很早的我,作为可视化工程师从来就不碰数据,用个random函数做个假数据,和后端工程师对下格式,后把自己造的数据换成服务器的真数据就好了。数据无非是后端给到我的一个api,其实不关心后端在干嘛也可以混的顺理成章。那我知道webgl渲染的一些细节,知道怎么去做可视化映射,怎么利用canvas和div做动画,但仍然不会写SQL,不知道数据库是怎么存数据的,也不知道怎么去搞分析,不知道一个数据可视化在商业分析中扮演了怎样的角色,不知道业务方会想些什么,以及什么交互对用户是很重要的。

产业越大,切的越细,数据就是这样,我们想想简单的数据处理,就是一张excel的表格,写个函数加减乘除,妥妥拽拽就可以求点结果画点图,中学生都会做,但当你数据量大了,数据的依赖多了,分析复杂了,有了客户端,有安全性问题,七八十来个因素一加,这个产业就被复杂的工种切得支离破碎,从前大家都会用excel,现在一些人就活在了自己领域的孤岛里,比如我们做数据可视化,可以把可视化做的更美更交互,但其实人家发明excel的时候是为了解决数据统计问题,美美的数据可视化并不完全解决人家的商业问题,我们如何让自己的技术栈变得更广一点?

新世界的窗户

当大河发源于冰川的时候,有时小的和后山上的小溪一个体量,同理一个学科的初衷也许简单的惊人,分分钟就能搞出一个demo,比如写爬虫,请求服务器,解析下,完了存起来,你在nodejs写不到20行就可以搞小demo:

从某种意义上说,百度是中国大的爬虫,从一个简单的初心出发,爬虫可以从20行的小程序到变成一个40000人公司的核心技术(当然比喻极端了点) 当然我们也没有那么多野心,无非是这个程序怎么可以变得更强大,更重要的是更酷更有趣。

从某一年的秋天开始,我写下行爬虫发现入门是如此简单后,就开始孜孜不倦地去爬取各种网站,根据写网站的一点简单经验,可以说那些不用登陆的二线互联网公司的网站基本是爬的一马平川,餐饮、火车票、飞机票、poi点,一切都来的很爽很简单。

找一点意义

上大一的时候,曾经非常讨厌C++课,因为看不懂黑界面里跑的“Hello World”有啥意义,同理,我相信这个只能在命令打印一行数据的爬虫对80%人来说也乏善可陈,我们的爬虫如何变得更酷呢?

如果考试和魔兽争霸一样有趣,正常智商的人都能成为超级学霸,如果我们玩的技术有趣一点,我们就能发展自我驱动的学习。爬虫有啥用,需要把简单的技术嫁接到有意思的事情上去,比如做可视化,我们用数据去量化我们朦胧感知的世界,比如用杭州市外卖的数据去印证滨江区现在发展到啥程度了,比如看上海的各种业态在上海不同的区域里怎么分布,比如用招聘网站的数据看哪个职位更有钱途,过去我们知道房子保值,也知道IT是个很热门的方向,但我们未必知道哪个城市的某几个版块涨的快,IT的哪个领域有机会,趋势又是怎样的。我们如何获得真实的数据然后让人看明白趋势找到有价值的区域?

房子是许多人这辈子大的投资,因此研究也许对你非常重要,而仔细想想,房价这玩意,价值大而数据量小,一个上海两千万人, 700万户房,x%正在交易,你说这个数据能有多大?一个链家正在卖的房子10万套,我们不用hadoop,不用spark,搞搞mysql或者postgres,常见的数据库就可以畅游房价数据。

那么,直接的房价应用就是选房了,房源的信息很多,我们的要求很多,链家网的选择器按钮却很少,生了娃的丈母娘公公婆婆一起住,至少是三室一厅的房,你又有了心仪的版块,其他版块的房子距离上班太远,房龄太老的房子不想住,不想提前和一群老年人住一块,其实首付有没有那么多,其实月供也略紧巴,一定不能超出x万元,然后,带个搞笑的,搞不好哪家亲戚说门牌号不能带4...

根据这么多要求,你看链家网的房源,搞不好看的头昏脑胀,你跑到店里去问中介,中介大概觉得你要求太高不好对付,那么还有一种办法,我们把链家网所有的数据趴下来,然后写个sql,这样我们可以看全上海的房源有没有match你的房子了:

简单的的sql选择语句,就可以解决你的查询之苦,sql还有许多用法,sql也不仅仅只针对一个数据库,我们的房价应用也不仅仅可以给自己找房子,你是一个开发商,你是一个中介公司,你是房屋管理部门,这份数据的使用方式都不一样。

有一个问题,如果我们的sql查出来很多数据,我们看的很累,那该怎么办?

数据可视化

这是我的职业,也是我写到这里比较缺乏激情的部分,因为平时做的太多了。

但过去的几年里,当我把真实的数据画出来的时候,已经产生过无数次震撼,如果我们画地图,把全球数千个城市跃然图上,当我们把每个城市的麦当劳和肯德基放在一起对比,当我们把城市所有房子的单价、总价、增长幅度分别画在地图上...无论是房子、基站还是个人lbs甚至一个物联网设备,在城市的尺度都是一个点。当可视化呈现,你都会发现许多趋势,有时并不是点本身让你发现了惊喜,而是整个社会有机生长所产生的pattern,让你产生了新的思考和认识。

数据可视化千千万,地理可视化也无穷尽,地理只是其中的一块,但窥一斑而知全豹,我们如何去实现原生的地图点图,又如何用可视化界通用的d3去实现点图,又如何用leaflet这样偏gis的库去实现,点图是否随着缩放而变化,在缩放的过程中是固定了像素还是固定了尺度,是否可以随着时间的迁移而运动,是否采用不同的渲染方案去绘制,是否可以让点击而产生一些交互...

可视化的选择也很多,其实excel和keynote就很好,你不一定需要编程,编程也不一定需要搞GIS,GIS也有许多种,但其实小小的点图既简单又不简单,有聊聊数行代码写得完的点图,也有洋洋洒洒数百行写不完的,延伸而言,每一种知识都不难理解,做完美每一件事情都不简单,这也是可视化存在的意义,而不是前人就发明了一种的可视化方法。

相关文章