urlopen函数用法
在python的urllib库中,所有和网络请求相关的方法,都被收集到urllib.request模块下面了
限免先来看下urlopen的使用:
from urllib import request
resp=request.urlopen('http://www.baidu.com')
print(resp.read())
对urlopen函数的进行详细讲解
- url:请求的url。
- date: 请求的data,如果设置了这个值,那么将变成post请求。
- 返回值: 返回值是一个http.client.HTTPResponse对象,这个对象是一个类文件句柄对象。有read(size),readline,readlines以及getcode等方法.
urlretrieve函数用法
这个函数可以方便的将网页上的一个文件保存到本地,比如用以下的代码可以将百度的网页下载到本地
from urllib import request
rquest.urlretrieve('http://www.baidu.com/','baidu.html')
参数编码和解码函数
urlencode函数
用浏览器发送请求的时候,如果url中包含了中文或者其他的特殊字符,那么浏览器会自动给我们进行编码,而如果使用代码发送的话,就不会自动编码,这个时候就可以用urlencode函数来实现.
from urllib import parse
data=['name':'爬虫基地','greet':'hello world','age':'100']
qs=data.urlencode(data)
print(qs)
parse_qs函数
将经过编码后的url参数进行解码。
from urllib import prase
qs="(编码)"
print(parse.parse_qs(qs))
urlparse和urlsplit函数
当我们拿到一个url时,想要对这个url中的各个组成部分进行分割,那么这个时候就可以用urlparse和urlsplit。
from urllib import parse
url='htt://www.baidu.com/s?wd=python&username=abo#1'
result=parse.urlparse(url)
printf('scheme:',result.scheme)
而这两个函数进本上是一摸一样的,唯一的不同是,'urlparse’里面多了一个’parans’属性,而’urlsplit’没有这个’parans’属性。