1.urllib.urlopen(url[,data[,proxies]])

打开一个url的方法,返回一个文件对象,然后可以进行类似文件对象的操作。本例试着打开baidu

import urllib

f = urllib.urlopen('http://www.baidu.com')

firstLine = f.readline()   #读取html页面的第一行

print firstLine

wKiom1hy5VqTL99MAAAhE5C3FT8450.png


urlopen返回对象提供方法:

read() , readline() ,readlines() , fileno() , close() :这些方法的使用方式与文件对象完全一样

info():返回一个httplib.HTTPMessage对象,表示远程服务器返回的头信息

getcode():返回Http状态码。如果是http请求,200请求成功完成;404网址未找到

geturl():返回请求的url


2.urllib.urlretrieve(url[,filename[,reporthook[,data]]])

urlretrieve方法将url定位到的html文件下载到你本地的硬盘中。如果不指定filename,则会存为临时文件。

urlretrieve()返回一个二元组(filename,mine_hdrs)

临时存放:

#需要指定存放地址可用 filename = urllib.urlretrieve('http://www.baidu.com',filename='/path/baidu.html')

import urllib

filename = urllib.urlretrieve('http://www.baidu.com')

type(filename)
filename[0]
filename[1]

wKiom1hy5-KDWv0DAAGNJogHHH4853.png


3.urllib.urlcleanup()

清除由于urllib.urlretrieve()所产生的缓存


4.urllib.quote(url)和urllib.quote_plus(url)

将url数据获取之后,并将其编码,从而适用与URL字符串中,使其能被打印和被web服务器接受。

#屏蔽url中特殊的字符(包括中文),把需要编码的字符转化为 %xx 的形式

urllib.quote('http://www.baidu.com')

urllib.quote_plus('http://www.baidu.com')


5.urllib.unquote(url)和urllib.unquote_plus(url)

与4的函数相反


6.urllib.urlencode(query)

将URL中的键值对以连接符&划分

将dict或者包含两个元素的元组列表转换成url参数。例如 字典{'name': 'dark-bull', 'age': 200}将被转换为"name=dark-bull&age=200"

这里可以与urlopen结合以实现post方法和get方法:


GET 方法:

import urllib

params=urllib.urlencode({'spam':1,'eggs':2,'bacon':0})

#params'eggs=2&bacon=0&spam=1'

f=urllib.urlopen("http://python.org/query?%s" % params)

print f.read()