起因是想爬五等分的花嫁的漫画。这是其中的一个坑

先上代码

data={
'cid':567464,
'page':,
'key':'',
'language':1,
'gtk':6,
'_cid':567464,
'_mid':34949,
'_dt':'2019-05-03 13:03:08',
'_sign':'e74c8c52618a64a454dd7f12aff3cc1c'
}
def getFun(url,data):
ret=requests.get(url,params=data)
print(ret.url)
return ret

有两个坑。

一是使用get方法带参数请求时,是params=参数字典,而不是data=。data=是post方法的参数。只怪我学艺不精,只能在坑里摸爬滚打了

二是对参数的编码,对于上面的参数需要编码的就是_dt,这个是时间的参数需要编码,编码的是空格和冒号。我之前在浏览器上看的url是编码好的,我就预先编码好数据放到data里了,然而并不需要这样,只要把原始数据放进去,他就会自动编码。放入预先自己编码的数据反而会出错。这里我还发现了一点,在url编码时,有些编码是把空格编码为+,有些则是编码为%20,这一点我还没弄明白为什么。放入参数的数据是把空格编码为+了,我所访问的网址也正是需要这样的编码。

还有一点因为学艺不精而浪费大量时间。可以直接用ret.url来返回所请求的url,这样就可以与浏览器直接访问的结果对比。在找到这个函数之前一直是不停改参数看response来判断是不是对,然而到最后还是没改好,还是通过看这个ret.url才知道是编码的问题。

我好菜。

python中requests库get方法带参数请求的更多相关文章

  1. python中requests库使用方法详解

    目录 python中requests库使用方法详解 官方文档 什么是Requests 安装Requests库 基本的GET请求 带参数的GET请求 解析json 添加headers 基本POST请求 ...

  2. Python的Requests库基本方法函数

    一.Requests 库的七个常用函数: 1. requests.request(method,url,**kwargs) :method:请求方式,对应get/put/post等七种 :拟获取页面的 ...

  3. Python3中requests库学习01(常见请求示例)

    1.请求携带参数的方式1.带数据的post data=字典对象2.带header的post headers=字典对象3.带json的post json=json对象4.带参数的post params= ...

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

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

  5. 关于python中第三方库安装方法和问题解决

    一.安装方法 方法一: 1.管理员身份启动命令行(运行--->cmd) 2.pip install 库的绝对路径和库的详细名称 :或者运用cd命令跳转到下载好的库所在的位置然后pip insta ...

  6. python中requests库中文乱码问题

    当使用这个库的时候经常会出现各种乱码的情况. 首先要知道: text返回的是处理过的unicode的数据. content返回的是bytes的原始数据 也就是说r.content比r.text更加节省 ...

  7. python中Requests库错误和异常

    主要有以下四种: 1.Requests抛出一个ConnectionError异常,原因为网络问题(如DNS查询失败.拒接连接等错误) 2.Response.raise_for_status()抛出一个 ...

  8. Python爬虫—requests库get和post方法使用

    目录 Python爬虫-requests库get和post方法使用 1. 安装requests库 2.requests.get()方法使用 3.requests.post()方法使用-构造formda ...

  9. Python中第三方库Requests库的高级用法详解

    Python中第三方库Requests库的高级用法详解 虽然Python的标准库中urllib2模块已经包含了平常我们使用的大多数功能,但是它的API使用起来让人实在感觉不好.它已经不适合现在的时代, ...

随机推荐

  1. Scala词法文法解析器 (一)解析SparkSQL的BNF文法

    平台公式及翻译后的SparkSQL 平台公式的样子如下所示: if (XX1_m001[D003]="邢おb7肮α䵵薇" || XX1_m001[H003]<"2& ...

  2. Java小学四则运算

    本次作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2166 github远程仓库的地址:https://github.c ...

  3. 【RabbitMQ学习之二】RabbitMQ四种交换机模式应用

    环境 win7 rabbitmq-server-3.7.17 Erlang 22.1 一.概念1.队列队列用于临时存储消息和转发消息.队列类型有两种,即时队列和延时队列. 即时队列:队列中的消息会被立 ...

  4. 日志篇 随着win10更新...

    随着win10更新到最新..我发现电脑出了点状况.. 一 是电脑睡眠主机不关闭...然后用了 https://jingyan.baidu.com/article/cb5d6105d76343005c2 ...

  5. spring扩展点之五:ApplicationContextInitializer实现与使用

    ApplicationContextInitializer是Spring框架原有的东西,这个类的主要作用就是在ConfigurableApplicationContext类型(或者子类型)的Appli ...

  6. servlet和response

    servlet基础知识 Servlet在内存中是单例----单实例对象一个Servlet类 在内存中最多有一个对象 一个项目有多少功能,将来就有多少Servlet. servlet是自启动的,就是可以 ...

  7. Laravel学习记录

    1. stream 下载响应 response()->streamDownload(function (){ echo "test" // 输出 },'文件名');

  8. ndk-build官方使用说明

    ndk-build 脚本可用于编译采用 NDK 基于 Make 的编译系统的项目.此外,我们还针对 ndk-build 使用的 Android.mk和 Application.mk 配置提供了更具体的 ...

  9. vue-cli中跨域问题解决方法

    webpack提供了配置代理的方法解决跨域 1 在vue-cli项目中打开webpack.dev.cof.js,如下 2 打开conifg目录下的index.js,在 proxyTable中进行配置 ...

  10. 比较器Comparable和Comparator

    在java中要实现自定义类的比较,提供了以下两个接口: Comparable(内部排序) int compareTo(Object obj);返回值为int,默认升序排序 Comparator(外部排 ...