¿Cuál es la forma más rápida de HTTP GET en Python?
¿Cuál es la forma más rápida de HTTP GET en Python si sé que el contenido será una cadena? Estoy buscando en la documentación una frase rápida como:
contents = url.get("http://example.com/foo/bar")
Pero todo lo que puedo encontrar usando Google es httplib
y urllib
... y no puedo encontrar un acceso directo en esas bibliotecas.
¿El Python 2.5 estándar tiene un acceso directo de alguna forma como el anterior, o debería escribir una función url_get
?
- Preferiría no capturar el resultado de desembolsar a
wget
ocurl
.
Aceptado
Pitón 3:
import urllib.request
contents = urllib.request.urlopen("http://example.com/foo/bar").read()
Pitón 2:
import urllib2
contents = urllib2.urlopen("http://example.com/foo/bar").read()
Documentación para urllib.request
y read
.
Utilice la biblioteca de solicitudes :
import requests
r = requests.get("http://example.com/foo/bar")
Entonces puedes hacer cosas como esta:
>>> print(r.status_code)
>>> print(r.headers)
>>> print(r.content) # bytes
>>> print(r.text) # r.content as str
Instale solicitudes ejecutando este comando:
pip install requests
Si desea que la solución con httplib2 sea oneliner, considere crear una instancia de un objeto Http anónimo
import httplib2
resp, content = httplib2.Http().request("http://example.com/foo/bar")