запросы не заканчиваются на URL с большим содержанием - PullRequest
0 голосов
/ 14 января 2020

Я не могу исправить проблему request.get, когда при обращении к URL отображается 50 ~ МБ контента. В целом браузеру требуется 4 минуты ~, чтобы получить / отобразить полный ответ, в то время как request.get () работает вечно.

response = requests.get('http://<url-that-renders-contents-as-raw-data>', headers=<headers>, cookies=<cookies>, verify=False, stream=True)

из-за некоторых проблем с конфиденциальностью не может поделиться фактическими URL / заголовками / файлами cookie и т. Д. c другими параметрами, но как мы можем получить response.content, возможно, частями, URL, который при нажатии как запрос get получает необработанные данные / журналы / строки стоимостью в мегабайты?

edit: На самом деле это SimpleHTTPServer или SimpleAuthServer, и мне нужно получить от него громоздкий файл через http.

Ответы [ 2 ]

0 голосов
/ 15 января 2020

Мои искренние извинения, я также работаю с очень минимальной информацией от уполномоченного задачи - фактически сам URL не доступен из экземпляра. Наконец-то, что сработало для меня, то, что @congbauguier предложил: Загрузить большой файл в python с запросами

0 голосов
/ 15 января 2020

Как вы на самом деле получаете ответ здесь? Поскольку вы установили stream=True, он просто загрузит заголовки, после чего он будет ждать, пока вы получите фактические данные, используя Response.iter_lines, Response.iter_content или выполнив прямой ввод-вывод в потоке вывода Response.raw.

Трудно помочь без дополнительной информации, но, поскольку всем этим нужно дать "границы", вы можете посмотреть на ход вашего чтения и посмотреть, полностью ли он заблокирован. Или, если вы даже не дойдете до этой части (в этот момент вы можете захотеть включить низкоуровневое ведение журнала http.client и urllib3, это будет очень шумно, но предоставит больше информации)

...