我正在尝试自动化获取我在大学的当前学生记录的过程。在浏览器中,该过程涉及输入我大学的 URL,然后单击登录链接,然后将我带到一个 https://URL 页面,我在其中输入我的密码和用户名。然后从那里再输入一两个链接并阅读页面上的一些文本。现在,我的问题是,我如何才能以自动化方式执行此操作,这样我的记录就会显示在命令行上。我认为 URL 中的 https://表示它使用 SSL 是否有某些库可以处理这个问题?另外,我很确定登录页面上的“提交”按钮使用了 JavaScript,是否有库可以处理这个问题?
我确定我在问题描述中遗漏了一些东西,所以如果您不理解我的问题或需要更多信息,请询问。
附言。我不精通 Internet 协议(protocol),我也是 Python 的新手。事实上,我开始为这个项目研究它。但是,我能流利地使用 C,而且我非常擅长 C++。
提前致谢。 迈克尔,
最佳答案
您不必模仿您在浏览器中执行的所有操作。
首先。 https/ssl只要不用验证就没有问题(好像不用),urllib2.urlopen
将处理它们。
其次。当您单击“提交”时,浏览器会向服务器发送一个请求,其中包含您的用户名、密码和可能的其他一些数据。该请求的类型可能是 POST。作为响应服务器可能会向您发送一个带有 session ID 的 cookie。因此,您需要做的就是调查对服务器的请求的确切格式(例如使用 FireBug),并从服务器的响应中获取 cookie。
第三。只需使用该 cookie 来浏览网站上的页面。 This可能有帮助。
附言如您所见,答案中“可能”一词过多 - 确切的身份验证过程可能与上述描述不同,您必须自行调查。
关于javascript - 使用 Python 控制 SSL 网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9452194/