我正在尝试使用请求来查询网站,以获取来自表单发布的回复信息,但是在提交表单时,我手动使用该网站(填写表单并单击提交按钮)时却得到了与之不同的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)
谢谢您的帮助!