1

我正在尝试获取对此人口统计工具页面的一批查询的结果:http: //adlab.microsoft.com/Demographics-Prediction/DPUI.aspx

表单上的 POST 操作调用相同的页面 (_self),并且可能正在发布一些事件数据。我在 stackoverflow 上的另一篇文章中读到,aspx 页面通常需要一些视图状态和验证数据。我是否只是从请求中保存这些,重新发送 POST 请求?

还是有更清洁的方法来做到这一点?其中一个 aspx viewstate 参数大约有 1000 个字符,将其粘贴到我的代码中令人难以置信的丑陋让我认为必须有更好的方法。我可以阅读的任何和所有参考资料都会有所帮助,谢谢!

4

3 回答 3

1

也许机械化可能有用。

于 2010-01-13T20:06:51.120 回答
1

使用urllib2。您的 POST 数据是一个简单的 Python 字典。非常容易编辑和维护。

如果您的表单包含隐藏字段(其中一些已编码),那么您需要执行 GET 以获取表单和各种隐藏字段种子值。

获取表单后,您可以将必要的输入值添加到给定的隐藏值中,然后再次 POST 响应。

此外,您必须确保处理任何 cookie。urllib2 也将对此有所帮助。

毕竟,这就是浏览器所做的一切,而且它可以在浏览器中运行。浏览器从 WSGI 和 CGI​​ 不知道 ASPX,所以没有魔法,因为它是 ASPX。有时您必须在 POST 之前执行 GET 才能正确设置值和 cookie。

于 2010-01-13T20:29:40.293 回答
0

我已经使用组合请求BeautifulSoup4来完成类似的任务。

于 2012-11-27T13:56:32.323 回答