嘉兴市网站建设_网站建设公司_Vue_seo优化
2025/12/22 17:42:37 网站建设 项目流程

1.抓包分析登录过程

这里尝试过两种方法:一是直接用新版edge的DevTools,即按F12键;另一种则是使用Wireshark软件。下面分别演示这两种方法。

方法一:使用DevTools

image
首先打开校园网的登录页面
image

接着按F12进入DevTools,选择NetWork的选项卡,默认开始记录网络活动
image

然后返回登录页面,输入账号密码点击登录

image

此时去到DevTool的窗口,查看抓取的结果。抓取结果默认是按照时间顺序排列的,如果不是可以使用WaterFall的选项卡进行升序或者降序的排列
image

在抓取的网络活动当中,发现有名为login.php的活动,猜测其为登录的关键步骤。上图是其中的某一个login.php的活动,其向目标网址发送了一个post请求,且携带的参数当中包含账号和密码。此活动应该是登录的关键步骤。

方法二:使用WireShark

image

同样打开校园网的登录页面
image

启动WireShark,选择网络接口进行抓取。一般来说,抓取的网络接口都是直接对外的总连接的接口,即波动较大的网络。如果不清楚选择哪一个,也可以打开网络中心看一看对外连接的是哪一个网络接口。

image

然后返回登录页面,输入账号密码点击登录

image

由于已知登录界面的主机的ip,所以在这里就直接输入了ip和协议进行过滤。如果不清楚,还是需要去F12的界面查看。关于过滤规则详见[1]

2.构造数据包模拟登录

从F12和WireShark的抓取结果来看,登录过程主要是本地主机向登录页面发送了一个POST的请求,并携带账号密码进行验证。构造数据包的方法也有两个,一个是curl命令行构造,一个是python脚本构造

方法一:使用curl命令

image

原本是参照某篇博文[2]进行构造命令,然后发现Windows下Powshell的命令格式有所不同,并不能使用这篇博文的方式。后续根据报错查找,另一篇博文[3]展示了改进方法。关于Powshell下curl命令的使用方法,这里有两篇博文也有很好地说明。[4][5]也可以参照该博文[6]使用curl进行登录。

方法二:使用python脚本

image

python代码如下:

import requestslogin_url = ""data = {"opr":"","userName":"","pwd":"","ipv4or6":"","rememberPwd":""
}doc = requests.post(login_url,data).text
print(doc)

以上代码参考了该博文[7]

3.总结

在抓包过程当中,DevTools的目标更明确,指定对某一个具体的页面的网络活动进行抓取,可以看到该页面的ip地址、端口等等;相比之下Wireshark的目标更宽泛,所有通过网络接口的数据均进行抓取,需要过滤才能看到目标页面的信息。不仅目标宽泛,WireShark抓取的数据也更多,过滤后,目标页面的TCP三次握手的过程也能够看到。

此次抓取的是登录过程,后续也抓取过退出过程,方法基本一致。退出过程的目标地址和登录过程的目标地址一样,只是携带的参数不同。

除此之外,也尝试过模拟登录搜狐邮箱,同样参考这篇博文[7:1],但并没有成功。分析是携带的参数不对,除了时间戳这个变量之外,每次登录的参数还受其他变量的影响。而且其使用的是加密的https的方式,还需要对WireShark进行配置才能解密数据包[8]

还尝试过抓取B站的弹幕,参考的这两篇博文[9][10],但都没有成功。原因是并没有找到储存弹幕的xml文件,也就没有找到弹幕的服务器地址和获取弹幕的请求参数。不过有大佬做了API[11],可以直接使用API获取弹幕。除了用API之外,其实也可以用BeautifulSoup等python库,因为我发现弹幕是可以直接在网页的HTML文件里面找到的。直接爬取HTML文件,根据规则过滤,拿到弹幕也是可以的。但是在F12的界面,初始的HTML文件是没有弹幕的。猜测是有脚本从服务器获取了弹幕,然后按照某种规则填充了进去。如果可以从脚本开始分析,或许能够找到存储弹幕的服务器和请求弹幕的参数。

有博文[12]指出了之前获取弹幕XML文件的两种方法依然适用:

1、https://comment.bilibili.com/视频的cid.xml
2、https://api.bilibili.com/x/v1/dm/list.so?oid=视频的cid

获取cid的方法可以去上面的博文里面查看。

虽然以上的两种方法依然适用,但是我现在,仍旧没有在F12的页面当中找到XML的传输记录


  1. Wireshark 常用过滤方法 ↩︎

  2. curl命令登录网页 ↩︎

  3. 在 Windows PowerShell 中执行命令:curl -X POST –data,报错:Invoke-WebRequest : 找不到接受实际参数“POST”的位置形式参数。的分析解决 ↩︎

  4. 在PowerShell中使用curl(Invoke-WebRequest) ↩︎

  5. Invoke-WebRequest ↩︎

  6. curl命令实现上网认证登录 ↩︎

  7. 搜狐网模拟登录案例 ↩︎ ↩︎

  8. 配置Wireshark抓取https数据包 ↩︎

  9. python爬虫----b站的弹幕获取 ↩︎

  10. Python爬虫爬取Bilibili弹幕过程解析 ↩︎

  11. bilibili_api,仅用 3 行代码获取B站(弹幕、评论、用户)数据 ↩︎

  12. 感谢大佬,B站弹幕也能抓取啦~ ↩︎

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询