熟悉正则表达式的小伙伴都知道,正则表达式常常用于从某段字符串中提取到想要的内容。而Excel网络函数库原有的正则表达式提取公式只支持提取表格中已有的数据。但是如何提取网页端的数据呢?
当有人问到这个问题的时候,小编立马想起了Excel网络函数库的网页抓取公式,网页抓取公式是通过Excel浏览器到达指定网址,然后根据XPath找到待抓取数据的位置,详细介绍可以看这里:404 - 知乎
新版本的正则表达式需要使用Excel浏览器,通过Excel浏览器进入到网页内的源码中,然后在源码里使用正则表达式来提取想要的数据。为了方便理解,今天小编给大家带来了一个案例:
本次案例选择了淘宝的商品,随机打开某个商品页面,目标是抓取该页面下所有商品所在的店铺名。如图:
接下来便是实际操作步骤:
首先,先安装下Excel网络函数库和Excel浏览器,安装网址www.excelapi.com。本文涉及到的内容全部免费,大家放心使用。
接着我们打开Excel浏览器,点击门户网站下的设置网页抓取任务,然后点击开始。
然后我们打开表格,在要提取数据的网址后面输入公式=RegexStringW(Url,Rule,Advance,Index)。其中Url指提取数据所在的网址,Ruel指正则表达式,支持常用的正则表达式。Advance指正则表达式Rule的书写模式,默认是0,表示使用简单模式,简单模式就可以使用诸如“数字”、“字母”、“小写字母”、“大写字母”、“汉字”等名词代替正则表达式。如果设置成1表示高级模式,也就是正常的正则表达式。Index指多个结果时返回全部还是指定的结果,可选参数,默认0,返回全部,1表示返回第一个结果。
输好公式后单击回车键即可提取到此网页下的所有店铺名,如需批量查询只需将查好的单元格向下拖动即可。具体实例如下:
如果查询过程中出现正在取值,别着急,这是因为浏览器还没有查完,等待3-5分钟后,点击公式栏下面的重算工作簿,即可获取到数据。