【问题标题】:Make `_doPostBack` requests using postman使用邮递员发出`_doPostBack`请求
【发布时间】:2020-11-15 14:07:35
【问题描述】:
我正在从https://www.iob.in/bc_locator.aspx 抓取一些数据,页面通过__doPostBack('ctl00$ContentPlaceHolder1$gv_Branch','Page$n') 之类的请求为表格的下一个内容加载数据,其中n 是页码。
我可以通过 URL 发出正常请求,但找不到通过邮递员模仿 __doPostBack('ctl00$ContentPlaceHolder1$gv_Branch','Page$n' 的方法。有相同的想法吗?
【问题讨论】:
标签:
python
python-3.x
web-scraping
python-requests
postman
【解决方案1】:
此页面是使用 Asp.Net 开发的网络表单。当您第一次访问该网站时,您会得到一个 cookie ASP.NET_SessionId 来识别您的机器。您需要将此 cookie 附加到回发中,否则会失败。
要以编程方式实现这一点,只需将简单的 GET 转换为 https://www.iob.in 并检索 cookie。然后发送 POST 到 https://www.iob.in/bc_locator.aspx 并附上 cookie。
邮递员:
{
"__EVENTTARGET": "ctl00$ContentPlaceHolder1$gv_Branch",
"__EVENTARGUMENT": "Page$1"
}
为了通过运行 Asp 事件导航到其他页面,您可能需要__VIEWSTATE、__VIEWSTATEGENERATOR。 __EVENTVALIDATION等,从原始页面获取。