python的爬虫例子真是多到有毒啊。这篇文章是在意识到这个问题之前写的,不管如何还是先发上来把。
各大直播平台的弹幕爬虫的例子已经很多了,但模拟登陆和弹幕发送似乎并没有,我在这里补充一个用python模拟登陆pandaTV的教程。pandaTV的前端似乎是一股清流,给二次开发提供了很多便利,之前鼓捣弹幕爬虫的时候就发现熊猫的弹幕比较其他的好抓,程序结构也清晰,模拟登录同样如此。
首先进行抓包分析。用chrome打开pandaTV,同时按F12打开chrome dev tool,选择Network栏,勾选Preserve log,如图所示。勾选Preserve log 是为了不让抓包被刷新掉,因为登录过程中有一次刷新,很容易就把关键的包刷掉了。
执行一次登录命令,分析获取的数据包。
一般来分析这些ajax包应该选中XHR来筛选,但我在XHR中试了多次,都没找到和登录相关的项目,后来是在other中找到的,不知道是不是网址是u.开头的原因。在Other栏中,我发现了一个“https://u.panda.tv/ajax_login?”打头的数据包,这浓眉大眼的,就是你了。为什么我如此确定,因为只有这个包中包含了用户名和密码,一定是登录用的。具体如下。
两个涂黑的地方就是登录名和密码。
是不是直接将这调request提交过去就可以了呢,并不是,因为密码是加密的,大家自己试试就知道了,如果原文提交过去会返回密码错误。整个模拟登录中,除了请求ajax,另一个难点就是构建AES加密后的密码了。
我的查找方法是用sublime在下载的网页文件中用关键词全局搜索,毕竟不是搞前端的,只能笨办法找了。不过最后还是找到了,关键代码如下,可以看出密码是AES加密方式。