码迷,mamicode.com
首页 > 其他好文 > 详细

搜索是关键字的编码和解码

时间:2018-12-11 00:41:17      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:真心   python   遇到的问题   enter   函数   pytho   大神   百度   tps   

学点东西真的是太难了,真心膜拜那种2个礼拜就能搞定一门语言的大神。

今天遇到的问题是,使用搜索接口时,一些网站会为了兼容性,会将搜索的关键字转码。转码后拼接到URL里,然后进行访问。

1.在python3.x中,编码使用的函数是urllib.parse.urlencode(),解码使用的是urllib.parse.unquote()

2.urlencode()的参数形式是kv型的。

3.一个小坑。网页的编码形式可能是不一样的,所以在编码时,不同的网页编码形式下的文本,通过函数得到的值可能是不同的。同理,解码是如果不能选择对应的网页编码形式,那解出来的值也是不正确的。幸运的是,一般网站的编码形式是一样的。只要统一了编码格式,就不会有问题。

附一个例子:

https://www.baidu.com/s?ie=utf-8&mod=1&isbd=1&isid=b89fc5cb0002cb31&ie=utf-8&f=3&rsv_bp=1&rsv_idx=1&tn=62095104_15_oem_dg&wd=%E5%93%94%E5%93%A9%E5%93%94%E5%93%A9&oq=%25E5%2593%2594%25E5%2593%25A9%25E5%2593%2594%25E5%2593%25A9&rsv_pq=b89fc5cb0002cb31&rsv_t=f2a5yaijut%2BMn4jB5s4LRth%2BkQI4DlOTNYnIOz5Q1Cvvvu%2Bh5wSVdnqdpT286QolYpedXO%2F%2FmU7X&rqlang=cn&rsv_enter=0&prefixsug=%25E5%2593%2594%25E5%2593%25A9%25E5%2593%2594%25E5%2593%25A9&rsp=3&bs=%E5%93%94%E5%93%A9%E5%93%94%E5%93%A9&rsv_sid=&_ss=1&clist=&hsug=&f4s=1&csor=4&_cr1=35583

一样一长段是百度的某个搜索时的url,我们都知道,百度的搜索关键字对应字段是wd,所以想知道我的关键字是什么,只要解析%E5%93%94%E5%93%A9%E5%93%94%E5%93%A9这一串。

函数的写法:urllib.parse.unquote(‘%E5%93%94%E5%93%A9%E5%93%94%E5%93%A9‘,‘utf-8‘),print之后,可以看到我们搜索的关键字是:哔哩哔哩

同理搜索时,只要将wd字段修改。

比如我们要搜索‘YYF头有多重’,写法为:

urllib.parse.urlencode({‘wd‘:‘‘YYF头有多重‘},‘utf-8‘),print之后为:wd=YYF%E5%A4%B4%E6%9C%89%E5%A4%9A%E9%87%8D,OK搞定。

最后,就是要正确区分unquote()和quote()函数。

学东西真是一步一个坎,没准又快放弃了。

搜索是关键字的编码和解码

标签:真心   python   遇到的问题   enter   函数   pytho   大神   百度   tps   

原文地址:https://www.cnblogs.com/marseilles/p/10099941.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!