python中requests库get方法带参数请求

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

先上代码

data={
    ‘cid‘:567464,
    ‘page‘:1,
    ‘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才知道是编码的问题。

我好菜。

原文地址:https://www.cnblogs.com/roadwide/p/10804888.html

时间: 2024-10-11 00:01:31

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

python中requests库使用方法详解

一.什么是Requests Requests 是?ython语?编写,基于urllib,采?Apache2 Licensed开源协议的 HTTP 库.它? urllib 更加?便,可以节约我们?量的?作,完全满?HTTP测试需求. ?句话--Python实现的简单易?的HTTP库 二.安装Requests库 进入命令行win+R执行 命令:pip install requests 项目导入:import requests 三.各种请求方式 直接上代码,不明白可以查看我的urllib的基本使用方法

爬虫requests库的方法与参数

爬虫requests库的方法与参数 import requests """ # 1. 方法 requests.get requests.post requests.put requests.delete ... requests.request(method='POST') """ # 2. 参数 """ 2.1 url 2.2 headers 2.3 cookies 2.4 params 2.5 data,传请求体

【转】python中List的sort方法(或者sorted内建函数)的用法

原始出处:http://gaopenghigh.iteye.com/blog/1483864 python列表排序 简单记一下python中List的sort方法(或者sorted内建函数)的用法. 关键字: python列表排序 python字典排序 sorted List的元素可以是各种东西,字符串,字典,自己定义的类等. sorted函数用法如下: Python代码   sorted(data, cmp=None, key=None, reverse=False) 其中,data是待排序数

python中List的sort方法的用法

python列表排序 简单记一下python中List的sort方法(或者sorted内建函数)的用法. 关键字: python列表排序 python字典排序 sorted List的元素可以是各种东西,字符串,字典,自己定义的类等. sorted函数用法如下: Python代码   sorted(data, cmp=None, key=None, reverse=False) 其中,data是待排序数据,可以使List或者iterator, cmp和key都是函数,这两个函数作用与data的元

python中函数的使用方法

本文主要介绍:python中函数的使用方法 代码: #!/usr/bin/env python# -*- coding:utf-8 -*-# author by lh #函数里默认形参如果有初始值的话,调用的时候如果不写实参,则默认是形参里的初始值(ps:如果有多个形参,有默认值的参数一定要放到后面)def f1(a='rt'): temp='Welcome '+a return tempret=f1('lh')print retret1=f1()print ret1 #实参可以是任意类型的参数

迭代器就是重复地做一些事情,可以简单的理解为循环,在python中实现了__iter__方法的对象是可迭代的,实现了next()方法的对象是迭代器,这样说起来有

迭代器就是重复地做一些事情,可以简单的理解为循环,在python中实现了__iter__方法的对象是可迭代的,实现了next()方法的对象是迭代器,这样说起来有点拗口,实际上要想让一个迭代器工作,至少要实现__iter__方法和next方法.很多时候使用迭代器完成的工作使用列表也可以完成,但是如果有很多值列表就会占用太多的内存,而且使用迭代器也让我们的程序更加通用.优雅.pythonic.下边是一个例子,从里边你会感受到不用列表而用迭代器的原因. #!/usr/bin/env python #c

Python中的类和方法使用举例

1.类的属性 成员变量对象的创建创建对象的过程称之为实例化,当一个对象被创建后,包含三个方面的特性对象聚丙属性和方法,句柄用于区分不同的对象,对象的属性和方法,与类中的成员变量和成员函数对应,obj = MyClass()创建类的一个实例,扩号对象,通过对象来调用方法和属性 类的属性 类的属性按使用范围分为公有属性和私有属性类的属性范围,取决于属性的名称,共有属性---在内中和内外都能够调用的属性私有属性---不能在内外贝类以外函数调用定义方式:以""双下划线开始的成员变量就是私有属性

在Python中使用gRPC的方法示例【h】

本文介绍了在Python中使用gRPC的方法示例,分享给大家,具体如下: 使用Protocol Buffers的跨平台RPC系统. 安装 使用 pip ? 1 2 pip install grpcio pip install grpcio-tools googleapis-common-protos gRPC由两个部分构成,grpcio 和 gRPC 工具, 后者是编译 protocol buffer 以及提供生成代码的插件. 使用 编写protocol buffer 使用 gRPC 首先需要做

Python中cv2库和matplotlib库色彩空间排布不一致

今天在python中读如图片时发现以下问题: 1.在from matplotlib import pyplot as plt之后,再import cv2 cv2.imshow()不能正常使用,还不知道是什么原因 目前我的解决办法是,使用cv2读入图像,然后调用plt.imshow()显示图像,不使用cv2.imshow()显示图像 2.OpenCV的cv2库中的色彩空间和matplotlib库中的色彩空间的排布方式是不一样的 cv2中的色彩排列是(b,g,r),而matplotlib库中的排列方