Есть ли простой способ программно загрузить изображение карты с открытых карт улиц. (Python) - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь найти способ загрузки файла .PNG карты с открытых карт улиц, учитывая ограничивающую рамку точек максимальной и минимальной широты и долготы.

Выполнение этого вручную через веб-сайт I можно увидеть HTTP-запрос в виде https://render.openstreetmap.org/cgi-bin/export?bbox=-0.1467704772949219, 51.462678831991994, -0.08462905883789064,51.53363786224818 & scale = 27000 & format = png . Запрос этого URL из моего браузера загружает карту, которую я хотел бы.

Как я могу сделать это без моего браузера? Я пытался

import requests
resp = requests.get(the_url_above)

, это приводит к ошибке - неверный или отсутствующий токен.

Я думаю, что могу решить эту проблему, добавив заголовки в мой запрос get, проблему, как найти параметры для отправить вместе с запросом на получение?

Любая помощь высоко ценится.

-EDIT-

Указанные ниже заголовки отправляются с запросом GET, когда я делаю это в веб-браузере ,

authority: render.openstreetmap.org
:method: GET
:path: /cgi-bin/export?bbox=-2.734222412109375,49.389747924326564,-2.529258728027344,49.540582947246236&scale=89967&format=png
:scheme: https
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
accept-encoding: gzip, deflate, br
accept-language: en-GB,en;q=0.9,fr-FR;q=0.8,fr;q=0.7,de-DE;q=0.6,de;q=0.5,es-ES;q=0.4,es;q=0.3,en-US;q=0.2
cache-control: max-age=0
cookie: _osm_totp_token=638451
referer: https://www.openstreetmap.org/
sec-fetch-dest: document
sec-fetch-mode: navigate
sec-fetch-site: same-site
sec-fetch-user: ?1
upgrade-insecure-requests: 1
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)

Я предполагаю, что токен является _osm_totp_token, однако следующее возвращает ту же ошибку (Неверный или отсутствующий токен).

headers = {'_osm_totp_token': '638451'}
r = requests.get('https://render.openstreetmap.org/cgi-bin/export?bbox=-0.1467704772949219,51.462678831991994,-0.08462905883789064,51.53363786224818&scale=27000&format=png', headers=headers)

РЕДАКТИРОВАТЬ 2

Нашел кого-то, у кого была такая же проблема со следующим поиском Google "http запрос cgi-bin export image" - привел меня на google.com/search?q=http+request+cgi-bin+export+image&rlz=1C1CHBF_en-GBGB893GB893&oq= http + request + cgi-bin + export + image & aqs = chrome .. 69i57.13866j0j7, который объяснил, что это не только не выполнимо, но и явно противоречит политике использования.

Ответ

...