爬虫_urlencode问题

抓取小说的时候,查看小说搜索书名的接口 发现提交的data为

keyword=%CC%EC%CC%C6%BD%F5%D0%E5&t=1

中文部分进行了urlencode,尝试用 python的urllib.parse 的unquote解析一下,发现打印出来的是乱码,看了一下网站的编码是gbk,猜测这个应该是gbk编码的字符串urlencode之后的

unquote('%CC%EC%CC%C6%BD%F5%D0%E5').encode("utf-8").decode("gbk") 发现还是不行

对原先搜索的汉字进行gbk编码后,发现为

\xcc\xec\xcc\xc7\xbd\xf5\xd0\xe5

urlencode的过程只是把\x替换成% 因此这里应该把,keyword解析为字节,dir看了一下parse的方法 发现

unquote_to_bytes  : 成功解析回去

请求的过程:

data = {
        "keyword": urllib.parse.quote(book_name.encode('gbk')),
        "t": 1
    }
    

    rsp = requests.post(url, data=data)

结果发现 返回的界面提示搜索不到结果

抓包看了一下请求:

发现自己的keyword 多了一个 %25 对%25解码看一下是 ‘%’ 号

keyword=%25CC%25EC%25CC%25C6%25BD%25F5%25D0%25E5&t=1

应该是requests会自动对非ascii字符进行urlencode,我们在data中把keyword encode就可以了

data = {
        "keyword": book_name.encode('gbk'),
        "t": 1
    }
    

    rsp = requests.post(url, data=data)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值