BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #4329同步于 2014/11/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖

[解决]学校bbs模拟登入

deare1300
2014/11/19镜像同步7 回复
有人做过学校bbs模拟登入吗,感觉有些诡异,用firefox查看登入请求的地址是http://bbs.byr.cn/user/ajax_login.json,在html查看是http://bbs.byr.cn/login, 直接用/login登入不成功,只是跳转,ajax_login直接失败。等大神解答! ------------------------------------------------------------------------------- 这里吧模拟登入的代码贴下,希望可以帮助大伙吧(论坛贴代码有点乱,上传个附件吧) class ParentForum: def __init__(self, url = "http://bbs.byr.cn/"): self.url = url def login(self): print "------login" headers = dict() headers["Connection"] = "keep-alive" headers["Accept"] = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; rv:32.0) Gecko/20100101 Firefox/32.0" headers["Accept-Encoding"] = "gzip,deflate" headers["Accept-Language"] = "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3" headers["X-Requested-With"] = "XMLHttpRequest" cj = cookielib.LWPCookieJar() cookie_support = urllib2.HTTPCookieProcessor(cj) opener = urllib2.build_opener(cookie_support) urllib2.install_opener(opener) print "before login the cookie is" cookie(cj) postData = { "id": "deare1300", "passwd":"******", "CookieDate":"2" } postData = urllib.urlencode(postData) print postData request = urllib2.Request("http://bbs.byr.cn/user/ajax_login.json", postData, headers) response = urllib2.urlopen(request) print "after login the cookie is" cookie(cj) def cookie(cj): for index, cookie in enumerate(cj): print cookie 附件(1.2KB) login.py
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
jake1036机器人#1 · 2014/11/20
用IE9 F12试试,看能跟踪出来不。 【 在 deare1300 的大作中提到: 】 : 有人做过学校bbs模拟登入吗,感觉有些诡异,用firefox查看登入请求的地址是http://bbs.byr.cn/user/ajax_login.json,在html查看是http://bbs.byr.cn/login, : 直接用/login登入不成功,只是跳转,ajax_login直接失败。等大神解答!
jake1036机器人#2 · 2014/11/20
http://bbs.byr.cn/user/ajax_login.json 是这个。。 【 在 deare1300 的大作中提到: 】 : 有人做过学校bbs模拟登入吗,感觉有些诡异,用firefox查看登入请求的地址是http://bbs.byr.cn/user/ajax_login.json,在html查看是http://bbs.byr.cn/login, : 直接用/login登入不成功,只是跳转,ajax_login直接失败。等大神解答!
deare1300机器人#3 · 2014/11/20
检测是这个,但直接用这个返回404 【 在 jake1036 的大作中提到: 】 : http://bbs.byr.cn/user/ajax_login.json : 是这个。。
reverland机器人#4 · 2014/11/20
just behave like a browser 把所有参数和报头都加上,最起码,要有XMLHttpRequest import requests r = requests.post('http://bbs.byr.cn/user/ajax_login.json', data={"CookieDate": 2, "id": "reverland", "passwd": "xxxxxx"}, headers={"X-Requested-With": "XMLHttpRequest"}) print r 【 在 deare1300 的大作中提到: 】 : 检测是这个,但直接用这个返回404
reverland机器人#5 · 2014/11/20
哈哈,试试这个,还必须有content-lenghth字段 printf "POST /user/ajax_login.json HTTP/1.1\r\nHost: bbs.byr.cn\r\nContent-Length: 45\r\nX-Requested-With: XMLHttpRequest\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\npasswd=YOURPASSWD&CookieDate=2&id=reverland"|nc bbs.byr.cn 80
deare1300机器人#6 · 2014/11/20
确实404是因为这个参数,谢谢了! 【 在 reverland 的大作中提到: 】 : just behave like a browser : 把所有参数和报头都加上,最起码,要有XMLHttpRequest : import requests : ...................
jake1036机器人#7 · 2014/11/21
恭喜解决。 【 在 deare1300 的大作中提到: 】 : 有人做过学校bbs模拟登入吗,感觉有些诡异,用firefox查看登入请求的地址是http://bbs.byr.cn/user/ajax_login.json,在html查看是http://bbs.byr.cn/login, : 直接用/login登入不成功,只是跳转,ajax_login直接失败。等大神解答!