中企动力 > 商学院 > excel获取网站数据
  • ?

    有了PowerQuery,Excel也可以玩爬虫了

    惜海

    展开

    PowerBI的强大绝不仅是最后生成炫酷的可视化报告,她在第一步数据获取上就显示出了强大的威力,利用Power Query 的强大数据处理功能,几乎可以从任何来源、任何结构、任何形式上获取数据

    以下以PowerBI中的操作为例,在Excel的Powerquery插件或者Excel2016中操作类似。

    数据的获取上不仅支持微软自己的数据格式,比如Excel、SQL Server、Access等;还支持SAP、Oracle、MySQL、DB2等几乎能见到的所有类型的数据格式,总有一种适合你;

    不仅能能从本地获取数据,还能从网页抓取数据。选择从Web获取数据,只要在弹出的URL窗口中输入网址,网页上的数据就可直接抓取到,用这种方法我们可以实时抓取股票涨跌、外汇牌价等等交易数据,现在我们尝试一下,比如从中国银行网站上抓取外汇牌价信息,先输入网址:

    点击确定以后,出现预览窗口,

    点击编辑,进入查询编辑器,

    外汇数据抓取完成,剩下的就是数据整理的过程了,而且这些抓取的信息可以随时刷新来更新数据的。这只是抓取外汇牌价的第一页,其实抓取多个页面数据也是可以的,等后面介绍过M函数以后再专门写一篇。

    以后再也不需要手动从网页上复制数据再粘贴到表格中了。

    其实每个人接触到的数据格式很有限,熟悉自己的数据类型知道如何导入到PowerBI以后,下一步就是进行数据处理的过程,这才是我们真正需要掌握的核心技巧。

  • ?

    PowerQueryM函数-Excel小爬虫之爬网页数据

    Page

    展开

    欢迎关注天善智能,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习,问答、求职一站式搞定!

    Power Query以往文章登陆天善社区:

    Power Query M函数(1)--数据类型及数据结构

    PowerQuery M函数2--计算方式与运算符

    Power Query M函数(3)--数据类型转换、元数据及错误处理

    通过前三节的学习,相信大家已经对M函数的基础知识有了一定的了解,从本节开始,将通过实用案例,为大家逐步介绍M函数的应用方法。

    本节将为大家介绍的案例是使用Web.Page与Web.Contents函数从PM2.5历史数据网站上爬取不同城市不同日期的历史大气质量相关数据的方法。本方法适用于通过在Power Query中输入网址便可直接获取到所需数据的情况(本案例是指网页地址中有可见表格数据的情况)。

    在进入正文前,先向大家介绍一种简单获取中文函数帮助信息的方法,方法如下:

    1. 在Power Query查询编辑器中新建一个空查询

    2. 在编辑栏中输入=#shared

    3. 点击“到表中”

    4. 通过对Name字段进行筛选的方法来获取相关的函数帮助信息

    Web.Page与Web.Contents函数说明:

    1. Web.Page函数:返回HTML文档的内容(分解为其组成结构),以及完整文档的表示形式及其删除标记后的文本

    表达式:Function(html as any) as table

    注释:使用Web.Page函数可以获取到HTML形式网页内的相关信息,并以表的形式返回结果

    2. Web.Contents函数:将从url下载的内容返回为二进制。可以提供可选记录参数options以指定其他属性。记录可以包含以下字段……(内容较多省略,详细说明请通过#shared查询)

    表达式:Function (url as text, optional options as nullable record) asbinary

    注释:付给Web.Contents网页地址后,Web.Contents函数可以将网页内的信息以二进制数的形式返回

    将两个函数嵌套使用Web.Page(Web.Contents(网址))后变可将网页内的信息最终以表的形式呈现出来。运算逻辑是先用Web.Contents函数获取指定网址内的二进制信息,再用Web.Page函数对二进制信息进行转换、解析,最终获得我们所能够理解的表形式数据。

    爬取PM2.5历史数据网页内各城市过去每天的历史大气质量数据:

    网页主地址:https://aqistudy/historydata/

    所需要的日均空气质量数据(以北京2014年1月份为例):

    网页地址:https://aqistudy/historydata/daydata.php?city=北京&month=2014-01

    使用Power Query对上述网页进行爬取的目的是能够批量一次性爬取多个城市各不同月份下的不同日期的大气质量历史数据。

    爬取步骤如下:

    1. 对网址特点进行分析后,发现只要将city=后边的部分改为想要的城市名,再将month=后边的部分改为想要的月份数字就可以打开不同城市,不同月份下的日历史数据网页

    2. 所以我们现在Excel表格界面建一个包含城市名和月份信息的表,并将其添加到Power Query中

    3. 将[月份]字段转换为文本型数据

    4. 在Power Query编辑器中添加自定义列,内容如下:

    公式内容:

    Web.Page(Web.Contents("https://aqistudy/historydata/daydata.php?city="&[城市]&"&month="&[月份]))

    5. 点击“继续”后选择“公共”并保存(数据量较大需耐心等待,练习时建议只做两个城市的数据)

    6. 展开自定义字段中的Data

    7. 再次展开自定义字段中的相关字段(从日期到排名)

    8. 关闭并上载

    上述内容就是爬取网页信息的全部步骤。好了,来看一下爬取到的数据吧。

    本文作者:李奇,天善社区专家,中国电子表格应用大会主席、天善智能/网易云课堂/经管之家等签约讲师,曾任职于IBM及德勤会计师事务所,从事业务分析及数据分析咨询工作,擅长用Excel创建商业智能报表。

    天善学院课程推荐:

  • ?

    互联网运营:借用Excel、web scraper做数据爬虫

    Polly

    展开

    不会写代码,借用第三方工具做数据抓取。抓取自己想要的、有用的数据!

    工具举例:Excel、谷歌浏览器、webscraper

    一、利用Excel

    利用excel抓取数据,以全国各地的PM2.5城市排名数据。

    抓取全国各地的空气质量排行榜

    1、打开Excel表格,选择数据一览下方的自网站,如下图所示:

    自网站

    2、打开自网站

    会有加载时间,可趁此打开所要抓取数据的网站

    3、打开pm2.5in,复制网址到Excel

    4、复制打开如下,注意地址

    1

    5、点击导入

    如出现任何问题,点“是”或者是“确定”

    6、看见“确定”就点

    7、数据抓取完成

    二、利用webscraper

    借用谷歌浏览器,插件webscraper。可以自己下载

    在下菜鸟一枚,实属不易。

    技术工作有点难,会的朋友留言交流交流吧!

  • ?

    原来网页上的数据表格,还可以这样导入到自己的Excel表中

    随风

    展开

    工作中经常会遇到在网页上看到一个数据觉得有需要,想要将其搬到我们自己的Excel。但是有些表格复制过来都是有设置了超链接还要一个个将其去除,还有一些别个复制过来是打乱了的。那么如何将网络上的数据导入到我们自己的Excel表格中呢?

    网页上的许多数据都是以表格的形式存在的,通过Excel可以直接从网页上获取这些数据。只需要通过【数据】选项卡中的“获取外部数据”工具即可获取网页里表格中的数据。

    有些数据表格是可以通过复制的,但是有些又不行,今天跟各位朋友分享如何将网页上的数据导入到自己的Excel表中的一个操作技巧,希望对大家有所帮助!

    1、新建一个空白工作簿,单击【数据】选项卡中的“自网站”按钮;在打开的对话框“地址”文本框中输入需要导入的网址,然后单击“转到”按钮;

    2、将网址粘贴到“地址”栏“转到”,找到自己需要的表格会看到一个“黄色框里面有个箭头”单击就会勾选选中这个表格,然后单击“导入”按钮导入选中的表格;

    3、弹出一个“导入数据”框,设置导入数据表格的位置,如A1单元格,然后单击“确定”按钮;

    4、看到“正在获取数据...”;

    5、网页导入数据表格(如图左边);网页复制数据表格文字有超链接(如图右边)有些复制出来这个数据是打乱的;

    网页导入数据表格与网页复制数据表格对比

    6、用“套用表格格式”一键美化导入进来的数据表格即可

    一键美化导入数据表格格式

    今天分享的“如何将网页上的数据表格导入到自己的Excel表中”方法有很多种,今天就分享这一种,希望对各位朋友们在工作中有所帮助。

    更多关于Office-Excel操作小技巧可加入我们群一起交流学习。

  • ?

    分享一段VBA,Excel获取实时股票数据

    踏羁旅

    展开

    欢迎关注天善智能,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习,问答、求职一站式搞定!

    天善学院618活动正在进行中!天善学院618大礼包,大数据、数据分析与数据挖掘、商业智能、机器学习、深度学习、数据库与数据仓库、R语言、Python精品课程总有一款正中你下怀吧?全场6.18折,赠送微课。最好的投资是投资自己,名额有限,欢迎登录查看!

    因为还没有熟练掌握用Ruby生成excel的技能,所以干脆学了一点VBA,写了段通过excel实时获取股票数据的代码。

    方便在excel里使用各种公式计算涨跌幅。

    分享如下:

    效果如下:

    本文作者:GalaxyRover

  • ?

    Excel的万用法:Excel获取网页表格数据

    颜三颜

    展开

    现如今,很多小伙伴都知道Python可以用来爬取数据,但是若想要零基础学习Python爬虫嘛,还是需要些时间去进行Python的学习的。不过如果是对于些简单的网页表格数据爬取那就没必要用上Python了。

    那今天我就来教大家如何不使用Python去爬取网页数据。

    论Excel的万用方法之一 对的,就是Excel,Excel表格就可以帮助大家实现简单网页表格数据爬取功能。

    首先找到大家想要爬取的数据表格

    例如今天我们来爬取中国天气网上的广东天气预报吧~

    然后我们将网站的链接复制下来,打开Excel,找到菜单栏上的:数据 – 自网站

    接着将刚刚复制下来的链接粘贴到刚打开的:新建Web查询

    单击转到后打开网站,在此处预览中找到你所要导入的数据表格然后勾选左上角即可

    选中以后点击右下角的导入即可将选择的表格数据导入到Excel中

    数据导入中……

    接下来 你就可以看到你想要的数据一一呈现在Excel表格中啦~

    也有的小伙伴有疑问了,这么导出的数据都是固定的,网页数据若有更新岂不是还要重新导入?

    其实不用,Excel也自带数据刷新的。我们还是在菜单栏中找到:数据-全部刷新下的链接属性

    在链接属性处,选择刷新条件,刷新频率、时间等。然后Excel就会依照你所设定的刷新属性,进行数据自动更新了~

    以上,就是一个全自动抓取并刷新数据的Excel表格完成~~

    当然利用Excel表格来爬取数据有优点有缺点。优点是利用Excel本身自带功能进行数据抓取更新,简单方便,不用涉及编程等繁琐的操作。缺点就是Excel网页数据抓取 只能抓取表格数据,别的数据想要获取就有些困难了。

    所以要想获得更多元的网页数据不妨学习下Python,也是目前爬虫中最简单易学的了。安利一波~

    如果大家还想知道更多的实用小技巧的话 可以关注一下哦 以便下次更新及时通知 W=

  • ?

    超实用:通过Excel进行数据采集

    亦寒

    展开

    前言

    IBM大中华区总经理胡世忠曾说:数据构成了智慧地球的三大元素——智能化、互联化和物联化,而这三大元素又改变了数据来源、传送方式和利用方式,带来“大数据”这场信息社会的变革。

    从上可见,时代的变革是源于对数据的利用,对企业而言,数据也同样是其发展、转型的命脉。在工作中,我的前辈不止一次地强调,数据是公司的资产,而且举足轻重。我们对待数据,一定要严谨,经得起考验,对自己的数据负责,这是一个数据人的基本要求。

    数据资源

    大数据时代,数据虽然很多,但是也不是随意得来的,需要利用各种渠道和方式获得。不管从哪个角度来说,数据可分为内部数据和外部数据。内部数据是企业在日积月累的经营中得来的,我们应该对这些数据挖掘、收集有价值的东西,形成企业的数据资产。内部数据重在后期的处理和分析上。

    下面先说外部数据的获取方式,以及通过Excel操作来获取外部数据。

    外部数据获取方式

    1、专业网站看数据(某一个行业、某一件产品)2、通过收费渠道买数据(第三方数据平台等)3、通过特殊形式引数据(网站爬虫,统计网站等)4、自身积累数据(时间久、跨度长)

    Excel获取外部数据

    作为一个数据分析师以及想更进一步成长为数据科学家,熟练操作基本的办公软件以及SQL查询是很重要的。请看下面通过Excel获取外部数据的步骤。

    第1步:打开“新建web查询”框。新建Excel工作簿,在打开的工作表中单击“数据”选项卡,然后在“获取外部数据”组中单击“自网站”按钮,如下图。

    第2步:输入网址并选择要导入的表格数据。在弹出的“新建web查询”对话框中的“地址”文本框中复制粘贴上述网页的网址,然后单击“转到”,找到网站中的表格数据后单击表格左上角的箭头→,图标变成选中状态的复选框√。如下图。最后单击下方的“导入”按钮。

    第3步:选择数据的放置区域。点击导入后,Excel会出现“导入数据”对话框,如下图,选中你想放置的单元格,单击“确定”开始导入。

    第4步:美化导入的数据。由于导入的数据多且乱,要调整格式使数据规范,并启用冻结窗格功能方便浏览。如下图。

    好了,上面就是通过Excel操作来获取网站上的外部数据,很简单吧,但网站中的数据并非都是以表格的形式呈现,现在大部分是以json格式呈现,Excel不是万能的,而且现在很多网站需要付费才能导数据(上面说过数据就是企业的资产)。

    小结

    希望通过上面的操作能帮助大家。如果你有什么好的意见,建议,或者有不同的看法,我都希望你留言和我们进行交流、讨论。

    End.

  • ?

    技巧 | 如何在Excel中巧妙的提取你需要的数据?

    美女2

    展开

    Hi,大家好,我是胖斯基

    又是一个突如其来的周三傍晚,风雨交夹,狂风相随……

    想想那许久未更新的公众号,再摸摸那胸前的一整块腹肌,愧色依旧,还是码字减肥吧!

    如何在Excel中巧妙的提取你需要的数据?

    举个例子:

    由于从财务系统导出的数据中,会计科目是一种全级显示,用””来展示层级的划分,但是实际在数据统计或应用的时候,需要用到末级科目,故:如何在批量数据中,快速提取末级科目的名称?

    也许猴急如你,一上来就想着函数或VBA,可行是可行,但是这种霸王硬上弓的模式,往往因用力过猛而不能快速得到预期效果……

    聪明人,应该懂得循序渐进!

    1

    查找替换法

    曾经有那么一个快捷键,它可以在茫茫人海中帮你寻觅“对象”,活好话不多,Ta就是Ctrl+F。

    如果你想起了Ta,那这个问题便迎刃而解,效果如下:

    注意这里查找的时候,用到的查询内容是 【*\】,查找内容替换为空,过程进度的处理基本上是秒级。

    说明:由于要获取的是末级科目名称,故希望在科目信息中,保留的内容是最后一个【\】后面的内容,所以这里查找的时候采用了通配符【*】,组合起来就是【*\】,故:凡是最后一个【\】前的内容都查询出来,并替换为空

    想想,这种温柔的方式,是不是比直接上函数和VBA的来的更和谐?

    2

    快速填充法

    当然条条大路通罗马,何必单恋一种法?

    曾经也有那么一个智能填充工具,Ta有那么一点人工智能的特效,能够想你所想,取你所需……

    Ta就是在Excel2013版及之后推出的一个快速填充工具(Ctrl+E)。如果你想起Ta,那基本也就是万花丛中笑春风般的效果,如下:

    注意:这里手工输入了2条记录(目的在于给Excel更多判断的选择),然后手工拖拽,选择快速填充后,所有末级科目数据自动呈现出来,怎么样?处理进度上是不是也是秒级?

    So,循序渐进是不是很重要?

    慢慢来,你会发现不一样的精彩

    3

    函数法

    这种方法呢不是特别提倡,毕竟不是人人都能上手就来函数,当然,你要是Excel大神,无妨,怎么开心怎么来。

    函数1:=TRIM(RIGHT(SUBSTITUTE(B3,"",REPT(" ",200)),200))

    函数2:=MID(B3,COUNT(,FIND("",B3,ROW($1:$99))),20)

    函数3:=VLOOKUP("*",RIGHT(B3,ROW($3:$24)-{0,1}),2,)

    具体函数逻辑就不在重复累赘说明了

    胖斯基|说

    在Excel中提取有效的数据,是一项频率极高的操作,其处理逻辑基本都已成为套路,学会灵活应用就好。

    当然,依旧要敲黑板说明的是:观察Ta,循序渐进,温柔对待,也许灵巧的技巧,能解决你很大的问题……

    更多精彩,敬请关注Excel老斯基

  • ?

    一个方法快速提取网页上的表格,不用写代码哦

    程博超

    展开

    网页上有些数据是以表格的形式呈现的,比如一些股票数据(如图1-1),我们希望将这些数据保存到Excel表格中,怎样快速提取数据到表格中呢(如图1-2)?请仔细往下阅读,不需要一行又一行地复制,也不需要写代码哦,只需要正确使用Excel的导入功能即可。

    图1-1图1-2 部分数据与上图不同,是由于股票数据一直在更新,操作延时导致的。

    首先打开一个Excel表格,切换到“数据”菜单下,点击“自网站”,输入网址,最后点击“确定”或“转到”。

    图1-3

    等Excel链接网站数据成功后,就会看到一个导航器,点击左侧的某个Table,比如Table3,就可以在右侧“表视图”下看到相关的数据,也可以切换到“Web视图”下,查看该表的数据和位置。确认该Table正是自己需要的表格后,点击“加载”。

    图1-4图1-5

    现在,表格成型啦,这就是从网页上提取下来的表格,虽然有部分数据格式不是很完美,不过比手动一个一个复制是不是方便很多啦。现在,选中数据,调整它的对齐方式,调整涨跌幅和换手率为百分比,再使用“开始”菜单下的“套用表格格式”就可以得到文章开头的表格啦。不清楚地话,请留言吧。

    图1-6

    当网页上的数据本身就是一个表格时,这种方法就非常方便啦。如果网页上的数据不是表格,但是看起来排列整齐,那就可以使用“分列”的方法来提取数据,请参考往期推荐。

    往期推荐:将文本文件转换为Excel,帮你分析你的淘宝店数据

    来源:“解晴新生”,点击文章开头的“解晴新生”或“关注”可以查看更多相关文章哦。方便的话,请点赞支持下,谢谢!

  • ?

    学会使用PowerBI/Excel批量采集网页数据

    Ira

    展开

    前面介绍PowerBI数据获取的时候,曾举了一个从网页中获取数据的例子,但当时只是爬取了其中一页数据,这篇文章来介绍如何用PowerBI批量采集多个网页的数据。

    本文以智联招聘网站为例,采集工作地点在上海的职位发布信息。

    下面是详细操作步骤:

    (一)分析网址结构

    打开智联招聘网站,搜索工作地点在上海的数据,

    下拉页面到最下面,找到显示页码的地方,点击前三页,网址分别如下,

    http://sou.zhaopin/jobs/searchresult.ashx?jl=%e4%b8%8a%e6%b5%b7&sm=0&sg=fe782ca83bfa4b018d27de559d0a5db0&p=1http://sou.zhaopin/jobs/searchresult.ashx?jl=%e4%b8%8a%e6%b5%b7&sm=0&sg=fe782ca83bfa4b018d27de559d0a5db0&p=2http://sou.zhaopin/jobs/searchresult.ashx?jl=%e4%b8%8a%e6%b5%b7&sm=0&sg=fe782ca83bfa4b018d27de559d0a5db0&p=3

    可以看出最后一个数字就是页码的ID,是控制分页数据的变量。

    (二)使用PowerBI采集第一页的数据

    打开PowerBI Desktop,从网页获取数据,从弹出的窗口中选择【高级】,根据上面分析的网址结构,把除了最后一个页码ID的网址输入第一行,页码输入第二行,

    从URL预览中可以看出,已经自动把上面两行的网址合并到一起;这里分开输入只是为了后面更清晰的区分页码变量,其实直接输入全网址也是一样可以操作的。

    (如果页码变量不是最后一位,而是在中间,应该分三行输入网址)

    点击确定后,发现出来很多表,

    从这里可以看出,智联招聘网站上每一条招聘信息都是一个表格,不用管它,任意选择一个表格,比如勾选Table0,点击编辑进入Power Query编辑器。

    在PQ编辑器中直接删除掉【源】之后的所有步骤,然后展开数据,并把前面没有的几列数据删除。

    这样第一页的数据就采集过来了。然后对这一页的数据进行整理,删除掉无用信息,添加字段名,可以看出一页包含60条招聘信息。

    这里整理好第一页数据以后,下面进行采集其他页面时,数据结构都会和第一页整理后的数据结构一致,采集的数据可以直接拿来用;这里不整理也没关系,可以等到采集所有网页数据后一起整理。

    如果要大批量的抓取网页数据,为了节省时间,对第一页的数据可以先不整理,直接进入下一步。

    (三)根据页码参数设置自定义函数

    这是最重要的一步。

    还是刚才第一页数据的PQ编辑器窗口,打开【高级编辑器】,在let前输入:

    (p as number) as table =>

    并把let后面第一行的网址中,&后面的"1"改为(这就是第二步使用高级选项分两行输入网址的好处):

    (Number.ToText(p))

    更改后【源】的网址变为:

    "http://sou.zhaopin/jobs/searchresult.ashx?jl=%e4%b8%8a%e6%b5%b7&sm=0&sg=fe782ca83bfa4b018d27de559d0a5db0&p="&(Number.ToText(p)))),

    确定以后,刚才第一页数据的查询窗口直接变成了自定义函数的输入参数窗口,Table0表格也变成了函数的样式。为了更直观,把这个函数重命名为Data_Zhaopin.

    到这里自定义函数完成,p是该函数的变量,用来控制页码,随便输入一个数字,比如7,将抓取第7页的数据,

    输入参数只能一次抓取一个网页,要想批量抓取,还需要下面这一步。

    (四)批量调用自定义函数

    首先使用空查询建立一个数字序列,如果想抓取前100页的数据,就建立从1到100的序列,在空查询中输入

    ={1..100}

    回车就生成了从1到100的序列,然后转为表格。gif操作图如下:

    然后调用自定义函数,

    在弹出的窗口中点击【功能查询】下拉框,选择刚才建立的自定义函数Data_Zhaopin,其他都按默认就行,

    点击确定,就开始批量抓取网页了,因为100页数据比较多,耗时5分钟左右,这也是我第二步提前数据整理造成的后果,导致抓取比较慢。展开这一个表格,就是这100页的数据,

    至此,批量抓取智联招聘100页的信息完成,上面的步骤看起来很多,实际上熟练掌握以后,10分钟左右就可以搞定,最大块的时间还是最后一步进行抓取数据的过程比较耗时。

    网页的数据是不断更新的,在操作完以上的步骤之后,在PQ中点击刷新,可以随时一键提取网站实时的数据,一次做好,终生受益!

    以上主要使用的是PowerBI中的Power Query功能,在可以使用PQ功能的Excel中也是可以同样操作的。

    当然PowerBI并不是专业的爬取工具,如果网页比较复杂或者有防爬机制,还是得用专业的工具,比如R或者Python。在用PowerBI批量抓取某网站数据之前,先尝试着采集一页试试,如果可以采集到,再使用以上的步骤,如果采集不到,就不用再耽误工夫了。

    现在就打开PowerBI/,尝试着抓取你感兴趣的网站数据吧。

excel获取网站数据

所有视频需要登录后,才能观看

请先登录您的帐号,即可完整播放,如果您尚未注册帐号,请先点击注册。

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP