采集网页数据?不得不说这个方法最智能最简单~

优采云 发布时间: 2022-07-15 01:21

  采集网页数据?不得不说这个方法最智能最简单~

  NO.821-网页数据

  作者:看见星光微博:EXCELers / 知识星球:Excel

  HI,大家好,我是星光。

  前段时间给大家分享了一段VBA代码,抓取当当网图书数据的:

  ↑ VBA网抓?试下这段代码

  VBA这家伙最大的特点就是傻白甜;代码臃肿啰嗦,没啥技巧,是为傻;但确实又能解决很多实际问题,所以又很甜——打个响指,那么有没有不写代码,又能抓取网页数据的方法呢?

  当然是——有的。

  走,去隔壁PBID见见新场面去。

  PBID是Power BI DeskTop的简称,俗称Power BI桌面版。不过它不是Office软件自带的,需要另外单独下载。

  安装该软件后打开,在【主页】选项卡下,依次点击【获取数据】→【从Web】。

  输入网址:

  网址看不全可以左右拖动...

  http://search.dangdang.com/?key=excel%20home&act=input

  这个是当当网搜索关键字"excel home"的网址,可以获取关于EH论坛系列图书的数据。

  

  在【导航器】窗格右侧的【建议的表】选项中,选择【表1】,再单击【转换数据】即可获取图书的名称、折扣价、原价、评论数量、折扣等数据。

  摊手,就这么简单。

  正所谓尚未佩妥剑,转眼便……胜了!

  ……

  ……

  以为这事就这么完了?

  当然不。

  这属于比较愣的用法,更强大更有趣的在后面。

  我换个例子,获取豆瓣电影TOP250的数据。

  还是在【主页】选项卡下依次点击【获取数据】→【从Web】,输入网址:

  网址看不全可以左右拖动...

  https://movie.douban.com/top250

  点击【确定】按钮后,来到【导航器】界面。此时不选择表1,选择【使用示例添加表】。

  然后会看到以下界面▼

  图片的上半身是网页数据预览。下半身是张表格。

  

  好了,打个响指,下面是见证大力出奇迹的时刻——

  在下方表格列输入所需要的数据,系统就会根据该数据智能提取相关类似结果……比如序号、名称、评分、网址等。

  *敏*感*词*演示如下▼

  你看这家伙是不是特像Excel里智能填充Ctrl+E?

  给出一到多个例子,它就智能化给你一个结果,还你一片宁静的天空。

  最后点击【确定】按钮,将数据转换到Power Query编辑器继续整理或者直接加载到数据模型中即可。

  ……

  不过需要说明的是,系统是自动抓取的第一页的数据,一共25条信息,而豆瓣电影TOP250一共有10页。如果你需要抓取10页的数据,可以将系统自动生成的一页式代码封装成自定义函数,再外套一条M函数的循环语句。

  参考代码如下▼

  代码看不全可以左右拖动...

  let fx=(i as number)=> let 源 = Web.BrowserContents("https://movie.douban.com/top250?start=" & Text.From(i)) in Html.Table(源, {{"序号", "EM"}, {"名称", ".title:nth-child(1)"}, {"评分", ".rating_num"}, {"评价", "SPAN:nth-child(3) + *"}}, [RowSelector=".grid-16-8 LI"]), 结果 =Table.Combine(List.Transform({0..10},each fx(_*25)))in 结果

  相比于VBA烦琐臃肿的上百行代码,这代码简直不要太苗条,绝对是从贾玲跃过了陈妍希直达李若彤的飞越式发展……~

  ……

  没了,今天给大家分享的内容就这样,只看不练假把式,你也动手试一下吧。

  加入我的Excel会员,全面学习Excel透视表 函数 图表 VBAPQ想学啥学啥

  本文由公众号“Excel星球”首发。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线