Como posso obter muitos endereços de muitas trajetórias com script bash sem erro?

0

Eu tenho muitos dados de trajetórias. 500k Eu tento obter endereços dessas coordenadas. Eu uso o comando bash no linux.

#!/bin/bash

filename="$1"

while  read -r line
do
uid=$(echo $line | cut -f1 -d,)
lat=$(echo $line | cut -f2 -d,)
long=$(echo $line | cut -f3 -d,)
timestamp=$(echo $line | cut -f4 -d,)
printf "$uid,$lat,$long,$timestamp|"
wget -O- -q "http://maps.google.com/maps/api/geocode/xml?latlng=$lat,$long&sensor=false"|\
      grep formatted_address|\
      head -n1|\
      cut -d\> -f2|\
      cut -d\< -f1
done < "$filename"

Eu só consigo 2500 endereços. Após 2500 coordenadas, este comando "wget" não funciona. Quando eu reinicio o modem, posso obter mais 2500 endereços. Existe alguma maneira de obter endereço de coordenadas? Ou é possível redefinir o IP no comando bash depois de obter o endereço 2500? obrigado.

Meu arquivo de entrada inclui 500k de dados como este %código% minhas coordenadas 11395,39.9050283,32.6977617,2008-11-03T16:58:05Z

Meu arquivo de saída será assim 39.9050283,32.6977617

    
por AhmetMelihBaşbuğ 20.01.2016 / 09:13

1 resposta

2

O que está acontecendo é que o Google está restringindo suas solicitações de API. Há um limite para quantos dados eles permitem que você receba por meio de um serviço gratuito. Aparentemente, depois de 2500 pedidos, eles te cortaram. Quando você “reinicia o modem”, evidentemente obtém um endereço IP diferente do seu provedor de serviços de Internet, para que possa fazer outras 2.500 solicitações antes de ser bloqueado.

Você precisa repensar sua estratégia. Para pedidos de 500k, você pode precisar pagar por um serviço ou obter os dados de diferentes fontes, como o OpenStreetMap. Se você obtiver os dados do OpenStreetMap, considere que, embora seja gratuito, eles ainda não irão gostar que você faça muitas solicitações em um curto espaço de tempo. Se você precisar de muitos dados, talvez você deva baixar alguns bancos de dados e fazer consultas locais.

    
por 21.01.2016 / 00:35