使用requests库发起gbk编码的get请求

有一个爬虫,查询需要发起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还是很值得研究的。

时间: 2024-10-11 15:30:40

使用requests库发起gbk编码的get请求的相关文章

使用requests库提交multipart/form-data 格式的请求

前言: Requests是用Python语言编写,基于urllib,采用Apache2 Licensed开源协议的HTTP库.它比urllib更加方便,可以节约我们大量的工作,完全满足HTTP测试需求.更重要的一点是它支持Python3哦! 一.安装 Requests >>>pip3 install requests 二.multipart/form-data 格式的请求举例 如下图所示,请求里面有4个参数:handle,option,modify_offer_type,Filedata

如何使用Google Volley网络库发起带Header的HTTP请求?

By Long Luo 由于合作的第三方iQiyi视频的数据源更新速度很慢,通过和iQiyi反馈,于是提供了新的API接口. 通过阅读新API接口说明,在发起HTTP Get请求时,必须**同时带2个加密的Header参数**,分别是时间戳和MD5加密后的key.时间戳以及客户端参数,否则无法返回正确的请求. 目前在Android客户端使用的是Google开源Volley库,支持各种HTTP请求,图片缓存,JSON解析,性能十分强大.之前使用的接口都是直接发起HTTP Get请求,附带相关参数即

网络爬虫入门:你的第一个爬虫项目(requests库)

0.采用requests库 虽然urllib库应用也很广泛,而且作为Python自带的库无需安装,但是大部分的现在python爬虫都应用requests库来处理复杂的http请求.requests库语法上简洁明了,使用上简单易懂,而且正逐步成为大多数网络爬取的标准. 1. requests库的安装采用pip安装方式,在cmd界面输入: pip install requests 小编推荐一个学python的学习qun 491308659 验证码:南烛无论你是大牛还是小白,是想转行还是想入行都可以来

[爬虫] requests库

requests库的7个常用方法 requests.request() 构造一个请求,支撑以下各种方法的基础方法 requests.get() 获取HTML网页的主要方法,对应于HTTP的GET requests.head() 获取HTML网页头信息的方法,对应于HTTP的HEAD requests.post() 向HTML网页提交POST请求的方法,对应于HTTP的POST requests.put() 向HTML网页提交PUT请求的方法,对应于HTTP的PUT requests.patch(

Requests 库的使用

Python 的标准库 urllib 提供了大部分 HTTP 功能,但使用起来较繁琐.通常,我们会使用另外一个优秀的第三方库:Requests,它的标语是:Requests: HTTP for Humans. Requests 提供了很多功能特性,几乎涵盖了当今 Web 服务的需求,比如: 浏览器式的 SSL 验证 身份认证 Keep-Alive & 连接池 带持久 Cookie 的会话 流下载 文件分块上传 下面,我们将从以下几个方面介绍 Requests 库: HTTP 请求 HTTP 响应

python3接口测试(requests库)

一.一般概念 1.导入第三方库 import requests 2.发送get请求#userURL为客户端访问的URL地址myResponse = requests.get(userURL) 3.查看返回结果#myResponse.header包含内容:{'Server': 'nginx/1.10.1', 'Date': 'Sat, 18 Aug 2018 02:57:28 GMT', 'Content-Type': 'text/html; charset=GBK', 'X-Powered-By

爬虫1.1-基础知识+requests库

目录 爬虫-基础知识+requests库 1. 状态返回码 2. URL各个字段解释 2. requests库 3. requests库爬虫的基本流程 爬虫-基础知识+requests库 关于html的知识,可以到w3school中进行了解学习.http://www.w3school.com.cn/html/index.asp,水平有限,这里不多提及. 1. 状态返回码 标志这这一次的请求状态,成功或失败,失败原因大概是什么 200:请求正常,服务器正常返回数据. 不代表爬去到正确信息了 301

requests库,简明使用教程(python)

Requests库为python的外部库,话不多话,直接开干吧! 首先是安装requests库,很简单不说了. 文件,引入requests库: import requests 下面来看一个简单的例子吧: #一个最简单的爬虫小程序,这里只到获得源html文件结束 import requestsurl1="https://live.500.com/" #ISO-8859-1url2="https://www.baidu.com/" #ISO-8859-1url3=&qu

Python爬虫(二):Requests库

所谓爬虫就是模拟客户端发送网络请求,获取网络响应,并按照一定的规则解析获取的数据并保存的程序.要说 Python 的爬虫必然绕不过 Requests 库. 1 简介 对于 Requests 库,官方文档是这么说的: Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症.冗余代码症.重新发明轮子症.啃文档症.抑郁.头疼.甚至死亡. 这个介绍还是比较生动形象的,便不再多说.安装使用终端命令 pi