网站地图 | RSS订阅 老铁博客 - 上海SEO优化|上海网站建设|蜘蛛池出租|站群代搭建
你的位置:首页 » 站群搭建 » 正文

做研究必读:一分钟教你用Excel从统计局抓数据!

2019-6-14 21:26:35 | 作者:老铁SEO | 0个评论 | 人浏览

  扑克导言:在这个用数据说话的时代,能够打动人的往往是用数据说话的理性分析,无论是对于混迹职场的小年轻,还是需要数据进行分析和研究的同学,能够找到合适的数据源都是非常重要的。特别是想要对一个新的领域进行研究和探索,拥有这个领域的数据那都是有十分重要的意义的。在这里给大家推荐一个能够用Excel从统计局抓数据的方法,有了这个方法,你在数据收集上的效率将得到大幅提升。

  现在呢,从网上爬虫数据来做分析越来越火,如果不会这个skillset做数据处理简直没办法装逼。作为一个兴趣广泛的高能物理phd,自然不能被时代落下。

  首先声明,我并没有学过HTML的语言,也没学过VBA,所以自己解释的逻辑应该是非常容易理解的,保证没有任何编程基础的都能学会。当然前提是你有Excel,没有的话出门右转有盗版。

  文中的方法其实完全不限于抓取统计局的数据,任何网站都可以想抓就抓,简直如若出入无人之境。(文末有彩蛋哟!)

  起初呢,是因为之前业余想试着分析分析中国的宏观数据,上了一下统计局的网站,结果发现简直是灾难...

  先来看看美联储的网站:(近期发现好多国内金融文章都开始用这个fed的图了,是不是因为我之前的Macro文章传播的呢~嘚瑟一下)

  数据量极其丰富,简直想怎么操作就怎么操作,各种加减乘除还有对比应有尽有。

  如上图就是我想研究carry trade对于美国股市的影响,把他们放在一起可以把相关性看得一清二楚,对整理逻辑非常方便。

  这一对比就看出来社会主义勤劳质朴的优越性了,自己动手丰衣足食,一个一个数敲进去吧。

  我这人比较懒,正当想要放弃的时候突然灵机一动,是不是爬虫可以帮我这个忙呢?

  赶紧在知乎上面狂搜一通,发现大部分都是Python语言,估计上手至少得花个好几天。有没有更简单粗暴一点的呢?接着我就搜到了这个问题下面的答案,

  这里呢,Excel其实对于mac用户非常不友好,因为从网上抓数据这个功能被删掉了,毕竟是Windows的软件...不过不用气馁,我们还有Google doc。当然,对于Windows用户就没有这个问题了。

  然后把光伟正的统计局网页地址放在第一格以示崇敬。(这里我选取的网页是上个月公布的PMI指数,2017年2月中国制造业采购经理指数为51.6%)

  第一个值就是从A1,也就是统计局网页地址所在Excel的位置来告诉这个function区哪儿抓数据。

  第二个值就是选取“table”这个格式,也就是告诉这个function我们想要的是指定网页上面的表格。我们可以从下面的注释看到还有一个选项是“list”,这个是在HTML里面的另一个格式,我们需要的是表格,所以此处可以暂时忽略。(这里有一个很大的限制就是只能选取这个两个格式,如果要做更复杂的condition判断的话就不太可能了,如果stick to Excel的话可能需要借助VBA了。但这里我们只介绍最简单的数据抓取方式。)

  是不是感觉意犹未尽呢?做好了接受高级装逼知识的思想准备,结果咻的一声就没了?

  但是身为一个合格的科研人员,工作就是搞清楚为什么。接下来,我们可以更细致看一看具体这个function是怎么抓取的。

  首先呢,我们需要用Google浏览器。因为这个浏览器有一个特殊的技能,那就是“Inspect”。

  其实呢,这个快捷键做的事情很简单,就是指出你鼠标所在位置的代码。右上角那一坨东西就是这整个网页的代码,其中自然也包括了我们需要的表格部分的代码。

  Excel所做的事情呢,也就是从这一坨代码里面找出我们需要的表格“table”,然后把表格的内容复制到Excel里面供我们尽情玩乐。

  如下图,我们可以看到“table”这个关键字吧,所指代的就是左边的那张表,然后“table”其下的内容就是这张表是怎样呈现在网页上的。

  但是对于统计局网站的数据抓取其实有一个问题,因为他是一个一个网页发布的数据,并且跟其他数据混在一起随机排列,所以说具体选取需要抓取的网页还是得人工了。当然Excel还有一个function叫做IMPORTxm_x_l( ),这个function是用来抓取某一个xpath_query的,不局限于上面IMPORTHTML( )这个function只能抓table或者list。

  所以也可以借助这个function来将网页中的信息,比如说搜索具体关键字的网页地址输入到Excel,然后再将这个网页地址自动输入到一开始的IMPORTHTML( ) function里面用来抓取所有选中网页的table或者list。

  其实利用VBA也可以做这件事,不过可能就需要另外学习一下VBA了,不过大概思路感觉应该是这样。

  当然如果有编程背景的最好还是用Python或者Java来做爬虫啦,毕竟比较主流,工具包也比较多。后面我也许会再更新一下用Python来做这件事,不过,我懒。

  最后的最后,再悄悄告诉一个宇宙无敌超级霹雳最最最简单的方法,简直独门绝技,而且保证一秒钟就学会,无需任何知识背景。

  • 本文来自: 老铁博客,转载请保留出处!欢迎发表您的评论
  • 相关标签:vba抓取网页数据  
  • 已有0位网友发表了一针见血的评论,你还等什么?

    必填

    选填

    记住我,下次回复时不用重新输入个人信息

    必填,不填不让过哦,嘻嘻。

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。