采集网页数据?不得不说这个方法最智能最简单~
优采云 发布时间: 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星球”首发。