构建地理位置照片索引 - 爬网还是依赖现有 API?
Posted
技术标签:
【中文标题】构建地理位置照片索引 - 爬网还是依赖现有 API?【英文标题】:Building a geolocation photo index - crawling the web or relying on an existing API? 【发布时间】:2015-07-02 20:49:27 【问题描述】:我正在开发一个地理定位服务,该服务需要每个 POI 一张照片,并且我正在尝试找出如何将正确的照片与给定位置匹配。
我正在寻找可以提供位置概览的图像,而不是来自给定坐标的任意图像。
例如,当您在 Google 中搜索“nyc”时,您会得到以下图片,从 http://www.filmsofcrawford.com/talesofnyctours/ 过滤掉
当然谷歌是谷歌,但是我在其他网站上发现了类似的方法,例如:https://roadtrippers.com/us/san-francisco-ca/attractions/conservatory-of-flowers?lat=37.81169&lng=-122.69478&z=11&a2=p!5
问:对于像 [POI NAME] -> [Overview image URL]
这样的索引,您的方法是什么(抓取、API 等)?
请添加您的想法:)
【问题讨论】:
您的搜索空间是本地还是 WEB? ,你打算用 GeoTags 和其他文本标签来维护图像吗? Google 的城市名称图片搜索结果似乎始终提供漂亮的照片。为什么不直接使用 Google 图片搜索 API? 【参考方案1】:我强烈建议使用现有的 API。将图像与位置匹配是相当困难的。在我看来,Google 图片搜索 API 提供了太多不相关的结果。它是以这种方式构建的,基于元标记处理图像或显示按 SEO 排名排序的结果。
如果您仍在考虑构建网络爬虫,请查看 Scrapy,它是开源的、有据可查且相当稳定。
您应该看看其他提供基于位置查询的开放 API。一些例子如下:
FourSquare 有一个很棒的 API,你可以获取你的结果提供 每个城市作为一个端点。 Instagram 使用 FourSquare API 来映射图像 地点。应该考虑它的受欢迎程度。 Flickr 具有精心策划的图像结果。你也应该给它一个 尝试根据您正在寻求的许可证索引图像 为。 Google Places 也提供了一个 API,我从来没有使用过这个 服务,但我认为我必须将其添加到我的列表中。【讨论】:
感谢您的回复,我当然考虑过上面的API,但是似乎其他网络项目,例如(roadtrippers.com)使用了来自网络上所有网站的免费照片,是不是为此使用 API? 如我所见,您提供的网站从 Booking.com 和 Pinterest 获取图片。所以我假设他们使用类似的 APIS。您可以从他们的网站下载图片并将其添加到 Google 搜索中,以便将其获取到 Google 图片搜索中。正如我在上面的回答中所说,您在将图像附加到位置的过程中不会遇到重大问题,这个数据挖掘过程将是艰难的,因为您应该考虑一种创建此类信息连接的方法。【参考方案2】:编写自己的图像爬虫并非易事。如果您的目标网站更改格式、使用条款或删除链接,甚至完全替换图像,会发生什么? Quora regarding the complexity of web crawlers 上有一个很好的答案,即使您通过将来源缩小到一小部分网站来简化事情,您也必须弄清楚如何处理图像,而不是文本,这可能需要节省数百本地处理的图像,维护起来并不有趣。
我强烈建议您利用 Google 的图片搜索 API 为您完成繁重的“技术提升”。然后,您的工作就是找到合适的过滤器组合,以获得最佳结果。以下是一些需要考虑的因素:
关键字。您可以尝试按位置(坐标)进行搜索,但随后您将不得不依赖图像元数据的准确性。相反,generalizing the location of coordinates and doing a lookup based on the relative location 怎么样?例如,您可以将 (40.812694, -74.074177) 概括为 New York Giants stadium 而不是纽约的通用天际线。 分辨率。可以肯定地假设更高分辨率的图片更有可能是概览照片并使用专业设备拍摄。您还可以考虑纵横比:比宽高的图像往往会聚焦于单个感兴趣的对象,而比高宽的图像往往会有更多的变化。 许可。谷歌的图片搜索能够通过许可进行过滤,并且可以确保(大部分)you can reuse the images it finds。【讨论】:
谢谢你的回复,我当然考虑过上面的API,但是似乎其他网络项目,例如(roadtrippers.com)使用来自网络上所有网站的免费照片,是他们为此使用 API?【参考方案3】:当然,您不需要为此爬网。您可以使用 google 的 API 来搜索图像并检索图像。看看this article
【讨论】:
谢谢你的回复,我当然考虑过上面的API,但是似乎其他网络项目,例如(roadtrippers.com)使用来自网络上所有网站的免费照片,是他们为此使用 API? 也许吧。这就是谷歌 API 所做的。抓取和索引图像。因此您可以使用该 API 并从结果中检索第一张图像。我认为这个解决方案会奏效以上是关于构建地理位置照片索引 - 爬网还是依赖现有 API?的主要内容,如果未能解决你的问题,请参考以下文章
python 分析常见爬网索引 - http://index.commoncrawl.org/
具有更改日志的非重复爬网的自定义 BCS 索引连接器无法正常工作