¿Cuál es la forma más rápida de HTTP GET en Python?

Resuelto Frank Krueger asked hace 15 años • 14 respuestas

¿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 httpliby 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?

  1. Preferiría no capturar el resultado de desembolsar a wgeto curl.
Frank Krueger avatar Mar 14 '09 10:03 Frank Krueger
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.requesty read.

Nick Presta avatar Mar 14 '2009 03:03 Nick Presta

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
 avatar Apr 08 '2013 01:04

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")
to-chomik avatar Mar 14 '2009 16:03 to-chomik