问题
python urllib2 urlopen response:
<addinfourl at 1081306700 whose fp = <socket._fileobject object at 0x4073192c>>
expected:
{"token":"mYWmzpunvasAT795niiR"}
回答1:
You need to bind the resultant file-like object to a variable, otherwise the interpreter just dumps it via 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>>
To get the actual data you need to perform a read()
.
>>> data = f.read()
>>> data[:50]
'<!doctype html><html itemscope="itemscope" itemtyp'
To see the headers returned:
>>> print f.headers
Date: Thu, 23 Aug 2012 00:46:22 GMT
Expires: -1
Cache-Control: private, max-age=0
... etc ...
回答2:
Add the following after your call to urlopen
print feed.read()
回答3:
Perhaps you will find using the requests library more intuitive to use than urllib2
.
来源:https://stackoverflow.com/questions/12083231/python-urllib2-urlopen-response