-
urllib.parse.urlencode(query)
将query字典转换为url路径中的查询字符串
下面是一个实例:
#!/usr/bin/env python3
#urlencode 测试
from urllib import parse
#定义要转化的字典数据
qdict = {'age':34,'grils':('lili','tingting'),'name':'han p$'}
print(parse.urlencode(qdict))
#result:
#age=34&grils=%28%27lili%27%2C+%27tingting%27%29&name=han+p%24
#怎么让两个女朋友分开呢
print(parse.urlencode(qdict,True))
#result
#age=34&grils=lili&grils=tingting&name=han+p%24
#怎么让name里边的$不要编码呢
print(parse.urlencode(qdict,True,'$'))
#result
#age=34&grils=lili&grils=tingting&name=han+p$
#怎么让空格不编码成+而编译成%20呢
print(parse.urlencode(qdict,True,'$',quote_via=parse.quote))
#由于前面还有两个位置参数所以使用关键字参数
#result age=34&grils=lili&grils=tingting&name=han%20p$
输出:
age=34&grils=%28%27lili%27%2C+%27tingting%27%29&name=han+p%24
age=34&grils=lili&grils=tingting&name=han+p%24
age=34&grils=lili&grils=tingting&name=han+p$
age=34&grils=lili&grils=tingting&name=han%20p$
-
urllib.parse.parse_qs(qs)
将qs查询字符串格式数据转换为python的字典
字典键是唯一的查询变量名且值是每个名称的值列表。
-
urllib.request.urlopen(url, data=None)
发送http请求,如果data为None,发送GET请求,如果data不为None,发送POST请求
返回response响应对象,可以通过read()读取响应体数据,需要注意读取出的响应体数据为bytes类型
举个栗子:
import urllib.request
url = 'https://www.python.org'
#req = urllib.request.Request(url)
#response = urllib.request.urlopen(req)
response = urllib.request.urlopen(url)
#暂时还不知晓两者有何区别
print(type(response))
'''`
运行: <class 'http.client.HTTPResponse'>
通过输出结果可以发现它是一个HTTPResposne类型的对象,它主要包含的方法有read()、
readinto()、getheader(name)、getheaders()、fileno()等函数和msg、version、
status、reason、debuglevel、closed等属性。
例如response.read()就可以得到返回的网页内容,response.status就可以得到返
回结果的状态码,如200代表请求成功,404代表网页未找到等。
'''
`
html = response.read().decode('utf-8')
print(html)