Я пытаюсь взять плитки от OpenStreetMap. Я выучил синтаксис их API. У меня есть «старый способ» делать вещи, использование запросов и «новый путь», который используется чьим -то проектом GitHub. Я пытаюсь использовать их проект, но для меня это терпит неудачу в одном месте. Затем я собрал этот короткий сценарий в качестве минимального примера: < /p>
from PIL import Image
import requests
import urllib.request
#A tile we want to grab from Open Street Map
tile_url = "https://a.tile.openstreetmap.org/16/19299/24629.png"
#Old way: Get the bytes via requests.get, then parse as image and save.
old_way = Image.open(requests.get(tile_url,stream=True).raw)
old_way.save("oldway.png")
#New way: use urlretrieve to directly copy the file over to newway.png
destination = "newway.png"
try:
path, response = urllib.request.urlretrieve(tile_url, destination)
except urllib.error.URLError as e:
print("URL error!")
print(e.code)
#Expected behavior: Two identical images are created,
#named oldway.png and newway.png
#Actual behavior: We get oldway, but newway gives a 403 error.
< /code>
Что здесь идет не так? В чем разница между этими двумя http -запросами, которые приводят к первому хорошо работающему, а второй дает ошибку 403? Я попытался копаться в исходном коде соответствующих библиотек Python, но это оказывается довольно длинным беспорядком функций, вызывающих друг друга. И, конечно, с тех пор, как это HTTPS, я не могу контролировать сетевое соединение, чтобы оценить переносимые необработанные байты, и выяснить вещи таким образом. Что -то с заголовками? Обратите внимание, что я не просто пытаюсь решить эту проблему («В чем проблема?>
Подробнее здесь: https://stackoverflow.com/questions/720 ... t-urlretri
Почему OpenStreetMap дает ошибку 403 через Python's urllib.request.urlretrive, но работает отлично при использовании зап ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Urllib.error.HTTPError: Ошибка HTTP 403: запрещено с помощью urllib.requests
Anonymous » » в форуме Python - 0 Ответы
- 16 Просмотры
-
Последнее сообщение Anonymous
-
-
-
RSS-канал Rumble - выдает 403 при вызове с помощью python urllib.request
Anonymous » » в форуме Python - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-
-
-
RSS-канал Rumble - выдает 403 при вызове с помощью python urllib.request
Anonymous » » в форуме Python - 0 Ответы
- 16 Просмотры
-
Последнее сообщение Anonymous
-