Какой самый быстрый способ получить HTTP GET в Python?

Установите цвет фона. По умолчанию используется значение null.

Например, используйте Background="White".

548
задан Adil B 23 October 2018 в 16:55
поделиться

5 ответов

Python 3:

import urllib.request
contents = urllib.request.urlopen("http://example.com/foo/bar").read()

Python 2:

import urllib2
contents = urllib2.urlopen("http://example.com/foo/bar").read()

Документация для urllib.request и read.

848
ответ дан 22 November 2019 в 22:05
поделиться

Если Вы хотите, чтобы решением с httplib2 была острота, рассматривают инстанцирующий анонимный объект Http

import httplib2
resp, content = httplib2.Http().request("http://example.com/foo/bar")
29
ответ дан Manos Nikolaidis 24 October 2018 в 02:55
поделиться

Вот wget сценарий в Python:

# From python cookbook, 2nd edition, page 487
import sys, urllib

def reporthook(a, b, c):
    print "% 3.1f%% of %d bytes\r" % (min(100, float(a * b) / c * 100), c),
for url in sys.argv[1:]:
    i = url.rfind("/")
    file = url[i+1:]
    print url, "->", file
    urllib.urlretrieve(url, file, reporthook)
print
4
ответ дан theller 24 October 2018 в 02:55
поделиться
  • 1
    Положительная сторона. Я обновил свой ответ. – Stephan202 13 October 2009 в 11:32

Взгляните на httplib2, который - рядом с большим количеством очень полезных функций - обеспечивает точно, что Вы хотите.

import httplib2

resp, content = httplib2.Http().request("http://example.com/foo/bar")

то, Где содержание было бы органом по ответу (как строка), и resp, будет содержать заголовки ответа и состояние.

Это не прибывает включенное со стандартной установкой Python, хотя (но это только требует стандартного Python), но это определенно стоит проверить.

19
ответ дан hennr 24 October 2018 в 02:55
поделиться

решение контроллера для wget действительно полезно, однако я обнаружил, что оно не распечатывает прогресс в процессе загрузки. Идеально, если вы добавите одну строку после вывода сообщения на печать в reporthook.

import sys, urllib

def reporthook(a, b, c):
    print "% 3.1f%% of %d bytes\r" % (min(100, float(a * b) / c * 100), c),
    sys.stdout.flush()
for url in sys.argv[1:]:
    i = url.rfind("/")
    file = url[i+1:]
    print url, "->", file
    urllib.urlretrieve(url, file, reporthook)
print
5
ответ дан 22 November 2019 в 22:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: