Vairāk

Vai nosūtīt derīgu UserAgent vai Referer, kad tiek bloķēts Nominatim reversais ģeokode?

Vai nosūtīt derīgu UserAgent vai Referer, kad tiek bloķēts Nominatim reversais ģeokode?


Man ir php lapa, kas pieprasa apgrieztus ģeokodēšanas datus no Nominatim OSM servera. Tas strādāja vairāk nekā gadu. Nesen sāku bloķēt manus pieprasījumus ar šādu ziņojumu:

Jūs esat īslaicīgi bloķēts, jo esat pārmērīgi izmantojis OSM ģeokodēšanas pakalpojumu vai neesat nodrošinājis pietiekamu savas lietojumprogrammas identifikāciju. Šis bloks pēc kāda laika tiks automātiski atcelts. Lūdzu, veltiet laiku un pielāgojiet savus skriptus, lai samazinātu pieprasījumu skaitu, un pārliecinieties, ka nosūtāt derīgu UserAgent vai Referer.

Esmu pārliecināts, ka nepārsniedzu kvotu (1 pieprasījums / sekundē), jo mans kods joprojām tiek sagatavots. aizņemtajā dienā man varētu būt 1 pieprasījums stundā.

Zemāk php pārbaudes koda paraugs. Agrāk es saņēmu vajadzīgo 6$ xml =…, kas tagad ir tukši / nav xml dati (tāpēc es nokasīju lapu un saņemu kļūdas ziņojumu):

$ latLast = 52.5487429714954; $ LngLast = -1.81602098644987; $ feedUrl = "http://nominatim.openstreetmap.org/reverse?format=xml&lat=".$latLast."&lon=".$lngLast; $ rawFeed = file_get_contents ($ feedUrl); mēģiniet {// nominatim serveris bloķē šo ip, jāmaina risinājums $ xml = new SimpleXmlElement ($ rawFeed); print_r ($ xml); } nozveja (izņēmums $ e) {echo $ e-> getMessage (). "
otrais mēģinājums:
"; mēģiniet {$ html = file_get_html ($ url); echo" HTML2: [$ html]
";} nozveja (izņēmums $ e) {echo $ e-> getMessage ()."
"; } }

Kā nosūtīt derīgu UserAgent vai Referer? Kā nodrošināt "pietiekamu identifikāciju"?


iekļaujote-pastsparametru manā pieprasījumā nominatim osm serveris to pieņēma kā derīgu lietotāja aģentu.

$ url = "http://nominatim.openstreetmap.org/[email protected]&format=xml&lat=-23.56320001&lon=-46.66140002&zoom=27&addressdetails=1";

Nominatim WIKI parametri


Man bija līdzīga problēma, iegūstot ģeokodēšanas koordinātas. Man url jāpievieno arī sava e -pasta adrese.

Es apvienoju informāciju no Nominatim reversā ģeokoda - kā nosūtīt derīgu UserAgent vai Referer? un Kā izveidot galveni stream_context_create? lai iegūtu šo:

$ url = 'https://nominatim.openstreetmap.org/search/'.rawurlencode($location). '[email protected]'; $ data = "; // empty post $ opts = array ('http' => array ('header' =>" Content-type: text/html  r  nContent-Length: ".strlen ($ data)."  r  n ", 'method' => 'POST'),); // Izveidot straumi // $ opts = array ('http' => array ('header' =>" User-Agent: StevesCleverAddressScript 3.7.). 6  r  n ")); $ context = stream_context_create ($ opts); // Atveriet failu - iegūstiet json atbildi, izmantojot HTTP galvenes, kas iestatītas virs $ jsonfile = file_get_contents ($ url, false, $ context); // atšifrējiet json if (! json_decode ($ jsonfile, TRUE)) {return false;} else {// if (empty (array_filter ($ resp)))) {return false;} else {$ resp = json_decode ($ jsonfile, true ); // ja (is_string ($ resp)) {$ resp = 'true';} else {$ resp = 'itsnot';} // Iegūstiet datus (piemēram, platumu un garumu) no rezultātiem $ gps ['latitude' ] = $ resp [0] ['lat']; $ gps ['longitude'] = $ resp [0] ['lon']; atgriezt $ gps;}

Skatīties video: Change USER AGENT in Mozilla Firefox browser