作者:iamlaosong
我曾经用VB做了个工具,抓取城市间距离(参见:从网页抓取城市间的距离),现在看来,那个工具还是比较low的,用浏览器控件,模拟点击过程,再在响应中截取距离,后来还利用这个方法做了几个其它工具。在掌握了浏览器中开发人员工具和fiddler使用方法之后,通过分析这个网页查询城市之间距离可以发现,距离是通过百度接口取得的。摒弃无关的请求之后(特别是其中图形部分),只申请距离,响应速度得到极大的提高,为此做了一个函数可以轻松获得城市间的距离。
1、通过开发人员工具获取相关请求
Request URL:
http://api.map.baidu.com/?qt=nav&c=1&sn=2%24%24%24%24%24%24%E5%90%88%E8%82%A5%24%24%24%24&en=2%24%24%24%24%24%24%E4%B9%8C%E9%B2%81%E6%9C%A8%E9%BD%90%24%24%24%24&sy=0&ie=utf-8&oue=1&fromproduct=jsapi&res=api&callback=BMap._rd._cbk92197
其中参数sn和en就是两个城市名称,替换这两个参数值,其他参数值不变,就可以得到不同城市