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

    让Excel自动添加表示数据上升、下降的箭头

    侯鬼神

    展开

    在用Excel对数据进行同比或者环比统计时,在统计结果中添加表示数据上升或者下降的箭头看起来会更加直观。Excel有多种添加上升、下降的箭头的方法,例如可以手动添加、可以用自定义单元格格式的方法添加、还可以用VB代码添加,但笔者感觉这些方法操作起来或者比较繁琐、或者专业性较强。这里以Excel2010为例介绍一种笔者感觉相对比较简单的用条件格式添加上升、下降的箭头的方法,以供参考。

    先选择要添加上升、下降箭头的单元格范围。

    点击Excel“开始”选项卡中“条件格式”下拉菜单中的“图标集”。

    在图标集的子菜单中点选一个上升、下降箭头样式。

    点选箭头样式后,之前所选单元格范围中的数据前就自动添加表示上升、下降的箭头了。如果统计结果中没有0值,则箭头就添加完毕了。但如果结果中有0值,有时会发现0值被标上了上升或者下降的箭头,而通常我们需要把0值标上水平的箭头。这时我们需要按下述方法再设置一下。

    再选择添加上升、下降箭头的单元格范围。

    点击“开始”选项卡中“条件格式”下拉菜单中的“管理规则”。

    弹出“条件格式规则管理器”对话框后,点击其中的“编辑规则”选项卡。

    点击“编辑规则”选项卡中下图所示的第一个选择大于小于号的下拉框。

    点选下拉菜单中的“>”号。

    点选“>”号后,在右侧的值输入框中输入“0”。

    在值输入框右侧的“类型”下拉菜单中点选“数字”。

    按以上方法,把第二行中的各项依次设置成“>=”、“0”、“数字”。

    此时第三行会自动被设置成“当<0”。

    设置好后,点击“确定”按钮。

    再点击一次“条件格式规则管理器”对话框中的“确定”按钮。

    这样,所选范围中的0值就会自动添加水平样式的箭头,其他数值会自动添加上升、下降箭头。

  • ?

    不可思议!居然用Excel可以实时爬取足彩赔率数据

    Reed

    展开

    上一篇讲了,有同学在评论里面问如何抓如何使用excel一键爬虫使用功能足彩相关数据,这次给大家讲解一下哈。

    这次我拿某个足彩数据网页进行抓取,如果抓取单个页面其实可以用上一篇文章教程就可以抓取到,有的同学说想抓多期的数据,那我这次给大家讲解如何抓取。

    首先我们先找到页面之间的规律?对 就是日期那部分,只要我们把日期那部分进行设置一下就可以了。

    接下来我说一下具体教程:

    Step1:我们打开一个excel,在excel里面创建一列,把这几个日期添加到表里,然后建立查询数据表。

    Step2:把数据类型设置为文本格式

    Step3:然后在选择添加列选项卡中自定义列,并添加相关公式

    这次使用到的公式:=Web.Page(Web.Contents(URL))

    Step4:选择需要展示的数据

    (1)首先只选择data

    (2)然后勾选如下图所示的内容

    最后选择关闭并上传数据上传完成了,就这么简单。

    这次就讲到这里,如果有什么疑问或者不懂的可以在下面评论,大叔看到会回复的。

  • ?

    一张表告诉大家51去哪儿玩:手把手用excel抓取30万数据

    Honoria

    展开

    各位乘客,五一小长假就要到了,请带好您的随身物品,准备启程。省内游请向左,国内游往右,国外请直走不用回头,祝大家旅途愉快。

    小编只是宅男一枚,要说玩我是真的不会。所以可能要让您失望了,本文章只是算是一技术贴,而且有点长。毫不夸张的说,这是一张比艾瑞网还要详尽的行业报告。

    艾瑞咨询数据网

    说实话,创业以来我就出游过一次,而且还是玩一半就回来加班了,所以我就告诉自己,一个苦逼创业的穷小子,有什么可玩的呀。附上自己的一句教诲给大家:自律而后自驱,自驱而后自信,自信方能沉稳。

    下面进入主题。先上一张效果图(这样30万+的数据只要分分钟就解决):

    去哪儿网51出游数据抓取效果图

    相信大家在做Excel数据表的时候,都碰到过这样的问题:每当数据源是来自网页的时候,我们经常需要重复性的复制粘贴至表格,才能进行后续的分析,不仅耽误时间而且容易出错。

    在零一老师的指导下,我在Excel道路上又跨出了一步,学会了利用Excel自带的PowerQuery以及简单的3个函数根据自身的需求得到了去哪儿网30多万条旅游数据。

    好处还不仅仅于此,表格制作完成后可以随意修改出发地,单击刷新,表格将会自动抓取新的数十万条数据,完全自带共享功能,绝对称得上是装X利器。

    以下是具体的步骤(友情提示,下面的操作步骤很详细,所以看起来有点繁琐,但只要你动手做,很简单):

    打开去哪儿官网

    哪儿官网

    →在键盘上按下F12键→手机端标识

    手机展现

    →在键盘上按下F5键→度假

    度假

    →清除

    清除

    →空白处

    搜索框

    →点击加载热门城市

    选择热门城市

    →Network

    network

    →JS

    js

    →arriveRecommend

    arriveRecommend

    →Preview

    Preview

    →data

    data

    →1

    1

    →subModules

    subModules

    →0

    0

    →items

    items

    →0→1→2→3→4→5,这样我们就找到了需要的所有分类,接下来我们返回去找到链接结合函数就能抓取所有我们能看到的分类。

    1-2-3-4-5

    →Headers

    Headers

    →选中的部分为URL编码,因此我们需要先解码,一探究竟。

    URL编码

    →在百度搜索框键入“解码”→回车

    解码

    →站长工具

    站长工具

    →URL编码/解码

    URL编码/解码

    →将编码粘贴进去→UrlDecode

    将编码粘贴进去→UrlDecode

    →解码之后我们发现编码就是出发地→新建一张Excel表格→键入出发地→键入温州→从表格

    新建一张Excel表格

    →将表包含标题勾上→确定

    将表包含标题勾上→确定

    →添加列

    添加列

    →自定义列

    自定义列

    →将之前含有编码的网页链接复制进来https://m.dujia.qunar/golfz/sight/arriveRecommend?dep=%E6%B8%A9%E5%B7%9E→将编码替换成函数Uri.EscapeDataString()

    导盲犬:Uri.EscapeDataString()函数是转码用的,默认是ut8。

    注:函数需区分大小写并且括号是在英文状态下键入的,插入函数的时候要在函数前面加上连接符号“&”。

    →在括号中间选中

    →双击出发地

    双击出发地

    →插入Web.Contents函数→插入Json.Document函数→确定

    导盲犬:函数Web.Contents()是将从webURL下载的内容返回为二进制值,函数Json.Document()是返回一个JSON文件的内容,直接解析json的格式化数据。

    注:插入的函数Web.Contents()需要在括号里面加“”号,表示引用文本。

    →继续

    →倒三角→公共→保存

    →扩展(扩展的依据是之前我们在浏览器代码上找到的内容所处的位置)

    →仅勾选data→确定

    →扩展

    →仅勾选subModules→确定

    →仅勾选items→确定

    →仅勾选query→确定

    →倒三角

    →将null前面的勾去掉→确定,这样我们就得到了所有从温州出发可以到达的目的地。

    →接着我们返回浏览器单击清除

    →三亚

    →XHR

    →listApi.json?modules=list

    →list

    →results

    →3

    →根据自己的需求找到数据,我找了productScore(评分),soldCount(销量),title(标题)totalPrice(价格)。

    →这里我还多找了一个encodeId(编号),是为之后抓取评价用的。

    →将所有的编码复制

    →粘贴至转码→UrlDecode解码

    →解码后,就可以发现其中的变量只有出发地(温州)和目的地(三亚),接着我们回到查询编辑器

    →添加自定义列

    →将3段变量编码全部修改为Uri.EscapeDataString()函数,并且依次选中括号双击右侧的出发地,query,query,注意这里需要键入的连接符号。

    →插入Web.Contents()函数,注意这里所有的文本需要键入的引号,文本与变量之间用“&”号连接。

    →插入Json.Document()函数,由于函数太长截不下全图,我就粘贴在这里。“https://touch.dujia.qunar/listApi.json”是接口,“?”后面的是参数。

    Json.Document(Web.Contents("https://touch.dujia.qunar/listApi.json?modules=list,bookingInfo&dep="&Uri.EscapeDataString([出发地])&"&query="&Uri.EscapeDataString([query])&"&mtype=all&mobFunction=%E8%87%AA%E7%94%B1%E8%A1%8C,%E5%87%BA%E5%8F%91%E5%9C%B0%E5%8F%82%E5%9B%A2,%E7%9B%AE%E7%9A%84%E5%9C%B0%E5%8F%82%E5%9B%A2,&it=dujia_hy_destination&bd_source=wdcx2&page=home&mobfuncname=%E8%87%AA%E7%94%B1%E8%A1%8C,%E5%87%BA%E5%8F%91%E5%9C%B0%E5%8F%82%E5%9B%A2,%E7%9B%AE%E7%9A%84%E5%9C%B0%E5%8F%82%E5%9B%A2&date=&configDepNew=&needNoResult=true&originalquery="&Uri.EscapeDataString([query])&"&limit=0,28&includeAD=true&qsact=search"))

    →仅勾选list→确定

    →仅选中results→确定

    →将“选择所有列”前面的勾去掉

    →勾选encodeId,productScore,soldCount,title,totalPrice这五个选项→确定

    到这里,我们就只差一个评价没有抓取了,返回浏览器。

    →点击任意一款有销量的旅游产品进入

    →查看评价

    →queryPComments

    →mainCommentList

    →评价在content下。

    →找到链接,发现其中就只有ID是变量,接着我们返回查询编辑器

    →将链接复制进去,因为没有编码所以就不要转码函数,只需将原先的数字去掉,双击键入encodeld,注意需要添加连接符号。

    →插入Web.Contents()函数,注意添加的引号。

    →插入Json.Document()函数→确定。注:这里把Size后面的数字改为50,是每次加载50条评价的意思。

    →加载更多

    →仅勾选mainCommentList→确定

    →仅选中content→确定

    →soldCount右侧的倒三角

    →将null前面的勾去除→确定

    →关闭并上载

    →得到10万+数据

    共享给好友时,结合实际情况修改出发地。步骤:将温州改为上海

    →数据→显示查询

    →双击右侧表1,转至查询编辑器界面

    →刷新预览

    →出发地倒三角符号→加载更多

    →关闭并上载(这里先把原先以温州为出发地的表格删除,然后才能加载成功)→右击表1→加载到

    →单击表左侧圆圈→加载

    →10万+数据加载成功

    也可添加多个出发地。步骤:在温州下行,分别键入杭州、上海

    →出发地倒三角符号

    →加载更多→确定

    →右击表1→加载到

    →30万+数据大功告成!

    这就是我辛苦做了2个小时后的一个报告

    下面可以通过自己的需求筛选以及提取自己需要的数据,如果你是一个想知道大家都去哪儿玩了,避开高峰的朋友,我想三亚肯定不要去了,如果你是一名旅行社的老板,那么大家参加了什么价格的团购,去了哪儿,那就是一目了然呀。如果你是职场小白,那么可以跟我一起来学习怎么更多技能,你可以想想,你之前就会这些技能的话,可以节省下太多的时间LOL......

  • ?

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

    Eirene

    展开

    欢迎关注天善智能,我们是专注于商业智能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表中

    FR

    展开

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

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

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

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

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

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

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

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

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

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

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

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

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

  • ?

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

    凝蝶

    展开

    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老斯基

  • ?

    不用代码,简单几步教你用Excel上手网络爬虫

    甄凌柏

    展开

    有时需要从某个网站获(爬)取一些数据,并且能够时时更新,这是后就需要爬虫了,不会敲代码怎么办,其实用 Excel 就可以简单实现这个功能,步骤也很简单,可别小瞧了Excel!

    动图演示:

    基本步骤:1. 双击图标,打开 Excel2. 依次点击,数据 >>从网站(自网站)

    3. 在弹出的对话框中,输入目标网址,Games sales,点击转到,go

    4.等待网页加载,点击你需要的数据区域,点击导入,import

    5,然后会弹出一个数据存放区域的对话框,随便找个地方,点击 ok

    6.等待数据加载(本次无需点击)

    7. 大约等待 10 秒钟,可以看到了,大概爬取了 600 行的数据

    利用Excle自动获取网页数据,譬如从网页中自动获取基金净值数据,取得所关注基金的净值,列出当日涨幅最高的基金。其他用处还有很多,看你怎么解放双手了。你可能会喜欢

  • ?

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

    sunboy

    展开

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

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

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

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

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

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

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

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

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

    数据导入中……

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

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

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

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

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

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

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

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

  • ?

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

    遥远

    展开

    网页上有些数据是以表格的形式呈现的,比如一些股票数据(如图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批量采集网页数据

    Oulu

    展开

    前面介绍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