如何上微博(微博论坛怎么进去)

今天给大家带来的是新浪微博PC端的模拟登录。

工具

这次使用的工具是Charles和chrome浏览器。看过我之前文章的同学应该知道我用的Mac电脑。提琴手不能用。以前用虚拟机很麻烦。我很久以前安装了查尔斯,但我不知道如何使用它。后来发现了一篇更详细的文章,忘记记录了。发现Charles非常好用,它有一个非常好的功能,就是可以打开多个会话进行抓取和比较。这个功能很好,经常调试爬虫的人都会知道。我们捕获一个网站的登录过程,然后,在模拟的过程中,我们可以在另一个会话中捕获我们自己模拟的登录过程,然后比较我们请求发送的数据和浏览器请求发送的数据是否一致。在调试之前,我总是通过打印的方式来检查,一方面不方便,另一方面也不完整。所以强烈推荐你用查尔斯,网上有很多破解方法。

查理

打开它,查尔斯。您需要打开SSL代理爬行,这样您就可以获得HTTPS请求。毕竟,许多网站已经使用HTTPS请求。

HTTPS捕获设置

填写*表示所有URL都匹配。HTTP请求端口是端口80,HTTPS请求端口是端口443。设置好之后,就可以开始爬行了。

抓取请求

打开chrome浏览器,最好清除缓存,然后使用隐身模式访问https://weibo.com/.

打开隐形窗。

无痕模式

在网页上执行一次登录操作。

微博登录流程

抓到登录流程后,就可以开始分析了。记得清理缓存。几次抓取都不一样,后来换了Safari浏览器(因为很少用)。其实这一步我用什么浏览器都无所谓。chrome浏览器主要用于调试JS。

过程分析

查找请求

一般登录网址里应该有login,而且是post请求。当然也不排除其他方式。

https://login.sina.com.cn/sso/login.php?客户端= ssologin . js(1 . 4 . 19版)

登录请求url

找到登录请求后,这里是主表单信息,还有很多参数。我们需要先大致区分哪些可能是固定参数,哪些是变化参数。

参数确定

一眼就能看出那些参数是固定的。其实这些参数都是可以溯源的,只是没必要。当这样的参数很多的时候,就太麻烦了。可以多次抓取登录过程,对比请求参数,确定一些固定的或者不重要的参数。那么我们需要通过其他方式获得的参数是pcid、door、su、servertime、nonce、rsakv、sp、prelt。servertime在这里是有争议的。一般看到这种时间或者151开头的10或13位数,都是时间戳。可以用time.time()获取,但这是servertime,我们要注意。

参量分析

让我们来看看如何获得这些参数。

su我们要先说一下这个su,因为其他的参数都和它有关系。这个su在js调试的时候可以看到它的算法,但是其实我们可以根据它的特点先猜测一下,有可能是base64加密的。为什么?Base64是一种基于64个可打印字符来表示二进制数据的方法,哪64个字符呢? A-Z、a-z、0-9和\” \”、\”/\”,很多时候base64加密的字符串尾部为 1个或2个 \”=\”,因为它是把3个字节的二进制拼接,如果最后剩下一个,那么尾部就会添加2个=,如果剩下两个,尾部就添加1个=,如果刚合适那当然就没有=了

推荐一个工具网站https://tool.lu/encdec/.

image.png

尝试使用编解码器,最后发现是账号,采用了url编码和base64编码,所以我们的su最后是

image.png

pcid、servertime、nonce、rsakv它的值时gz-48fb749c5c715e0d5caeed045716492e153c,我们先在Charles中搜索一下

pcid我们一般都是搜索response的数据,主要是看一下是不是在某一个请求的返回值里面,这里非常棒,我们找到了pcid和值出现的地方https://login.sina.com.cn/sso/prelogin.php?entry=weibo

(0)
上一篇 2022年4月24日
下一篇 2022年4月24日

相关推荐