2012-08-17 95 views
0

我正在学习Python,我来自Java/C++和C背景。我通常喜欢在调试器中“检查”“对象”以更好地理解发生了什么,所以请原谅我的问题,如果python看起来很奇怪。如何检查Python中的urllib2对象?

我正在阅读Python网站上的urllib2文档。下面的例子显示出:

>>> import urllib2 
>>> for line in urllib2.urlopen('http://tycho.usno.navy.mil/cgi-bin/timer.pl'): 
...  if 'EST' in line or 'EDT' in line: # look for Eastern Time 
...   print line 

我明白urlopen会下载页面的内容。

请问urlopen下载HTML内容?我试着做以下事情:

content = urllib2.urlopen('http://tycho.usno.navy.mil/cgi-bin/timer.pl') 
print content 

它产生一个对象。这个对象的性质是什么?它是一个类似字典的对象吗?如果是这样,我如何检查它的关键值是什么?这是否使用Python中的pickling来完成?

我知道geturl()方法,但我想完全理解urlopen()做什么并返回。

谢谢!

回答

0

是的,你可以使用打印的内容:

print content.read() 

还,我想建议IPython的,所以你可以检查对象的方法和属性很容易:

dir(content) 
1
import pdb 
pdb.set_trace() 

将它放置在源代码中的任意位置,就像断点 - 它允许您交互地检查名称和对象。一旦你的,你也可以使用

import inspect 

里面有多个选项用于检查对象http://docs.python.org/library/inspect.html#module-inspect

dir(my_object)的属性和方法是做同样的事情的廉价方式

1

the documentation

这个函数返回一个类文件对象有两个方法:...

因此,您可以像读取文件一样阅读它(就像您已经这样做了)。

+0

所以'打开文件,并阅读每一行? – darksky 2012-08-17 16:03:37

+0

文件类对象的行为类似于[文件对象](http://docs.python.org/library/stdtypes.html#file-objects)。 – 2012-08-17 16:09:33