有一个爬虫,查询需要发起get请求,这个网站整个都是gbk编码
如果直接发起请求,是不可以的,因为请求参数q首先用utf8编码转化成bytes,然后将bytes进行URLEncode变为字符串。

resp=requests.get("http://haha.com",params={"q":"你好"
})
print(resp.url)

第一种解决方法:直接使用bytes,而不用字符串,则可以避免将字符串用utf8编码

res = requests.get("http://www.baidu.com", params={'q': bytes('天下大势为我所控', 'gbk')
})

第二种解决方法,直接拼串

url="http://www.baidu.com/"+requests.utils.quote("天下大势为我所控",encoding='gbk')
requests.get(url)

第三种解决方法,使用PreparedRequest

from requests.models import PreparedRequest
p=PreparedRequest()
s=p.prepare_url("http://www.baidu.com",params={'q':bytes('天下大势为我所控','gbk')
})
print(p.url)

作为一个纯python的库,requests还是很值得研究的。

转载于:https://www.cnblogs.com/weiyinfu/p/8088085.html

使用requests库发起gbk编码的get请求相关推荐

  1. python3中使用requests库出现的编码问题

    最近在使用python完成爬虫任务时遇到了编码问题,查看了很多资料,现总结一些编码的知识. 1.编码解码 1.1 字符和字节 "字节"是一个8位的物理存贮单元.而"字符& ...

  2. 压缩包安装fitter库,gbk编码错误解决方法

    安装fitter库 直接pip和conda install都安装不了(不知道为什么,反正找不到 在https://pypi.tuna.tsinghua.edu.cn/simple/fitter下载压缩 ...

  3. python requests cookies请求_python的requests库怎么发送带cookies的请求

    背景: 在用robot做接口自动化时,有一个查询接口需要用到登录后返回的token等信息作为cookies作为参数一起请求(token是在返回体中,并不在cookies中), 刚好create ses ...

  4. python requests post cookies_python的requests库怎么发送带cookies的请求

    背景: 在用robot做接口自动化时,有一个查询接口需要用到登录后返回的token等信息作为cookies作为参数一起请求(token是在返回体中,并不在cookies中), 刚好create ses ...

  5. python requests post请求_实例解析Python3 如何利用requests 库进行post携带账号密码请求数据...

    1 调试过程 用Python3.6+Sciter+PyCharm写了一个py测试脚本helloworld.py,该脚本中只含有一条语句"import sciter".在PyChar ...

  6. Requests库网络爬虫实战

    实例一:页面的爬取 >>> import requests >>> r= requests.get("https://item.jd.com/100003 ...

  7. python爬虫requests实战_Python爬虫之requests库网络爬取简单实战

    实例1:直接爬取网页 实例2 : 构造headers,突破访问限制,模拟浏览器爬取网页 实例3 : 分析请求参数,构造请求参数爬取所需网页 实例4: 爬取图片 实例5: 分析请求参数,构造请求参数爬取 ...

  8. requests库学习

    requests库学习 requests快速上手 http://2.python-requests.org/zh_CN/latest/user/quickstart.html Requests库是用来 ...

  9. python爬虫基础-requests库

    python爬虫基础-requests库 python爬虫 1.什么是爬虫? 通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程. 注意:浏览器抓取的数据对应的页面是一个完整的页面. 为什 ...

最新文章

  1. ASP.NET(C#)常用代码30例
  2. unix实际用户ID和有效用户ID解析
  3. 解放双手 | Jenkins + gitlab + maven 自动打包部署项目
  4. (0059)iOS开发之添加自定义字体库并设置文本字体
  5. XGBoost核心讲解笔记(贪心学院)
  6. java常用简略语含义
  7. 手把手教程:用Python开发一个自然语言处理模型,并用Flask进行部署
  8. BGP——邻居状态机+报文分析(总结)
  9. asp.net ReportViewer 设置 rdlc textbox的值
  10. python 调用opencv dll_【问题已解决】python 3.6下安装opencv-python解决cv2 DLL load failed: 找不到指定的模块问题...
  11. DOM 事件深入浅出(一)
  12. 2010-09-11
  13. 网站被攻击拿下—只因为程序员一个文件上传功能没写好
  14. jupyter的常用操作——Python学习(二)
  15. Spring Boot 中使用WebJars
  16. 中国人工智能趋势报告(完整版)
  17. oracle 应收 系统选项,Oracle财务系统应收账款模块操作手册
  18. HTML + CSS实现图片3D旋转效果
  19. 实际开发中implement与extend区别
  20. [Unity3d] [图文]【寻路】 Waypoint 与 NavMesh 比较(转)

热门文章

  1. spring5源码-基于XML的依赖注入
  2. 二分图匹配的判断+p1322+二分图最大匹配+tyvj1035
  3. [Coci2015]Divljak
  4. python学习笔记(十一)-python程序目录工程化
  5. Java业务代理模式~
  6. GoogleProgressBar
  7. 解决Error基础连接已经关闭: 未能为SSL/TLS 安全通道建立信任关系
  8. 一点一点学习Ubuntu
  9. Prototype 学习——Function对象
  10. 【Java从0到架构师】MyBatis - 增删改、动态 SQL