URL编码解码和GETPOST请求
在urllib库的使用过程中,会在请求发送之前凭据发送请求的方法进行编码措置惩罚惩罚,来使得通报的参数越发的安适,也越发切合模拟浏览器发送请求的形式。这就需要用urllib中的parse模块。parse的使用主要供给了输送连接的编码解码措置惩罚惩罚。对付差此外请求发送方法,parse的使用要领不是很不异,下面是我的学习条记。
GET要领
parse的使用流程梗概就是在发送请求的时候将发送的内容使用字典封装起来,然后凭据拼凑的方法将盘问的关键信息拼凑到链接后,然后发送请求。如下所示:
1 d = { 2 ‘q‘:‘中国‘ 3 } 4 u = parse.urlencode(d) #将通报的参数进行编码,编码后的格局是凭据字节以%包裹的形式进行通报的. 5 #值得注意的是,当通报的参数是汉字时,默认是凭据‘utf-8’的格局进行编码的, 6 #好比汉字中国的编码为%E4%B8%AD%E5%9B%BD 7 url = ‘{}?{}‘.format(base_url,u)
完整的GET要领发送请求请参考下面这个小例子。
1 ‘‘‘ 2 @Description: url编码和GET请求 3 @Version: 1.0 4 @Autor: Montoin Yan 5 @Date: 2020-02-02 15:44:59 6 @LastEditors : Montoin Yan 7 @LastEditTime : 2020-02-02 20:29:00 8 ‘‘‘ 9 ##在使用GET要领进行通报参数的过程中,我们一般会进行一些简单的编码操纵用来保证参数通报的保密性。在urllib.parse中供给了这样一种要领进行编码与解码 10 11 from urllib import parse 12 from urllib.request import urlopen,Request 13 import random 14 15 #?q=中国 16 base_url = ‘‘ 17 18 #parse在编码时撑持的是字典格局,可以将字典中的键值对凭据随机的形式进行排序,拼凑成一个类似于链接格局 19 d = { 20 ‘q‘:‘中国‘ 21 } 22 u = parse.urlencode(d) #将通报的参数进行编码,编码后的格局是凭据字节以%包裹的形式进行通报的. 23 #值得注意的是,当通报的参数是汉字时,默认是凭据‘utf-8’的格局进行编码的, 24 #好比汉字中国的编码为%E4%B8%AD%E5%9B%BD 25 url = ‘{}?{}‘.format(base_url,u) #设置两个字典,将得到的url拼凑在一起 26 27 print(url) 28 u_url = parse.unquote(url) #将编码后的功效进行解码 29 print(u_url) 30 31 #在编码或者解码结束后,会进行连接的通报访谒,这就运用到urllib.request模块,这部分常用的常识点上一篇博客已经总结过了 32 ua_list = [ 33 "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0", 34 "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.29 Safari/537.36", 35 "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362", 36 "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3741.400 QQBrowser/10.5.3863.400" 37 ] 38 #随机pick one 39 ua = random.choice(ua_list) 40 request = Request(url,headers={ 41 ‘User-agent‘:ua 42 }) 43 # response = urlopen(url,timeout=3) #GET 44 response = urlopen(request,timeout=3) 45 #将使用GET要领得到的信息储存到任意文件中 46 with response: 47 with open(‘bing.txt‘,‘wb‘) as f: 48 f.write(response.read()) 49 50 print(‘告成!‘)
功效可以参考下面的信息:
POST要领
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/30686.html