从公司名称和精确地址中检索电话号码

问题描述 投票:0回答:1

我有一个 CSV 文件,其中包含: 公司名称;完整地址(街道名称邮政编码等) 还有一些其他数据。

我需要以某种方式自动提取电话号码,因为有 30k 行。 我可以在谷歌上搜索它并从谷歌获取通常的公司横幅,其中有电话号码,但由于有 30k 记录,我想将其自动化以供将来使用。

乍一看,我想到使用 Google API 和 Python/JavaScript/jquery 来搜索地点并从 JSON 中检索公司的详细信息和电话号码。 例如,通过执行 https 请求或curl:

https://maps.googleapis.com/maps/api/place/findplacefromtext/json?fields=formatted_address%2Cname%2Crating%2Copening_hours%2Cgeometry&input=AGENZIA+DI+FORMAZIONE+PROFESSIONALE+DELLE+COLLINE+ASTIGIANE+SIGLA+BILE+A.F.P.+COLLINE+ASTIGIANE+S.C.R.L.REGIONE+SAN+ROCCO+74+14041+AGLIANO+TERME+-+AT&inputtype=textquery&key="YOUR_API_KEY"

但是结果并不是我所期望的:

{
   "candidates" : 
   [
      {
         "formatted_address" : "Regione S. Rocco, 74, 14041 Agliano AT, Italia",
         "geometry" : 
         {
            "location" : 
            {
               "lat" : 44.8032127,
               "lng" : 8.248341099999999
            },
            "viewport" : 
            {
               "northeast" : 
               {
                  "lat" : 44.80456222989272,
                  "lng" : 8.24969852989272
               },
               "southwest" : 
               {
                  "lat" : 44.80186257010728,
                  "lng" : 8.246998870107277
               }
            }
         },
         "name" : "Agenzia di Formazione Professionale delle Colline Astigiane",
         "opening_hours" : 
         {
            "open_now" : false
         },
         "rating" : 4.6
      }
   ],
   "status" : "OK"
}

或者至少看起来它找到了这个地方,但没有找到我需要的信息。

javascript python google-maps google-api
1个回答
0
投票

我找到了解决这个问题的方法。 似乎如果您还将 formatted_phone_number 或 International_phone_number 字段添加到请求 API 将回答:

Error while parsing 'fields' parameter: Unsupported field name 'address_component'.

因此,为了避免这种情况,您需要准确地提出请求。 就我而言:

https://maps.googleapis.com/maps/api/place/findplacefromtext/json?input=AGENZIA+DI+FORMAZIONE+PROFESSIONALE+DELLE+COLLINE+ASTIGIANE+SIGLA+BILE+A.F.P.+COLLINE+ASTIGIANE+S.C.R.L.REGIONE+SAN+ROCCO+74+14041+AGLIANO+TERME+-+AT&inputtype=textquery&key=your_api_key

答案将是:

{ "candidates" : [ { "place_id" : "ChIJi1_91SCMh0cRkUuerytZctE" } ], "status" : "OK" }

获得 place_id 后,您需要发出另一个请求。就我而言:

https://maps.googleapis.com/maps/api/place/details/json?place_id=ChIJi1_91SCMh0cRkUuerytZctE&key=AIzaSyB3ABPP8grlalspjKW-nWLzPnDeLQrsoB0

这将提供指定地点的完整信息。 似乎有点奇怪,因为您必须发出 2 个单独的请求,而不是一个,但这似乎是迄今为止我找到的唯一解决方案。 感谢您的帮助@mykaf 和@geocodezip

© www.soinside.com 2019 - 2024. All rights reserved.