从PHP谷歌地图收获针脚

时间:2016-02-11 22:34:29

标签: php curl web-scraping screen-scraping

如何从大型Google地图中抓取所有引脚(他们持有的信息)?这是我的意思的一个很好的例子:https://mcdonalds.com.au/find-us/restaurants?qstore=sydney。由于它是地图,我无法检查元素"。所有的针都已经在地图中了,为什么不收获呢?

1 个答案:

答案 0 :(得分:4)

通常最简单的方法是打开检查器并监视网络流量,因为某些网络调用将不得不获取新的引脚。

在你链接的页面上,经过一些搜索(地图只有一些网络请求是获取引脚数据),我发现了你正在寻找的东西。

A sample 'pin' response

从这里你有两个选择:

  1. 尝试并对api-calls进行反向工程。然后系统地调用每个并提取引脚数据。这对于他们提供的链接来说看起来很困难,但如果需要定期关闭或使用脚本,这将是我要走的路线。如果您想尝试此操作,请点击此处显示的API请求链接:API-Request

  2. 使用浏览器中的正则表达式过滤器过滤包含图钉的请求,在地图上滚动,直到您相对确定浏览器已经看到'您想要的地图上的所有引脚,然后从所有这些引脚复制响应并将它们转储到文本编辑器或JSON对象资源管理器中。从那里你可以使用正则表达式搜索来提取你想要的有用信息,并忽略其余的垃圾。如果这是你可以手工完成的一次性刮擦,这就是我要走的路。

  3. 编辑:对我来说,以下(" 1m3")足以过滤掉包含引脚位置数据的网络请求:

    Pin Filter

    我知道这两种方法都依赖于一些技术(可能是正则表达式)专业知识,如果您需要更多帮助,请告诉我。

    顺便说一句:乍一看,我没有看到任何明显是餐馆的经度和纬度的东西,只是他们的名字。他们的位置很可能与他们一起编码,但我不确定这对你有多重要。