2012-08-23 17 views
19
urllib2

pitón urlopen respuesta:pitón urllib2 urlopen respuesta

<addinfourl at 1081306700 whose fp = <socket._fileobject object at 0x4073192c>> 

esperada:

{ "token": "mYWmzpunvasAT795niiR"}

Respuesta

25

Debe vincular el objeto similar a un archivo resultante a una variable, o therwise el intérprete simplemente vuelca a través de repr:

>>> import urllib2 
>>> urllib2.urlopen('http://www.google.com') 
<addinfourl at 18362520 whose fp = <socket._fileobject object at 0x106b250>> 
>>> 
>>> f = urllib2.urlopen('http://www.google.com') 
>>> f 
<addinfourl at 18635448 whose fp = <socket._fileobject object at 0x106b950>> 

para obtener los datos real que necesita para realizar una read().

>>> data = f.read() 
>>> data[:50] 
'<!doctype html><html itemscope="itemscope" itemtyp' 

Para ver los encabezados devueltos:

>>> print f.headers 
Date: Thu, 23 Aug 2012 00:46:22 GMT 
Expires: -1 
Cache-Control: private, max-age=0 
... etc ... 
+0

Tengo una pregunta aquí. Si no almacena el contenido de 'f' en' datos', y simplemente realizo 'f.read()', obtengo el contenido solo una vez. Si hago 'f.read()' de nuevo, imprime una cadena vacía. ¿Porqué es eso? –

+0

@SidharthSamant: porque ha consumido todos los datos de la transmisión, no está almacenado internamente por 'urllib2'. – mhawke

4

Añadir lo siguiente después de su llamada a urlopen

print feed.read() 
2

Tal vez usted encontrará con el requests library más intuitivo de usar que urllib2.

+0

¡Buena llamada, gracias! –

Cuestiones relacionadas