Некоторое время я пытался создать запрос на получение, используя запросы и другие инструменты Python, которые на самом деле должны возвращать JSON.
Чтобы приблизиться к теме, я сначала пытаюсь воспроизвести все это в браузере. Тем самым я уже прихожу к пределам.
Это об этом URL: https://unverpackt-verband.de/map
Когда я смотрю на сетевой анализ в Firefox, я вижу нужный json в разделе Response. Но раздел Запрос пуст.
Теперь я был бы признателен за помощь в том, как найти/создать подходящий запрос для автоматического получения и обработки этого JSON с использованием python.
РЕДАКТИРОВАТЬ то, что было опробовано до сих пор:
запросы.get("https://api.unverpacktverband.de/map").json() Результат: «TooManyRedirects: превышено 30 перенаправлений». Ошибка
Я получаю сообщение «TooManyRedirects: превышено 30 перенаправлений». ошибка.
Да, эта страница сломана. Я получаю тот же цикл перенаправления в python-requests, curl и firefox. Как вам удалось получить ответ Status 200 OK в вашем браузере?
Я получил ответ 200 OK после того, как снова очистил кеш. В первый раз ответ кажется 200, а когда я повторяю его, я получаю 304, и он извлекает данные из кеша.
Я не уверен, что вы ищете следующее?
import requests
import pandas as pd
headers = {'accept': 'application/json, text/plain, */*',
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.79 Safari/537.36'
}
url = 'https://api.unverpackt-verband.de/map'
r = requests.get(url, headers=headers)
df = pd.json_normalize(r.json())
print(df)
Результат в терминале:
id type lat lng
0 1985 storeNoMember 47.558307 9.709220
1 1984 plannedMember 48.941530 8.405472
2 1983 storeMember 49.999355 8.711121
3 1982 mobilePlannedMember 51.838272 6.614867
4 1981 plannedMember 52.841810 7.519561
... ... ... ... ...
631 850 storeNoMember 50.713607 7.044930
632 849 storeNoMember 51.486631 7.214458
633 847 storeMember 49.898628 10.896140
634 846 storeMember 49.840614 7.861260
635 845 storeNoMember 52.201666 8.788376
636 rows × 4 columns
что не так с
my_json_response = requests.get("https://api.unverpacktverband.de/map").json()
? выглядит как пример из учебника для модуляrequests
.