我试图使用requests
模块创建一个简单的post方法,如下所示:
s=requests.Session()
s.post(link,data=payload)
为了正确地执行此操作,有效负载是来自页面本身的id,并且在每次访问页面时生成。
所以我需要从页面获取数据然后继续请求。
访问页面时的问题是将生成新的ID。
所以,如果我们这样做:
s=requests.Session()
payload=get_payload(s.get(link).text)
s.post(link,data=payload)
这不起作用,因为当您使用s.get
加入页面时会生成正确的ID,但是当您转到帖子请求时,会生成一个新的ID,因此您将使用旧的ID之一。
有没有办法在发布请求之前从页面获取数据?
类似的东西:
s.post(link,data=get_data(s.get(link))
答案 0 :(得分:1)
当您发布帖子(或获取)请求时,该页面将生成另一个ID并将其发回给您。在生成数据时无法将数据发送到页面,因为您需要首先接收响应以处理页面上的数据,并且一旦收到响应,服务器将在下次为您创建新的ID你查看页面。
有关HTTP请求的简单示例图像,请参阅https://www3.ntu.edu.sg/home/ehchua/programming/webprogramming/images/HTTP.png