一直想用python做一个我们学校bbs的自动登录程序,可一直拖到现在,昨天才仔细研究了下。
首先,学校的bbs分为好几个框架,通过javascript加载,于是不能从首页着手。
查到他的左边登录的url,打开后查看源码。它post了一个表单,表单里有用户名和密码。在post前,用户名和密码通过下面的脚本做了验证,不过没有做变换。表单的action属性也是在这生成的,找到了action就知道往哪个地方投送用户名和密码了。
根据上面的处理,用python就很容易写出一个登录程序了
登录成功后,返回一个页面,会设置cookie。如果之后要发文就必须设置cookie项,否则bbs认为没有登录。
设置cookie的代码如下:
这里有几个问题要注意:
第一、"/x5F/x55/x5F/x4E/x55/x4D",这只是个普通的字符串,不过是用16进制的ASCII码表示
第二、知道cookie后的发送
cookie是http服务器用来在本地保存数据的方式,浏览器在发送http请求时作为头发送出。
urllib2.Request函数第三个参数就是http头,构造完cookie后传递给他即可。
总结:
自动登录脚本主要要注意两个地方,第一是如何post用户名和密码,第二是如何生成cookie以保持登录状态,这两个弄明白后登录一个网站就不是什么大问题了。当然,有的网站要求输入验证码,如果绕不开的话就难喽。