使用urllib进行字符串编码

一、使用urllib进行字符串编码
1、需要使用urllib库的urlencode方法进行编码
import urllib
import urllib.request
dic={"derek":"编码"};

python3.7版本不再提供urlencode()函数编码方式,再3.7版本中使用unquote方法直接对字符串进行编码处理

s1=urllib.request.unquote(dic.get("derek"),"utf-8")
print(s1)
在使用get方式查询中文搜索的信息,request请求将中文转为乱码

使用urllib2通过键盘输入要搜索的信息通过百度进行查询,示例如下:

import urllib
import urllib.request

url="https://www.baidu.com/"
seacher=input("请输入要搜索的信息:")

python3.7使用urllib的parse属性的urlencode方法对字典数据进行编码

keyword= urllib.parse.urlencode({"wd":seacher}).encode('utf8')
print(keyword) #通过以上编码后转为b'wd=%E5%9F%8E%E5%B8%82%E5%AD%A6%E9%99%A2'

使用str()方法将keyword的编码转为字符串,根据单引号'拆分为字符串数组

ss=str(keyword).split("'") #['b', 'wd=%E5%9F%8E%E5%B8%82%E5%AD%A6%E9%99%A2', '']
print(ss)

fullurl=url+"?"+ss[1]
print(fullurl)

开始搜索拼接的地址

s=urllib.request.urlopen(fullurl)
print(s.read())

注意: python3.7使用urllib.parse.urlencode({“键”:值})进行编码
编码以后的结果与url网址进行拼接wd=%E5%9F%8E%E5%B8%82%E5%AD%A6%E9%99%A2
才能进行搜索,否则会出现编码错误

标签

评论

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1