Python请求模块GET方法:在包含%的参数中处理分页令牌

乔里斯

我正在尝试通过分页处理API响应。第一页提供了到达下一个标记的分页标记,但是当我尝试将其反馈回方法params参数时,requests.get它似乎以错误的方式对标记进行了稍微编码。

我尝试检索下一页(使用responserequests.get一种方法输出):

# Initial request
response = requests.get(url=url, headers=headers, params=params)

params.update({"paginationToken": response.json()["paginationToken"]})

# Next page
response = requests.get(url=url, headers=headers, params=params)

失败,状态为500:内部服务器错误和消息 Padding is invalid and cannot be removed.

分页令牌示例: gyuqfh%2bqyNrV9SI1%2bXulE6MXxJgb1VmOu68eH4YZ6dWUgRItb7yJPnO9bcEXdwg6gnYStBuiFhuMxILSB2gpZCLb2UjRE0pp9RkDdIP226M%3d

如果仔细查看,尤其是在'%'符号周围,url属性response似乎会显示稍有不同的标记:https://www.wikiart.org/en/Api/2/DictionariesByGroup?group=1&paginationToken=gyuqfh%252bqyNrV9SI1%252bXulE6MXxJgb1VmOu68eH4YZ6dWUgRItb7yJPnO9bcEXdwg6gnYStBuiFhuMxILSB2gpZCLb2UjRE0pp9RkDdIP226M%253d

例如,分页令牌和url以不同的结尾:226M%3d226M%253d当我手动复制url的第一部分并添加正确的分页令牌时,它确实会在浏览器中检索信息。

我是否缺少在将request.get参数反馈回新请求之前应将其应用于参数的某种编码

丹德夫

没错,这是某种形式的编码,确切地说是百分比编码。它通常用于编码URL。很容易解码:

from urllib.parse import unquote

pagination_token="gyuqfh%252bqyNrV9SI1%252bXulE6MXxJgb1VmOu68eH4YZ6dWUgRItb7yJPnO9bcEXdwg6gnYStBuiFhuMxILSB2gpZCLb2UjRE0pp9RkDdIP226M%253d"
pagination_token = unquote(pagination_token)
print(pagination_token)

输出:

gyuqfh%2bqyNrV9SI1%2bXulE6MXxJgb1VmOu68eH4YZ6dWUgRItb7yJPnO9bcEXdwg6gnYStBuiFhuMxILSB2gpZCLb2UjRE0pp9RkDdIP226M%3d

但是我希望这是您的问题的一半,请使用请求会话对象https://requests.readthedocs.io/en/master/user/advanced/#session-objects发出请求,因为最有可能的cookie是与要与分页令牌一起使用的请求一起发送。由于网站当前关闭,我无法确定。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

python sh模块中如何处理包含“-”的命令?

来自分类Dev

在python scrapy中处理分页

来自分类Dev

在python scrapy中处理分页

来自分类Dev

GET请求忽略了我在python请求中的参数

来自分类Dev

GET请求中的“ _”参数

来自分类Dev

GET请求中的“ _”参数

来自分类Dev

错误:使用Boto python时,“请求中包含的安全令牌无效”

来自分类Dev

错误:使用Boto python时,“请求中包含的安全令牌无效”

来自分类Dev

在 requests.get 中循环分页参数

来自分类Dev

Elixir Phoenix 处理带参数的 get 请求

来自分类Dev

Symfony GET/POST 方法中请求参数的最佳实践

来自分类Dev

DispatchAction ServletException:请求不包含名为“ method”的处理程序参数

来自分类Dev

无法处理内核分页请求?

来自分类Dev

请求中包含的安全令牌已过期

来自分类Dev

如何通过带有请求模块的Python在json中打印Twitter处理?

来自分类Dev

在Python中从etrade获取oauth请求令牌

来自分类Dev

发布请求以检索Python中的承载令牌

来自分类Dev

在 GET 请求的正文中而不是 URI 中包含参数是 RESTful 吗?

来自分类Dev

在枚举python中包含stop参数的最简单方法?

来自分类Dev

在Python中实现令牌处理程序

来自分类Dev

如果请求url在Rails中包含无效参数,重定向404的最佳方法是什么?

来自分类Dev

在spring请求中处理数据表请求参数

来自分类Dev

理解python中的请求参数

来自分类Dev

C预处理器宏参数中的令牌检测

来自分类Dev

Django:“请求”不包含“方法”(POST / GET)

来自分类Dev

Python请求模块不使用post方法

来自分类Dev

在AngularJS中包含模块的正确方法

来自分类Dev

在嵌套模型类中包含模块方法

来自分类Dev

访问模块中包含的ruby方法的符号

Related 相关文章

  1. 1

    python sh模块中如何处理包含“-”的命令?

  2. 2

    在python scrapy中处理分页

  3. 3

    在python scrapy中处理分页

  4. 4

    GET请求忽略了我在python请求中的参数

  5. 5

    GET请求中的“ _”参数

  6. 6

    GET请求中的“ _”参数

  7. 7

    错误:使用Boto python时,“请求中包含的安全令牌无效”

  8. 8

    错误:使用Boto python时,“请求中包含的安全令牌无效”

  9. 9

    在 requests.get 中循环分页参数

  10. 10

    Elixir Phoenix 处理带参数的 get 请求

  11. 11

    Symfony GET/POST 方法中请求参数的最佳实践

  12. 12

    DispatchAction ServletException:请求不包含名为“ method”的处理程序参数

  13. 13

    无法处理内核分页请求?

  14. 14

    请求中包含的安全令牌已过期

  15. 15

    如何通过带有请求模块的Python在json中打印Twitter处理?

  16. 16

    在Python中从etrade获取oauth请求令牌

  17. 17

    发布请求以检索Python中的承载令牌

  18. 18

    在 GET 请求的正文中而不是 URI 中包含参数是 RESTful 吗?

  19. 19

    在枚举python中包含stop参数的最简单方法?

  20. 20

    在Python中实现令牌处理程序

  21. 21

    如果请求url在Rails中包含无效参数,重定向404的最佳方法是什么?

  22. 22

    在spring请求中处理数据表请求参数

  23. 23

    理解python中的请求参数

  24. 24

    C预处理器宏参数中的令牌检测

  25. 25

    Django:“请求”不包含“方法”(POST / GET)

  26. 26

    Python请求模块不使用post方法

  27. 27

    在AngularJS中包含模块的正确方法

  28. 28

    在嵌套模型类中包含模块方法

  29. 29

    访问模块中包含的ruby方法的符号

热门标签

归档