Python请求-在同一页面上发送两个请求?

拉格哈贾瓦尔

我正在尝试更改网站上帐户的用户名。需要3个POST参数:

1)newName
2)密码
3)authenticityToken

每次加载页面时都会随机生成authenticityToken。它是隐藏的输入类型:

<input type="hidden" name="authenticityToken" value="0640ce533fc7a51b88f79ce17cdbd611f4dc2360"/>

我正在尝试实现的是获取authenticityToken的值,并在同一页面上发布如上所述的3个必需参数。目前,我的代码使用GET请求接收了authenticityToken,然后发送了另一个POST请求。它返回

错误的真实性令牌

我当前使用的代码如下:

import requests
from bs4 import BeautifulSoup

url = "https://account.mojang.com"

#Login and save cookies
r = requests.post("https://account.mojang.com/login", data={'username':'theUsername','password':'thePassword','remember':'true'})
Logincookies = r.cookies

#Parse the page to get rename link
soup = BeautifulSoup(r.text, "html.parser")
renamePage = None
sources = soup.findAll('a',{"href":True})
for source in sources:
    if("/me/renameProfile/" in source["href"]):
       renamePage = source["href"]


#Get AuthToken

authToken = None
r = requests.get(url + renamePage,cookies=Logincookies)
parser = BeautifulSoup(r.text,"html.parser")
srcs = parser.findAll('input')
for src in srcs:
    if(src["name"] == "authenticityToken"):
        authToken = src["value"]
print(authToken)


r = requests.post(url + renamePage, cookies=Logincookies, data={'newName':'theNewUsername','password':'thePassword','authenticityToken':authToken})
print(r.text)

再一次,我该如何做才能使GET和POST请求一起执行,以便它不使用新页面并接收新的authenticityToken?

拉格哈贾瓦尔

因此,解决方案是使用一个名为RoboBrowser的库,并为它提供与我之前的请求相同的会话:

import requests
from bs4 import BeautifulSoup
from robobrowser import RoboBrowser

session=requests.session()
r = session.post(...)
r = session.get("...")

browser.open(url+renamePage)
rename_form = browser.get_form(class_='standard')
rename_form['newName'].value = "theNewUser"
rename_form['password'].value = "theNewPass"

browser.submit_form(rename_form)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在同一页面上单击按钮后使用ajax发送多个发布请求

来自分类Dev

PHP-PDO-Mysql:无法在同一页面中执行两个请求

来自分类Dev

如何在同一页面上进行ajax调用ajax请求在同一页面中发送和获取

来自分类Dev

如何在特定代码块中的同一页面上一一发送ajax请求

来自分类常见问题

使用SoapUI时,是否可以在同一页面上显示多个请求?

来自分类Dev

区分Django views.py中同一页面上的不同发布请求

来自分类Dev

通过Django中同一页面上的多个按钮启动AJAX请求

来自分类Dev

使用SoapUI时,是否可以在同一页面上显示多个请求?

来自分类Dev

如何在同一页面上从 Django 和 Ajax 获得多个发布请求?

来自分类Dev

使用jQuery将GET请求发送到同一页面

来自分类Dev

我想在同一页面上显示有关将请求发送到服务器的位置的响应

来自分类Dev

PHP从一个页面处理HTTP请求,然后在另一页面上显示

来自分类Dev

POST请求后如何重定向到同一页面

来自分类Dev

POST请求后如何重定向到同一页面

来自分类Dev

如何从不同的get请求呈现同一页面?

来自分类Dev

jQuery ajax请求同一页面PHP无法执行

来自分类Dev

在同一页面中停止多个AJAX请求

来自分类Dev

jQuery:使用参数向同一页面进行获取请求

来自分类Dev

如何获得Ajax请求到同一页面?

来自分类Dev

PHP 不会捕获来自同一页面的来自 AJAX 的 POST 请求

来自分类Dev

如何使用python同时发送两个请求

来自分类Dev

如何为同一页面上的两个表单定义唯一的validateForm?

来自分类Dev

如何在同一页面上呈现两个菜单?

来自分类Dev

是否可以在同一页面上运行两个不同版本的ReactJS?

来自分类Dev

动态填充同一页面上其他两个选择的选择

来自分类Dev

同一页面上的两个Angular2组件

来自分类Dev

Apex-同一页面上的两个按钮,分支到不同的位置

来自分类Dev

React Router问题:React在同一页面上渲染两个组件

来自分类Dev

使用react-hook-form在同一页面上添加两个表单

Related 相关文章

  1. 1

    在同一页面上单击按钮后使用ajax发送多个发布请求

  2. 2

    PHP-PDO-Mysql:无法在同一页面中执行两个请求

  3. 3

    如何在同一页面上进行ajax调用ajax请求在同一页面中发送和获取

  4. 4

    如何在特定代码块中的同一页面上一一发送ajax请求

  5. 5

    使用SoapUI时,是否可以在同一页面上显示多个请求?

  6. 6

    区分Django views.py中同一页面上的不同发布请求

  7. 7

    通过Django中同一页面上的多个按钮启动AJAX请求

  8. 8

    使用SoapUI时,是否可以在同一页面上显示多个请求?

  9. 9

    如何在同一页面上从 Django 和 Ajax 获得多个发布请求?

  10. 10

    使用jQuery将GET请求发送到同一页面

  11. 11

    我想在同一页面上显示有关将请求发送到服务器的位置的响应

  12. 12

    PHP从一个页面处理HTTP请求,然后在另一页面上显示

  13. 13

    POST请求后如何重定向到同一页面

  14. 14

    POST请求后如何重定向到同一页面

  15. 15

    如何从不同的get请求呈现同一页面?

  16. 16

    jQuery ajax请求同一页面PHP无法执行

  17. 17

    在同一页面中停止多个AJAX请求

  18. 18

    jQuery:使用参数向同一页面进行获取请求

  19. 19

    如何获得Ajax请求到同一页面?

  20. 20

    PHP 不会捕获来自同一页面的来自 AJAX 的 POST 请求

  21. 21

    如何使用python同时发送两个请求

  22. 22

    如何为同一页面上的两个表单定义唯一的validateForm?

  23. 23

    如何在同一页面上呈现两个菜单?

  24. 24

    是否可以在同一页面上运行两个不同版本的ReactJS?

  25. 25

    动态填充同一页面上其他两个选择的选择

  26. 26

    同一页面上的两个Angular2组件

  27. 27

    Apex-同一页面上的两个按钮,分支到不同的位置

  28. 28

    React Router问题:React在同一页面上渲染两个组件

  29. 29

    使用react-hook-form在同一页面上添加两个表单

热门标签

归档