Python库之Requests(iMooc)---(2)

来源:互联网 发布:淘宝如何加入村淘 编辑:程序博客网 时间:2024/06/04 19:07

啊嘞,这一节已经~有那么一丢丢的难了~先上代码~

#coding:utf-8import urllibimport urllib2URL_IP = 'http://127.0.0.1:8000/ip'URL_Get = 'http://127.0.0.1:8000/get'def simple_urllib2():    response = urllib2.urlopen(URL_IP)    print '>>>Response Header:'    print response.info()
    print '>>>Response Code:'
    print response.getcode()
    print '>>>Response Body:'    print ' '.join([line for line in response.readlines()])def use_params_urllib2():    params = urllib.urlencode({'params1': 'hello', 'params2': 'world'})    print '>>>Request Params:'    print params    response = urllib2.urlopen('?'.join([URL_GET, '%s']) % params)    print '>>>Response Header:'    print response.info()    print '>>>Response Body:'    print ' '.join([line for line in response.readlines()])if __name__ == '__main__':    print '>>>Use simple_urllib2():'    simple_urllib2()    print '>>>Use use_params_urllib2():'    use_params_urllib2()
好的,代码如上,下面解释:

(1)simple_urllib2()函数

urllib2库中提供了urlopen()方法,如下:

urllib.urlopen(url[, data[, proxies]]) :创建一个表示远程url的类文件对象,然后像本地文件一样操作这个类文件对象来获取远程数据。

参数url表示远程数据的路径,一般是网址;参数data表示以post方式提交到url的数据(玩过web的人应该知道提交数据的两种方式:post与get。如果你不清楚,也不必太在意,一般情况下很少用到这个参数);参数proxies用于设置代理。

urlopen返回 一个类文件对象,它提供了如下方法:read() , readline() , readlines() , fileno() , close() :这些方法的使用方式与文件对象完全一样。

info():返回一个httplib.HTTPMessage 对象,表示远程服务器返回的头信息。getcode():返回Http状态码。如果是http请求,200表示请求成功完成;404表示网址未找到。geturl():返回请求的url。

代码段中,response即为类文件对象,参见红黑联盟。

(2)use_params_urllib2()函数

啊嘞,那个params用到了urllib库中的urlencode方法,将一个字典用url方式编码,之后用'?'.join方法来拼接一个请求(get)的url('?'.join([URL_GET, %s] % params):拼接结束后是URL_GET?params的形式),再用urllib2库中的urlopen方法打开此url返回类文件response。

原创粉丝点击