Tia*_*Xie 1 python url encoding utf-8 character-encoding
我想模拟汉字的 URL 编码。对于我的用例,我有一个电子商务网站的搜索 URL
'https://search.jd.com/Search?keyword={}'.format('ipad')
Run Code Online (Sandbox Code Playgroud)
当我用英语搜索产品时,这很好用。但是,我需要输入中文,我试过了
'https://search.jd.com/Search?keyword={}'.format('??t?')
Run Code Online (Sandbox Code Playgroud)
,并在网络选项卡下找到以下编码
https://list.tmall.com/search_product.htm?q=%C4%CD%BF%CBt%D0%F4
Run Code Online (Sandbox Code Playgroud)
所以基本上,我需要编码输入,如 '??t?' 进入'%C4%CD%BF%CBt%D0%F4'。我不确定网站使用的是哪种编码?另外,如何使用python将汉字转换为这些编码?
更新:我检查了标题,内容编码似乎是 gzip?
尝试使用库urllib.parse模块。更具体地说,urllib.parse.urlencode()功能。您可以传递编码(在这种情况下它似乎是“gb2312”)和一个包含查询参数的字典,以获得可以直接使用的有效 url 后缀。
在这种情况下,您的代码将类似于:
import urllib.parse
keyword = '??t?'
url = 'https://search.jd.com/Search?{url_suffix}'.format(url_suffix=urllib.parse.urlencode({'keyword': keyword}, encoding='gb2312'))
Run Code Online (Sandbox Code Playgroud)
有关此处编码的 更多信息此处有关 urlencode 的更多信息