python抓取网页数据并写入excel

亲爱的朋友们,今天我来分享一个不需要Python或VBA,仅靠写公式就能实现网页数据爬取的实用技巧。对于从事进出口贸易的朋友来说,每天关注船舶状态是非常必要的。当需要关注多个船舶时,逐个查询显然不太方便。那么,我们如何在Excel表格中批量获取船舶状态数据呢?接下来,让我为大家介绍具体的步骤。
让我们关注以下示例图中的两个红框。第一个红框标注的是待查询的英文船名,而第二个红框则是我们要抓取的船舶状态等数据。
我们的目标是实现在Excel表格中,通过写公式就能抓取网页上的船舶状态数据。这样的效果如下图所示。
接下来,我将为您详细介绍实现的步骤。
第一步是安装好Excel的网络函数库。本案例中所涉及的公式都是免费的,使用也没有任何限制。
第二步是构造网址。以船舶定位查询为例,我们在网上查询船名时,通常可以从浏览器地址栏获得查询网址。通过分析这些网址,我们可以找到一种简单的拼接规律:只需将英文船名拼接到特定的网址后就能进行查询。例如:ais./ShipTrace/GoogleMapIndex/?ShipName=KOTA%20LEGIT (这里的%20代表空格)。由于本案例中的查询网页是嵌套结构,因此实际使用的拼接网址会有所不同。
第三步是分析网页结构,找到数据项所在的XPath。这里我们推荐使用Chrome浏览器。打开要采集的网页后,将光标移到船舶状态上,右键点击,在弹出的菜单中选择“检查”或“开发者工具”,在其中找到要抓取的数据项的XPath。每一个数据项都需要这样处理,并获取其XPath。例如://[@id="lbAisNavStatus"]。
第四步是编写公式GetWebContentByXPathW,这个公式需要两个参数:url和xpath。url参数传入我们前面拼接的网址,xpath参数则传入我们找到的数据项的XPath。
第五步是运行Excel的浏览器插件,设置网页抓取任务。
最后一步,当Excel浏览器完成全部抓取工作后,回到Excel表格重新计算相关公式,就能得到我们需要的船舶状态数据了。
这个技巧非常实用,尤其对于需要每天关注多个船舶状态的朋友来说,可以大大提高工作效率。希望这个分享能对你有所帮助。
