Я использую Python 3.7.6 и модуль «запросы» (v2.22.0), чтобы получить некоторые игровые данные из API игры publi c. У меня не было проблем с получением небольших объемов данных, но я столкнулся с проблемой с большими объемами данных.
Используя следующий URL в браузере: https://api.guildwars2.com/v2/commerce/listings/19683, я получаю хороший JSON список в браузере, показывающий книгу заказов внутриигрового товара. Это довольно длинный список.
При попытке захвата данных с использованием Python и модуля запросов извлеченные данные усекаются. Похоже, что запросы не возвращают весь набор данных.
Используемый код:
import json
import requests
URL = 'https://api.guildwars2.com/v2/commerce/listings/19683'
response = requests.get(url=URL, params=None)
response.status_code
response.headers
response.content
response.text
response.json()
jsonApiData = response.json()
Когда я проверяю данные из строк response.content
и response.text
, очевидно, что данные были усечены. Это очень заметно при просмотре объекта json из response.json
. После копирования данных из браузера в Atom и сравнения количества символов с response.json
создается впечатление, что ответ на запрос не был полностью проанализирован или усечен.
Я просматривал документы запросов ( https://requests.readthedocs.io/en/master/) для максимального количества символов и не найдено никаких ограничений.
Я все еще довольно новичок с JSON и запросами, но не сталкивался с подобными вещами, даже когда загружал 100 МБ данных в виде изображений из других API.
Кто-нибудь имел дело с такая ситуация? Как я могу получить весь набор данных? Спасибо за вашу помощь.