我尝试了很长时间的不同方法来使用 python 请求向表单提交 POST 请求,但没有运气。我正在尝试发送'3513'到具有名称的表单文本字段TextTrnNo,然后从网站获取信息。我失败的方法之一:import requestspayload = {'TextTrnNo': '3513'}r = requests.post('https://appiris.infofer.ro/mytrainro.aspx', data=payload)print(r.text)来自谷歌浏览器的标题:Request URL: https://appiris.infofer.ro/ScriptResource.axd?d=JNg0fH_zydENJ7nFcOtvc6yqY25aZ8vD-Ng7zdFvgOejMomgDzr5SQOfJxd86HrHIAnJdwgVKGKwlCLMquTcg919u2vCLYJz5V0xHnmOduOfc5VgeUHRZPW3jweNO1vqw9JZLWTSVL3z295y_EUsB350MMAhbUa41ssYQzHWget11mAeRCd_ANONdJnWqlOV0&t=5854e822Request Method: GETStatus Code: 200 (from memory cache)Remote Address: 193.230.156.188:443Referrer Policy: no-referrer-when-downgradecache-control: publiccontent-encoding: gzipcontent-length: 55951content-type: application/x-javascriptdate: Sun, 13 Jan 2019 17:04:19 GMTexpires: Sun, 12 Jan 2020 22:49:44 GMTlast-modified: Sat, 12 Jan 2019 22:49:44 GMTserver: Microsoft-IIS/6.0status: 200x-powered-by: ASP.NETProvisional headers are shownd: JNg0fH_zydENJ7nFcOtvc6yqY25aZ8vD-Ng7zdFvgOejMomgDzr5SQOfJxd86HrHIAnJdwgVKGKwlCLMquTcg919u2vCLYJz5V0xHnmOduOfc5VgeUHRZPW3jweNO1vqw9JZLWTSVL3z295y_EUsB350MMAhbUa41ssYQzHWget11mAeRCd_ANONdJnWqlOV0t: 5854e822
1 回答
慕盖茨4494581
TA贡献1850条经验 获得超11个赞
您的代码在发送带有您想要的数据的 post 请求时是正确的。但是,在查看发送到站点的网络请求时,我注意到您遗漏了几个字段,这些字段会阻止站点解析发布请求。这些字段是:
Button1
__VIEWSTATE
它们可以完全空白,它们只需要成为发布请求的一部分,从而使您的完整有效负载变量:
payload = {'TextTrnNo': '3513', 'Button1': '', '__VIEWSTATE': ''}
这将返回包含某种表格的不同输出。
添加回答
举报
0/150
提交
取消