pythonrequestsget传参数_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):
(url,params=data)
print(ret.url)
return ret
有两个坑。
⼀是使⽤get⽅法带参数请求时,是params=参数字典,⽽不是data=。data=是post⽅法的参数。只怪我学艺不精,只能在坑⾥摸爬滚打了
⼆是对参数的编码,对于上⾯的参数需要编码的就是_dt,这个是时间的参数需要编码,编码的是空格和冒号。我之前在浏览器上看的url是编码好的,我就预先编码好数据放到data⾥了,然⽽并不需要这
样,只要把原始数据放进去,他就会⾃动编码。放⼊预先⾃⼰编码的数据反⽽会出错。这⾥我还发现了⼀点,在url编码时,有些编码是把空格编码为+,有些则是编码为%20,这⼀点我还没弄明⽩为什么。放⼊参数的数据是把空格编码为+了,我所访问的⽹址也正是需要这样的编码。
url编码处理还有⼀点因为学艺不精⽽浪费⼤量时间。可以直接⽤ret.url来返回所请求的url,这样就可以与浏览器直接访问的结果对⽐。在到这个函数之前⼀直是不停改参数看response来判断是不是对,然⽽到最后还是没改好,还是通过看这个ret.url才知道是编码的问题。
我好菜。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论