美文网首页
python中requests库get方法带参数请求

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

作者: Nikon937 | 来源:发表于2021-01-29 16:46 被阅读0次

    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才知道是编码的问题。

    相关文章

      网友评论

          本文标题:python中requests库get方法带参数请求

          本文链接:https://www.haomeiwen.com/subject/gpzqtltx.html