龙空技术网

Urllib.parse编码模块

python自羞 98

前言:

现时你们对“pythonurlparse下载”大致比较关心,看官们都想要了解一些“pythonurlparse下载”的相关资讯。那么小编同时在网上网罗了一些有关“pythonurlparse下载””的相关内容,希望朋友们能喜欢,同学们快快来学习一下吧!

简单举例子:比如我们在百度搜索男篮球星易建联的时候,出现的网址是这样的:

易建联&ie=utf-8&tn=02003390_69_hao_pg

可是当我们把这个网址复制粘贴在某一个txt文档里面的时候,就出现下面的情况

易建联变成了一堆上面的编码,也就是说当我们浏览器向url地址发请求的时候,他会自动把url地址里面的中文给编码成上面的格式;他才可以发给服务器,才能够得到正确的响应.

那么就有一个问题,在浏览器里面可以 自动的编码解码,在我们编写的程序里,没有人可以给我们编码解码,所以说我们需要手动编.

因此就引出了我们今天所说的urllib.parse模块,他的主要作用就是对url地址里面的中文进行编码.

导入方式两种:

1:import urllib.parse

2:from urllib import parse

示例:

编码前:易建联

编码后:

编码方法:

urlencode()方法:给url地址中查询参数进行编码,参数类型为字典;

示例:

编码前:params={wd:美女}

编码中:params=urllib.parse.urlencode(params)

编码后:params={wd:%E6%98%93%E5%BB%BA%E8%81%94}

此时我们只是对易建联进行了编码,但是url的地址还没有变化,我们需要给url拼接以下

拼接如下:

我们还有其他的拼接方式:

url=';+params1print(url)url='; % params1print(url)url='?{}'.format(params1)print(url)

简单做个作业:百度中输入要搜索的内容,把响应内容输入到本地文件

import urllib.parsefrom urllib import request#1拼接url地址word=input('请输入要查询的内容:')params=urllib.parse.urlencode({'wd':word})print(params)url='?{}'.format(params)print(url)#2 发请求,获取响应内容headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1'}req=request.Request(url=url,headers=headers)res=request.urlopen(req)html=res.read().decode()print(html)#3 保存到本地文件filename=word+'.html'with open(filename,'w',encoding='utf-8') as f:    f.write(html)

urllib的第二种方法

urllib.parse.quote('参数为字符串')编码

作用:对url地址中的中文进行编码,类似于urlencode方法

params=parase.quote('易建联')

url=';+params

两个注意事项:

1:采用quote方法,编码的时候就不再需要wd了!

2:但是在拼接URL的时候,wd一定要记得带上!!

标签: #pythonurlparse下载