- 1 -
很牛掰?其实没啥用
网上很多文章,介绍怎么用Excel轻松调用有道在线翻译接口,实现中英文自动翻译的,主要是使用了WEBSERVICE + FILTERXML函数:
其中,webservice函数负责调用接口,filterxml负责从返回的内容里提取翻译结果。
看着很牛掰,是不是?其实啊,没啥用!
为什么?
这些文章里,一般只是举了1项或少数几项内容,或者只是运行了一次,当然可以成功,但是,如果需要翻译的项目很多呢?比如说,几百个,甚至几千个短语,即需要重复多次调用这个接口,你试试?
而且,当在Excel里出错后,直接用网站登录访问有道都同样会被毙掉:
更关键的是,既然要用excel自动出结果,通常来说,要翻译的内容就不会只要那么几项。
那为啥数据多了就取不到结果了?
其实很简单!并不是因为这些函数有问题,而是,类似于网站的“防爬”机制,当来自同一电脑的接口调用过于频繁时,服务器方面当然会做限制的——毕竟,任何一次访问,都是有成本的。
- 2 -
PAD模拟人工操作网页
这种情况下,我们完全可以通过Power Automate Desktop模拟手工访问网站的方式,按需要、分次、整体、自动填充待翻译内容,获取翻译结果。
将从Excel中读取的待翻译内容,填充到翻译网站的文本框(通过添加UI元素拾取)中。
经过上一步将待翻译内容填入后,网站会自动执行得到翻译结果:
通过“获取网页上的元素的详细信息”步骤,基于“添加UI元素”,获取翻译结果内容(innertext):
在添加UI元素时,注意获取翻译结果最内层的div,以免出现多余的信息:
因为我们要将翻译结果分开每一行对应回Excel表中,所以,要对获取的翻译结果,按行进行拆分:
将拆分后的翻译结果,写回Excel工作表中:
因为前面步骤进行了拆分,所以写入到指定单元格,如B2,得到的结果将会写到从B2开始的每一行里:
翻译内容获取完毕,不要忘了关闭打开的Web浏览器:
最后,按需要关闭Excel文件:
- 3 -
突破的不仅仅是Excel
通过采用Power Automate for Desktop,我们模拟人工查阅的方式,可以最大限度地发挥将多个单元格的内容自动地整合到一起,一次性翻译后,再将翻译结果整体获取返回Excel的全过程,从而避免了Excel针对每项频繁调用翻译接口可能导致的网站屏蔽问题。
同时,通过Power Automate for Desktop,不仅可以从Excel中读取要翻译的内容,还可以读取更多其他格式的文件,如文本、word、pdf……,全面突破Excel公式本身的限制……并且,翻译的结果,可以按需要输出到其他所需要应用的地方!
——这就是Power Automate for Desktop的强大之处,也是RPA(Robotic process automation:机器人流程自动化)的魅力!
本文分享自 Excel到PowerBI 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!