之前我们曾经分享一个神奇的公式,可以直接Excel表格中进行英汉互译。
=FILTERXML(WEBSERVICE("http://fanyi.youdao.com/translate?&i="&B2&"&doctype=xml&version"),"//translation")
很多朋友很奇怪,这到底是怎么做到的呢?其实这是WEBSERVICE函数的功劳:它可以直接从web服务器返回数据。通俗点说就是从网络抓取数据。
下面再分享一个超实用的示例:根据手机号码查归属地
在https://shouji.51240.com/上输入手机号码就可以查出归属地
要批量查,首先我们需要把手机号码代入到网址中
接下来用WEBSERVICE函数从该网址中返回查询数据(返回的是网页代码),有1万多字符。
=WEBSERVICE(B2)
把它复制粘贴到text文件中,万千数据,我们只要这一行:
接下来直接用mid+find截取
=MID(WEBSERVICE(B2),FIND("title",WEBSERVICE(B2))+18,11)
最后用substitute替换掉多余的字符
=SUBSTITUTE(SUBSTITUTE(MID(WEBSERVICE(B2),FIND("title",WEBSERVICE(B2))+18,11),"-",""),"手机","")
其实 FILTERXML和WEBSERVICE是一对超强大的网络函数, 二者配合可以实现很多高难度的网络数据抓取。WEBSERVICE负责提取源数据,FILTERXML负取从源代码中返回指定位置数据。今天的示例比较简单,所以只用后者即可。