如何将已爬网的位置映射到数据库中的现有位置

时间:2015-08-07 10:34:52

标签: google-maps solr lucene web-crawler search-engine

背景:我正在建立一个网站,从香港的房地产网站(示例项目)抓取数据。我抓取不同的网站,用于各种房产列表。因此,我从原始爬行位置获得了各种位置格式

示例: 很少样本原始抓取位置:

  • 北角
  • 8,Java Road,北角,香港
  • 香港岛,北角

从上述地址可以看出,香港的同一区域,即北点可以有多种形式,上面列出的很少。问题是这个数据没有意义,除非它是映射/结构化的

要求: 我想要一些优雅的解决方案,以便能够将这些原始爬行位置映射到预定义的值集。我能想到的一种方法是,创建一个位置数据库(我正在使用mysql),并找出每个已爬网原始位置的匹配locationId。 如果上述方案听起来不错,那么我的数据库将包含如下字段:

LOCATION_REF,country,state,city,locality,subLocality1,subLocality2,lat,long

其他信息:我也使用apache solr(lucene)来构建这个网站,所以也欢迎任何与solr相关的匹配建议

思考:我认为必须有一些预定义的API来做这样的事情,因为我看到的几乎每个应用都有基于位置的搜索和过滤。是否有谷歌api这样做?如果是的话,如果有人可以帮助提供好的例子,我将不胜感激

PS:我使用Jsoup来解析页面中的数据(以提取原始位置)

1 个答案:

答案 0 :(得分:0)

我找到了一种方法,谷歌地理编码会回答我提出的所有问题。 Google地理编码API将原始地址格式映射到自己的格式,根据位置hirarchy(例如街道号码,邻域,地点等等)提供位置的结构化数据。这就是我需要的

以下是供参考的链接:https://developers.google.com/maps/documentation/geocoding/intro