我在用python做一个模拟登录并签到的登录后遇到问题

落舞者 发布于 2013/12/10 22:39
阅读 823
收藏 1

我在用python做一个模拟登录并签到的登录后遇到问题

目前能模拟登录成功。

但是登录以后的页面是一个框架页面

http://web.jingoal.com/Apps/Attendance.jsp (里面有个签到按钮)

这个是登录页面

http://web.jingoal.com/mgt/login/main.jsp


现在的问题是:http://web.jingoal.com/Apps/Attendance.jsp这个页面是用js生成的。js是用gwt生成的。

看js代码完全就是乱码啊。。

抓包签到过程得到的是这个地址

http://web.jingoal.com/Apps/Attend/attendance?t=时间戳

但是我去post这个地址,却出错。

怎么找签到地址呢?谢谢了

下面附上python代码

#coding=utf-8  
import re  
import urllib  
import urllib2  
import cookielib  
import urllib,urllib2,cookielib  
import re  
class xiaobai:  
    post_data=""#登陆提交的参数  
    def __init__(self):  
        '''''初始化类,并建立cookies值'''  
        cj = cookielib.CookieJar()  
        opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))  
        opener.addheaders = [('User-agent', 'Opera/9.23')]  
        urllib2.install_opener(opener)  
  
    def login(self,loginurl,bianma):  
        '''''模拟登陆'''  
        req = urllib2.Request(loginurl,self.post_data)  
        _response = urllib2.urlopen(req)  
        _d=_response.read()  
        _d =_d.decode(bianma)  
        return _d  
  
    def getpagehtml(self,pageurl,bianma):  
        '''''获取目标网站任意一个页面的html代码'''  
        req2=urllib2.Request(pageurl)  
        _response2=urllib2.urlopen(req2)  
        _d2=_response2.read()  
        _d2 =_d2.decode(bianma)  
        return _d2  
if __name__=="__main__":  
        x=xiaobai()  
        #参递一个post参数  
        x.post_data=urllib.urlencode({'loginName':'xxx@126.com', 'password':'xxxx', 'token2':'1386679519414', 'saveinfo':'on'})  
        y=x.login("http://web.jingoal.com/mgt/loginForward.jsp","utf-8")#登陆  
        #获取一个页面的html并输出  print x.getpagehtml("http://web.jingoal.com/Apps/Attendance.jsp?locale=zh_CN&place=MyAttendance#attendance:","utf-8")
        print x.getpagehtml("http://web.jingoal.com/Apps/Attendance.jsp?locale=zh_CN&place=MyAttendance#attendance:","utf-8")
        req2 = urllib2.Request('http://web.jingoal.com/Apps/Attend/attendance',{'t:1386684103807'})
        _response2 = urllib2.urlopen(req2)  
        html =_response2.read()
        print html



加载中
0
落舞者
落舞者
人工置顶一下啊。
0
IamBot
IamBot
irc: 人工帮顶 (http://t.cn/8kJZArX)
0
voilet119
voilet119
因为你没有注意,他的密码在post的时候都做了加盐处理,所以你直接提交明文密码根本不可能登录成功的
落舞者
落舞者
他登录的时候加了时间戳。我发现他的时间戳只是家在了密码里面,所以我就用了一个固定的,以及加密的密码。已经实现能登录了。就是读取不到下一步【签到】提交的啊。
返回顶部
顶部