首页 > 解决方案 > python请求:发布后查看重定向页面的文本

问题描述

我正在尝试使用请求从表单帖子中查询网站以获取响应信息,但是在提交表单时手动使用网站(填写表单并单击提交按钮)时,我得到的 html 内容与我在response.text对象中得到的不同使用请求发布到网站时。

手动发布表单时,网站会重定向回表单页面,并在表单下方显示新文本(一些新文本<h#><ul>对象)。但是,使用requests.post,我的 response.text对象只是给了我页面的内容,就好像我在做 一样requests.get,向我建议手动使用站点时的重定向与我从请求中获得的重定向不同。

知道如何让我response.text与手动使用该网站看到的内容相匹配吗?或者也许响应对象甚至不是我应该用来获取该文本的对象?我的想法可能是网站手动重定向到与 POST 相同的表单页面,请求强制重定向为 GET,我需要以某种方式覆盖此功能?

这是我正在使用的代码:

import requests

get_resp = requests.get(url="https://example-site.com")

# It's a Django site so I need to get the csrftoken
csrf_token = get_resp.cookies['csrftoken']

post_resp = requests.post(
    url="https://example-site.com",
    data={"key1": "value1",
          "key2": "value2"},
    headers={"X-CSRFToken": csrf_token},
)

print(post_resp.text)

感谢您的帮助!

标签: pythonpython-requestsformshttp-post

解决方案


推荐阅读