使用Python和请求模块向.aspx网站发出多个表单请求(帖子)时出现运行时错误

时间:2014-10-23 10:22:06

标签: python forms python-requests

我正在使用Python及其Requests模块。我有一个requests.session(),我登录到.aspx网站。此时一切都很好。然后,在while循环中运行以下代码,直到一天中的某个时间或直到5个错误发生:

response = session.post('https:/.../default.aspx', data=formdata)

每次脚本循环遍历此post请求时,我都会解析响应以获取列表中的两个值。我的结果超过1天如下所示:

格式:TIME [数字,数字]

LOGIN TIME:  07:11:32
07:11:33 [a, b]
Error:  0
Error:  1
Error:  2
Error:  3
07:45:51 [c, d]
07:45:58 [e, f]
07:46:02 [g, h]
07:46:05 [i, j]
08:02:34 [k, l]
09:25:26 [m, n]
11:15:59 [o, p]
11:38:46 [q, r]
11:42:34 [s, t]
Error:  4

这些字母是从解析的xml响应返回的数字的占位符。我的脚本在5次错误后关闭,或直到一天中的时间是下午1:00。错误和循环计数的时间如下所示:

TIME,响应状态代码,循环计数(#循环迭代)

07:12:45, 500, 452
07:12:45, 500, 453
07:12:46, 500, 454
07:12:50, 500, 455
11:51:46, 500, 106818

在第一个错误和超出该错误之后,脚本会睡眠的时间越来越长(睡眠(错误计数** 2),其中错误计数为1到4 - 如前所述的第5个错误会关闭脚本),解释了前四个错误的时间差异。 无论如何,响应状态代码500伴随着以下response.content(为简洁而减少):

An exception occurred while processing your request. Additionally, another exception occurred while executing the custom error page for the first exception. The request has been terminated.

这对我来说似乎是一个通用的服务器错误。无论如何,任何建议都会很棒。我有一种直觉,认为我发布的频率太高,但如果(如我的结果所示)它在7:45到11:51 am之间工作则没有意义。我相信帖子在第四个错误之后开始工作,因为循环睡眠(睡眠(4 ** 2)= 8)第四个错误后8秒,可能让服务器有时间让它一起行动?

不确定,不管怎样,提前感谢任何帮助/建议。

0 个答案:

没有答案