当前位置: 首页 > news >正文

爬虫_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)

相关文章:

  • 如何实现MySQL的自动备份
  • 魔术索引
  • PIC数据采集系统---接口功能测试
  • 字符串排列
  • 数组中的逆序对
  • Windows 8 应用商店应用开发 之 氛围光传感器
  • 子串判断
  • arm汇编程序中的[|]
  • 实时中位数
  • 【spring】IllegalArgumentException Can not set field to $Proxy 在spring中使用事物或AOP遇到的错误...
  • 约瑟夫问题
  • C#实现UDP分包组包
  • tomcat 集群搭建
  • 善变的同伴
  • IDC:PC 今年第一季度出货量继续下滑趋势,比起去年同期跌了13.9%
  • (三)从jvm层面了解线程的启动和停止
  • 【刷算法】求1+2+3+...+n
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • angular组件开发
  • dva中组件的懒加载
  • go语言学习初探(一)
  • isset在php5.6-和php7.0+的一些差异
  • JavaScript类型识别
  • Just for fun——迅速写完快速排序
  • Linux CTF 逆向入门
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 如何合理的规划jvm性能调优
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 我从编程教室毕业
  • Java总结 - String - 这篇请使劲喷我
  • 浅谈sql中的in与not in,exists与not exists的区别
  • #、%和$符号在OGNL表达式中经常出现
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • %check_box% in rails :coditions={:has_many , :through}
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (二)hibernate配置管理
  • (转)shell调试方法
  • ... 是什么 ?... 有什么用处?
  • .net framework 4.0中如何 输出 form 的name属性。
  • .Net IOC框架入门之一 Unity
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .NET学习全景图
  • .NET值类型变量“活”在哪?
  • .Net转Java自学之路—基础巩固篇十三(集合)
  • .考试倒计时43天!来提分啦!
  • /3GB和/USERVA开关
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
  • [1]-基于图搜索的路径规划基础
  • [ACL2022] Text Smoothing: 一种在文本分类任务上的数据增强方法
  • [Angular 基础] - 表单:响应式表单