我正在尝试自动完成在我大学获取当前学生记录的过程。在浏览器中,该过程涉及键入我的学院的URL,然后单击登录链接,然后将我带到https:// URLed页面,我输入了我的密码和用户名。然后从那里再一两个链接和阅读页面上的一些文字。现在,我的问题是,我怎样才能以自动方式执行此操作,因此我的记录将显示在命令行上。我认为URL中的https://表示它使用SSL是否有某些库可以处理这个问题?登录页面上的“提交”按钮我非常确定使用JavaScript,是否还有库来处理这个问题?
我确定我的问题描述中遗漏了某些内容,所以请询问您是否理解我的问题或需要更多信息。
PS。我不熟悉Internet协议,我也是Python的新手。事实上,我开始为这个项目研究它。但是,我精通C语言,而且我对C ++非常满意。
提前致谢。 迈克尔,
答案 0 :(得分:0)
您不必模仿在浏览器中执行的所有操作。
首先。 https / ssl没有问题,只要您不必验证它们(似乎您没有),urllib2.urlopen
将处理它们。
二。当您单击“提交”时,浏览器会使用您的用户名,密码和其他一些数据向服务器发送请求。该请求的类型可能是POST。作为响应服务器,您可能会向您发送一个包含会话ID的cookie。所以你需要做的就是调查服务器请求的确切格式(例如使用FireBug),并从服务器的响应中获取cookie。
第三。只需使用该cookie来浏览网站上的页面即可。 This可能有帮助。
P.S。如您所见,答案中有太多“可能”字样 - 确切的身份验证过程可能与上述不同,您必须自己进行调查。
答案 1 :(得分:0)
Roman的回答是很好的建议:当你的脚本可以直接调用HTTP方法时,你通常不需要像真正的用户那样行事。
但是,如果您不习惯对网站所需的HTTP操作进行逆向工程,那么另一种方法是使用Selenium,这是一种模拟与网页交互的工具。 Web应用程序开发人员通常使用Selenium来测试他们的应用程序,但它也可以用作现有网站的自动化客户端。