750 Stimmen

Was ist der schnellste Weg zu HTTP GET in Python?

Was ist der schnellste Weg zu HTTP GET in Python, wenn ich weiß, dass der Inhalt eine Zeichenfolge sein wird? Ich suche in der Dokumentation nach einem schnellen Einzeiler wie:

contents = url.get("http://example.com/foo/bar")

Aber alles, was ich mit Google finden kann, sind httplib y urllib - und ich kann in diesen Bibliotheken keine Abkürzung finden.

Hat Standard-Python 2.5 eine Abkürzung in irgendeiner Form wie oben, oder sollte ich eine Funktion schreiben url_get ?

  1. Ich würde es vorziehen, nicht die Ausgaben für die wget o curl .

5voto

Wenn Sie eine API auf niedrigerer Ebene wünschen:

import http.client

conn = http.client.HTTPSConnection('example.com')
conn.request('GET', '/')

resp = conn.getresponse()
content = resp.read()

conn.close()

text = content.decode('utf-8')

print(text)

3voto

Akshar Punkte 837

Hervorragende Lösungen Xuan, Theller.

Damit es mit Python 3 funktioniert, nehmen Sie die folgenden Änderungen vor

import sys, urllib.request

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.request.urlretrieve(url, file, reporthook)
print

Außerdem sollte der eingegebenen URL ein "http://" vorangestellt werden, da sonst ein Fehler mit unbekanntem URL-Typ zurückgegeben wird.

2voto

Kimmo Punkte 1736

Wenn Sie speziell mit HTTP-APIs arbeiten, gibt es auch bequemere Möglichkeiten wie Nickerchen .

Hier ist zum Beispiel, wie man Gists von Github erhält, da 1. Mai 2014 :

from nap.url import Url
api = Url('https://api.github.com')

gists = api.join('gists')
response = gists.get(params={'since': '2014-05-01T00:00:00Z'})
print(response.json())

Weitere Beispiele: https://github.com/kimmobrunfeldt/nap#examples

1voto

Pedro Lobito Punkte 84666

について python >= 3.6 können Sie verwenden dload :

import dload
t = dload.text(url)

について json :

j = dload.json(url)

Installieren:
pip install dload

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X