返回信息流首先感谢@lpy0的精彩文章<发个贴支持Python版~~(网关登陆脚本)>,写这篇帖子也是来源于此。
登陆过程如何抓包
第一步
使用chrome,登陆 http://gw.bupt.edu.cn, 并输入账号密码,先不要点登陆。
第二步
右键-审查元素,出现如下图所示的小窗口,选择Network选项卡。我们就是通过这个窗口观察网页的发包过程。
第三步
登陆网关。发现Network下出现了流量内容,需要重点关注的是Method为POST的页面,网关的‘登陆’操作就是通过向网页发送POST请求完成的。
单击10.3.8.211,出现新的小窗口,在里面选择Headers选项卡,里面的内容就是HTTP Request以POST方式发送给服务器的数据。
From Data下的内容就是发送给服务器的数据,可以发现DDDDD代表账号,upass代表密码。点击view source,可以观察源代码:DDDDD=10210***&upass=password&0MKKey=
知道POST发送给服务器的data后,我们就可以编写脚本登陆网关了。
# -*- coding: utf-8 -*-
# 该脚本只能在未登录的情况下使用,未加入强制登陆功能
import urllib, urllib2, re
def main():
url = 'http://gw.bupt.edu.cn'
data = {}
data['DDDDD'] = '10211***'
data['upass'] = 'password'
data['0MKKey'] = ''
data = urllib.urlencode(data)
response = urllib2.urlopen(url, data)
print response.getcode()
if __name__ =='__main__':
main()
打印值为网页返回的状态值,'200'代表登陆成功。
PS: urllib2.urlopen(url[, data]),当附加data参数调用时,HTTP request请求方式为POST。
更好的登录脚本,请移步<发个贴支持Python版~~(网关登陆脚本)>
这是一条镜像帖。来源:北邮人论坛 / python / #2023同步于 2014/7/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
校园网网关登陆过程的抓包及简单登录脚本
konjunyiha
2014/7/26镜像同步12 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
校园网帐号信息暴漏了
【 在 konjunyiha (铁甲依然在) 的大作中提到: 】
: 首先感谢@lpy0的精彩文章<发个贴支持Python版~~(网关登陆脚本)>,写这篇帖子也是来源于此。
: 登陆过程如何抓包
: 第一步
: ...................
楼主看下面这个是不是也可以呢
<code>
import requests
###登录页的url
url = 'http://10.4.1.2/'
###有些网站反爬虫,这里用headers把程序伪装成浏览器
header = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36' }
###登录需要提交的表单
form_data = {'DDDDD':'2013210434', #填入学号
'upass':'123456', #填入校园网密码
'0MKKey':''
#'mode':'0',
#'CookieDate':'0'
}
s = requests.session()
response = s.post(url,data = form_data,headers = header)
response.encoding = 'gb2312'
#r = requests.get(url)
print response.text
</code>
你不在学校吗?需要我帮你试一下?
【 在 heamon7 的大作中提到: 】
: 好吧,不支持markdown语法,没有那对<code></code>
【 在 konjunyiha 的大作中提到: 】
: 你不在学校吗?需要我帮你试一下?
:
你看我ip啊,在学校,只是看到我刚刚也在学这个,正好刚也做了一个,就借楼发了啊
这样啊。
不好意思,关于requests这个包我不太了解。
不过值得注意的是,你可能需要在程序中加一行: # -*- coding: utf-8 -*- 因为用了中文注释
【 在 heamon7 的大作中提到: 】
: 你看我ip啊,在学校,只是看到我刚刚也在学这个,正好刚也做了一个,就借楼发了啊
【 在 konjunyiha 的大作中提到: 】
: 这样啊。
: 不好意思,关于requests这个包我不太了解。
: 不过值得注意的是,你可能需要在程序中加一行: # -*- coding: utf-8 -*- 因为用了中文注释
我试过不行啊,然后就手工转成gb2312了
好文共欣赏 http://www.zhidaow.com/post/python-requests-install-and-brief-introduction
thx,学习下。 :)
【 在 heamon7 的大作中提到: 】
: 我试过不行啊,然后就手工转成gb2312了
: 好文共欣赏 http://www.zhidaow.com/post/python-requests-install-and-brief-introduction