Почему Python httpx.get или Requests.get намного медленнее, чем cURL для этого API?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему Python httpx.get или Requests.get намного медленнее, чем cURL для этого API?

Сообщение Anonymous »

Для проекта домашней автоматизации я пытаюсь получить данные о задержке поездов. Существует оболочка API с примерами cURL. Они работают нормально, но запросы Python Request.get и httpx.get медленно извлекают данные (до минуты для запросов и около 4 секунд для httpx), но curl или вставка ссылки в браузере возвращает результат почти сразу. Почему?
В Интернете предполагается, что некоторые сайты имеют защиту от парсинга и могут ограничивать или блокировать запросы, поскольку они используют HTTP1.0. В этом API httpx кажется намного быстрее, но далеко не так быстро, как Curl или браузер.
Некоторые примеры: этот фрагмент Python занимает около 4 секунды:

Код: Выделить всё

    import httpx
client = httpx.Client(http2=True)
response = client.get('https://v6.db.transport.rest/stations?query=berlin')
print(response.text)
Это займет около минуты:

Код: Выделить всё

    import requests
response = requests.get('https://v6.db.transport.rest/stations?query=berlin')
print(response.text)
Это возвращается почти сразу:

Код: Выделить всё

    import subprocess
command = 'curl \'https://v6.db.transport.rest/stations?query=berlin\' -s'
result = subprocess.run(command, capture_output=True, shell=True, text=True)
print(result.stdout)
print(result.stderr)
В чем тут волшебство?

Подробнее здесь: https://stackoverflow.com/questions/789 ... r-this-api
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»