python3 urllib学习

urllib 是Python内置的HTTP请求库html

  • urllib.request 请求模块
  • urllib.error 异常处理模块
  • urllib.parse url解析模块
  • urllib.robotparser robots.txt解析模块

urllib.request 请求模块服务器

request.urlopen() 
经常使用参数:
url
data:若是有变成post方法,数据格式必须是application/x-www-from-unlencoded
返回类文件句柄
类文件句柄经常使用方法
read(size):size=-1/none
//读取
readeline()
//读取一行
readelines()
//读取多行
close()
//关闭
getcode() //获取请求状态

HTTPMessage方法
文件句柄.info() 返回 httplib.HTTPMessage实例
dir() 是一个内置函数,用于列出对象的全部属性及方法
items()
keys()
values()

request.urlretrieve()
利用urlretrieve() 将数据下载到本地。
经常使用参数:
url
finename 指定保存本地路劲
reporthook 回调函数,当链接上服务器、以及相应的数据块传输完毕时会触发该回调,显示下载进度
data 指post到服务器的数据,该方法返回一个包含两个元素(filename,headers)的元组

 
 
import sys,io
from urllib import request,error

sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030') #改变标准输出的默认编码

def progress(blk, blk_size, total_size):
print('%d/%d - %.02f%%' % (blk * blk_size, total_size, (float)(blk * blk_size) * 100 / total_size))

def retrieve():
try:
request.urlretrieve("http://blog.kamidox.com","test.html",reporthook=progress)
except error.URLError as e:
print(e.reason)
except error.HTTPError as e:
print(e.errno)
if __name__ =="__main__":
retrieve()
 

 urllib.error 异常处理模块app

   主要的错误方式就两种 URLError(错误信息)和HTTPError(错误编码).函数

urllib.parse url解析模块post

  • urllib.parse.urlparse

  将对应的URL解析成六部分,并以元组的数据格式返回来。编码

  •  urllib.parse.urlunparse

  拼接urlurl

  • urllib.parse.urljoinspa

  用来拼接url的方法 或者叫组合方法,url必须为一致站点,不然后面参数会覆盖前面的hostcode

相关文章
相关标签/搜索