我正在尝试为此人口统计工具页面获取一批查询的结果:http://adlab.microsoft.com/Demographics-Prediction/DPUI.aspx
表单上的POST操作调用同一页面(_self),可能会发布一些事件数据。我在stackoverflow上读到另一篇文章,aspx页面通常需要一些viewstate和验证数据。我只是从请求中保存这些内容,在POST请求中重新发送吗?
或者有更清洁的方法吗?其中一个aspx viewstate参数大约是1000个字符,并且在我的代码中粘贴的令人难以置信的丑陋使我认为有更好的方法。对我能阅读的内容的任何和所有引用都会有所帮助,谢谢!
答案 0 :(得分:1)
也许mechanize可能有用。
答案 1 :(得分:1)
使用urllib2。您的POST数据是一个简单的Python字典。非常容易编辑和维护。
如果您的表单包含隐藏字段 - 其中一些是编码的 - 那么您需要执行GET以获取表单和各种隐藏字段种子值。
获取表单后,可以将必要的输入值添加到给定的隐藏值,然后再将POST响应。
此外,您必须确保处理任何cookie。 urllib2也会帮助你。
毕竟,这就是浏览器所做的一切,它可以在浏览器中运行。浏览器不知道来自WSGI的CGI的ASPX,所以没有魔力,因为它是ASPX。您有时必须在POST之前进行GET以正确设置值和Cookie。
答案 2 :(得分:0)
我使用了requests和BeautifulSoup4组合来完成类似的任务。