前端常见url编码

很多网站的关键字搜索,明明输入的中文,却点击submit按钮过后结果变成英文,仔细看一下input和按钮,并没有什么奇特的地方,也就是发现不了关键字被编码的情况。但是实在诡异,确实是被编码了。

我大概分析了一下,传过去的参数大概是按照网站meta charset的编码格式被默认编码了。

我这里用python代码实现得到明文编码后的的文本,用了urllib.parse本地编码解码方法,或者调用在线编码api的方式

import requests
import execjs
import json
import urllib.parse

def encodeURI(URIstring,encoding='gbk'):
    encode_text = URIstring.encode(encoding)
    encode_text = urllib.parse.quote(encode_text)
    return encode_text

def decodeURI(URIstring,encoding='gbk'):
    encode_text = urllib.parse.unquote(URIstring,encoding)
    return encode_text

def search_novel(name="万古杀帝"):
    url = "https://www.bookbao8.com/Search/q_"
    name_encode = execjs.eval(f"encodeURIComponent(escape('{name}'))")
    seach_link = url + name_encode
    return seach_link

def url_encode(unicode_text="万古杀帝"):
    data = {
    'data': unicode_text,
    'type': 'urlencode',
    'arg': 's=gb2312_j=0_t=0'
    }
    r = requests.post('http://web.chacuo.net/charseturlencode',data=data)
    encode_text = ''
    if r.status_code == requests.codes.ok:
        json_text = json.loads(r.text)
        encode_text = json_text['data'][0]
    return encode_text
    # '%CD%F2%B9%C5%C9%B1%B5%DB'
    # '%CD%F2%B9%C5%C9%B1'

if __name__ == '__main__':
    url = search_novel()
    print(url_encode('万古杀帝'))
    print(encodeURI("万古杀帝"))
    # r = requests.get(url)
    # print(r.text)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值