返回信息流有人做过学校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
这是一条镜像帖。来源:北邮人论坛 / python / #4329同步于 2014/11/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
[解决]学校bbs模拟登入
deare1300
2014/11/19镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
用IE9 F12试试,看能跟踪出来不。
【 在 deare1300 的大作中提到: 】
: 有人做过学校bbs模拟登入吗,感觉有些诡异,用firefox查看登入请求的地址是http://bbs.byr.cn/user/ajax_login.json,在html查看是http://bbs.byr.cn/login,
: 直接用/login登入不成功,只是跳转,ajax_login直接失败。等大神解答!
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直接失败。等大神解答!
检测是这个,但直接用这个返回404
【 在 jake1036 的大作中提到: 】
: http://bbs.byr.cn/user/ajax_login.json
: 是这个。。
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
哈哈,试试这个,还必须有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
确实404是因为这个参数,谢谢了!
【 在 reverland 的大作中提到: 】
: just behave like a browser
: 把所有参数和报头都加上,最起码,要有XMLHttpRequest
: import requests
: ...................
恭喜解决。
【 在 deare1300 的大作中提到: 】
: 有人做过学校bbs模拟登入吗,感觉有些诡异,用firefox查看登入请求的地址是http://bbs.byr.cn/user/ajax_login.json,在html查看是http://bbs.byr.cn/login,
: 直接用/login登入不成功,只是跳转,ajax_login直接失败。等大神解答!