建立地理定位照片索引 - 爬网或依赖现有 API?

Building a geolocation photo index - crawling the web or relying on an existing API?

我正在开发一个地理定位服务,每个 POI 都需要一张照片,我正在尝试弄清楚如何将正确的照片与给定位置相匹配。

我正在寻找一张能够提供位置概览的图像,而不是来自给定坐标的任意图像。

例如,当在 Google 中搜索 "nyc" 时,您会得到以下图像,从 http://www.filmsofcrawford.com/talesofnyctours/

中过滤掉

当然 Google 是 Google,但是我在其他网站上发现了这种类似的方法,例如:https://roadtrippers.com/us/san-francisco-ca/attractions/conservatory-of-flowers?lat=37.81169&lng=-122.69478&z=11&a2=p!5


Q:对于像[POI NAME] -> [Overview image URL]这样的索引,你的方法是什么,(爬行,API等')?

请发表您的看法:)

当然,您不需要为此抓取网络。您可以使用 google 中的 API 来搜索图像并检索图像。看看this article

编写自己的图像抓取工具并非易事。如果您的目标站点更改格式、使用条款或删除链接,甚至完全替换图像,会发生什么情况? Quora regarding the complexity of web crawlers 上有一个很好的答案,即使您通过将来源缩小到一小部分站点列表来简化事情,您也必须弄清楚如何处理图像,而不是文本,这可能需要在本地保存数百张图像以供处理,维护起来不会很有趣。

我强烈建议您利用 Google 的图片搜索 API 为您完成繁重的工作 'technical lifting'。然后,您的工作就是找到合适的过滤器组合,以获得最佳结果。以下是一些需要考虑的因素:

  • 关键字。您 可以 尝试按位置(坐标)搜索,但是您将不得不依赖图像元数据的准确性。相反,generalizing the location of coordinates and doing a lookup based on the relative location instead? For example, you could generalize (40.812694, -74.074177) as the New York Giants stadium 而不是纽约的通用天际线怎么样。
  • 分辨率。可以安全地假设更高分辨率的照片更有可能是概览照片并使用专业设备拍摄。您还可以考虑宽高比:比宽高的图像倾向于关注单个感兴趣的对象,而宽比高的图像往往具有更多多样性。
  • 许可。 Google 的图片搜索可以按许可证过滤,并且可以确保(大部分)you can reuse the images it finds

我强烈建议使用现有的 API。很难将图像与位置匹配。在我看来,Google 图片搜索 API 给出了太多不相关的结果。它是以这种方式构建的,基于元标记处理图像或显示按 SEO 排名排列的结果。

如果您仍在考虑构建网络爬虫,请查看 Scrapy,它是开源的,有据可查且非常稳定。

您应该看看其他开放的 API 提供基于位置的查询。一些示例如下:

  • FourSquare 有很好的 API,您可以获取您的结果提供 每个城市作为一个端点。
  • Instagram 使用 FourSquare API 来映射图像 locations.It应该考虑人气。
  • Flickr 具有精心策划的图像结果。你也应该给它一个 尝试根据您寻求的许可证索引图像 对于.
  • Google Places 也提供了一个 API,我从来没有用过这个 服务,但我想我必须将它添加到我的列表中。