谷歌地图和天地图切片下载(地图爬虫)失败问题

最近做了一个从网上下载不同源地图切片的程序,但是在下载谷歌地图时出现了图片下载错误,返回的不是图片信息是下面的html信息

We're sorry...

... but your computer or network may be sending automated queries. To protect our users, we can't process your request right now.

See Google Help for more information.

下载天地图时直接报了403错误,但是这些图片的url复制到浏览器中是可以直接打开的,在Leaflet中也可以实时显示。在PC的代码中,即使只下载一张图片也会报这个问题。

问题原因

主要是我们发送的http请求的request header中是带有设备信息,可以从这个信息中直接判断这个请求时来自于浏览器、PC还是移动端。谷歌地图服务器通过这个信息判断是来自于PC的请求,所以直接拒绝了。

解决方案

User-Agent信息是可以伪造的,在发送http请求前,更改UserAgent信息即可,下面是我在node.js上写的demo

request({url: url, headers: {'User-Agent': 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko Fedora/1.9.0.8-1.fc10 Kazehakase/0.5.6'}}).pipe(stream);

最后加上这个User-Agent信息后发现,下载成功了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GIS开发者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值