def urlopen(url, data=None, proxies=None):
urllib.urlopen('网址'):这里传入urlopen()的参数有特别说要求,要遵循一些网络协议,比如http,ftp。
也就是说,在网址的开头必须要有http://这样的说明,如:urllib.urlopen('http://www.baidu.com')。
要么就是本地文件,本地文件需要使用file关键字,比如urllib.urlopen('file:hello.py')。
注意,这里的hello.py是指的是当前的classpath所指定的内容,当然也可以直接写全部路径,urllib.urlopen('file:F:\pythontest\hello.py')。
#! -*- encoding:utf-8 -*- import urllib f = urllib.urlopen('http://www.baidu.com/') print f.read()
如果传入的参数正确,比如该网站可以访问,没有特殊情况(比如需要代理,被墙- -等),那么将返回一个类似于文件对象的对象。即上面代码中的f,f对象有的方法一些操作方法,使用dir(f):
['__doc__', '__init__', '__iter__', '__module__', '__repr__', 'close', 'fileno', 'fp', 'geturl', 'headers', 'info', 'next', 'read', 'readline', 'readlines', 'url']
urlopen返回 一个类文件对象,他提供了如下方法:
使用read()方法会将所有内容读取出来,并且不能返回重读,在使用f.read()将得不到任何数据,也就是说,得到的数据在这个时候如果想在后面进行任何处理操作的话,需要另外定义一个对象来进行存储。