前言:
现时你们对“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下载