分享

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

 asaser 2022-07-24 发布于四川

Image 戳蓝字Excel星球关注我哦。

菜单→资源礼包✔领取海量学习教程👆

HI,大家好,我是星光。

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

Image

 ↑ VBA网抓?试下这段代码

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

当然是——有的。

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

Image

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

Image

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

Image

输入以下网址:

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

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

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

Image


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

Image
Image

摊手,就这么简单。

正所谓尚未佩妥剑,出门就是江湖,但转眼便……胜了!


……

……

以为这事就这么完了?

当然不。

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

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

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

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

https://movie.douban.com/top250

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

Image

然后会看到以下界面:

Image

图片的上半身是网页数据预览。下半身是张表格,目前是空白的。

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

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

动画演示如下▼
Image

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

给出1到多个例子,它就智能化给你一列结果。

Image

百里守约:给我一个目标还你一片寂静👆


最后点击【确定】按钮,将数据转换到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烦琐臃肿的上百行代码,这代码简直不要太苗条,绝对是从贾玲同志跳过了陈妍希二小姐直达李若彤仙女姐姐的飞越式发展……~

Image

……

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

👀

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多