发布时间:2017-11-27 23:47:41编辑:Run阅读(4492)
python标准库之urllib模块
涉及到网络这块,必不可少的模式就是urllib.request了,顾名思义这个模块主要负责打开URL和HTTP协议之类的
urllib最简单的应用就是
urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
url 需要打开的网址
data Post提交的数据
timeout 设置网站的访问超时时间
urlopen返回对象提供方法
read() , readline() ,readlines() , fileno() , close() :对HTTPResponse类型数据进行操作
geturl()函数返回response的url信息,常用于url重定向的情况
info()函数返回response的基本信息
getcode()函数返回response的状态代码,最常见的代码是200服务器成功返回网页,404请求的网页不存在,503服务器暂时不可用
编写一个testurllib.py来实验一下,代码如下
#!/usr/bin/env python # coding: utf-8 __author__ = 'www.py3study.com' import urllib.request import time import platform import os def clear(): '''该函数用于清屏''' print(u'内容较多,显示3秒后翻页') time.sleep(3) OS = platform.system() if (OS == u'Windows'): os.system('cls') else: os.system('clear') def linkbaidu(): url = 'https://www.baidu.com' try: response = urllib.request.urlopen(url, timeout=3) except urllib.request.URLError: print(u'网络地址错误') exit() with open('baidu.txt','w') as fp: fp.write(response.read().decode('utf-8')) print(u'获取url信息,response,geturl() \n: {}'.format(response.geturl())) print(u'获取返回代码,response.getcode() \n:{}'.format(response.getcode())) print(u'获取返回信息,response.info() \n:{}'.format(response.info())) print(u'获取的网页内容以存放当前目录baidu.txt中,请自行查看') if __name__ == '__main__': linkbaidu()
应该看到的效果
baidu.txt内容如下
上一篇: python之读写文件
47745
46237
37110
34627
29229
25886
24745
19863
19417
17909
5716°
6316°
5836°
5888°
6985°
5829°
5846°
6361°
6316°
7673°