urllib 库
urllib 库是python中一个基本的请求, 可以模拟浏览器的行为,向指定的服务器发送一个请求,并可以保存服务器返回的数据
urlopen函数:
在使用python3的urllib库中,所有和网络请求相关的方法,都被集到urllib.request模块下面了, 先来看一下urlopen函数的基本使用:
1 from urllib import request 2 resp = request.urlopen("http://baidu.com") 3 print(resp.read())
urlretrieve函数:
这个函数 可以很方便的将网页上的一个文件保存到本地,代码如下:
1 from urllib import request 2 request.urlreyrieve("http://www.baidu,com", "baidu.html")
urlencode函数:
用浏览器发送请求的时候,如果url中包含了中文,或者特殊的字符串,那么浏览器会自动给我们进行编码,而如果使用代码发送请求,那么就必须手动进行编码,这时候就应该使用urlencode函数来实现,urlencode可以把字典数据转换为url编码的数据。示例代码如下:
from urllib import parse
params = {'name': "张三", "age":18, "greed":"hello world"} result = parse.urlencode(params) print(result)
parse_qs函数的用法:
from urllib import parse params = {'name': "张三", "age":18, "greed":"hello world"} result = parse.urlencode(params) #parse_qs 函数的用法: cc = parse.parse_qs(result) print(cc)
urlparse和urlsplit:
有时候拿到一个url,, 想要对这个url 中的各个组成部分进行分割,那么这时候就可以使用urlparse 或者是urlsplit来进行分割, 示例代码如下:
from urllib import parse url = "http://www.baidu.com/s?wd=python&username-abc#1" result = parse.urlparse(url)
result = parse.urlparse(url)
print("scheme:", result.scheme)
print("netloc:", result.netloc)
print("path:", result.path)
print("params:", result.params)
print("query:", result.query)
print("fragment:", result.fragment)
#urlsplit的用法
url = "http://www.baidu.com/s?wd=python&username-abc#1"
result = parse.urlsplit(url)
print("scheme:", result.scheme)
print("netloc:", result.netloc)
print("path:", result.path)
#print("params:", result.params) 没有这个parsms
print("query:", result.query)
print("fragment:", result.fragment)