分享好友 最新动态首页 最新动态分类 切换频道
Python爬虫实战之(五)| 模拟登录wechat
2024-12-26 12:40

作者:xiaoyu

微信公众号

知乎:Python数据分析师


不知何时,微信已经成为我们不可缺少的一部分了,我们的社交圈、关注的新闻或是公众号、还有个人信息或是隐私都被绑定在了一起。既然它这么重要,如果我们可以利用爬虫模拟登录,是不是就意味着我们可以获取这些信息,甚至可以根据需要来对它们进行有效的查看和管理。是的,没错,这完全可以。本篇博主将会给大家分享一下如何,并展示模拟登录后获取的。

微信模拟登录的过程比较复杂,当然不管怎么样方法都是万变不离其宗,我们还是使用抓包工具来模拟登录的过程。 好了,下面让我们一步一步的详细讲解一下如何实现的这个复杂的过程。

首先,我们在浏览器上打开微信网页版(已经在这之前打开了,然后我们会看到一个二维码的界面。

然后我们使用手机微信扫描并确认,这时候网页版的微信就登陆了。

,我们去看看都给我们抓取了什么信息包。由于过程中发出的请求有点多,这里把抓包按操作进行分解并逐一分析。

这一步骤的抓包是这样的,发现其中的两个链接是我们需要的。

于是点开详细分析一下。

第一个链接如下,是一个,可以看到uri中携带了一些参数。

 
 

经过多次抓取发现参数都是固定的,而是一串变化的数字,我们在之前模拟京东商城的文章提过,它其实是一个,如果不清楚可以回顾一下[Python爬虫实战之(四)| 模拟登录京东商城][1]

知道这些参数,模拟get发送出去就可以了。那么我们为什么要模拟这一步呢

是因为访问这个链接会有如下的响应,而其中有我们后续需要的重要信息(后面步骤会提到)。

 
  
 

微信网页提供的登录方式是扫码,我们模拟也无法避开,因此也要进行扫码验证。回到浏览器,使用开发者工具可以轻松找到二维码的链接。

 
 

我们发现最后的字符串是变化的。等等,它和一模一样的。没错,它就是,用来保证二维码的唯一性。

因此,我们将上面提取的拼接到后面就可以得到二维码图片了,然后进行扫码确认操作。

为了识别扫码是否成功,这个步骤我们需要用到上面提到的第二个链接。

 
 

这个链接也是个,同样携带了一些参数。

实际上在抓包过程发现只要我们不扫描二维码,这个链接就会一直重复发送直到二维码被扫描或者超时。

那么我们如何判断二维码是否被扫描或者已经登陆了呢

还是通过响应的数据来进行判断的。经分析发现如果二维码一直没被扫,那么响应是这样的

 
 

但是如果二维码被扫描了,响应是这样的

 
 

说明二维码被扫描成功了。 说明是登录成功了。

扫描了二维码之后,上会多出几个新的请求。

你可能发现了,上一步骤中code=200后面有个重定向的uri,这个uri就是此步骤中跳转的登录链接。

 
 

通过上一步骤识别登录成功的响应我们可以得到响应里面的所有参数。没错,这些参数正好可以用在正式登录)的请求中。于是我们利用这些参数再进行一次get请求。携带参数如下

当然,这个登录请求同样也会返回一些响应代码,响应代码如下

 
 

又是一堆参数,简直没完没了啊。别着急,我们已经接近成功了。获取这个响应我们一样需要将其中的参数全部提取出来供下一请求使用。

好了,终于到了最后一步了,就是微信的初始化和同步的请求了,初始化信息链接如下

 
 

联系链接如下:

 
 

uri中参数在上一步的响应中已获取,直接发送请求即可完成。从这两个链接的响应中,我们就可以得到一些真实有用的信息了。

还有一个同步的请求链接,所需参数可以从上面两个链接响应中提取。但是至此我们通过上面两个链接已经可以获取我们想要的信息,因此可以不必请求这个同步链接。

 
 

基本的登录过程就是这样,有点复杂,博主总结了个流程图供参考。

请求模拟使用模块完成,解析使用。这里需要注意一下,如果运行一直报的错,可以在request请求里面加上了跳过证书认证来解决。

1.初始化参数

 
 

定义一个类,初始化实例的所有请求参数,定义二维码的路径。

2.请求uuid

 
 

使用正则对相应进行提取获取,通过判断请求是否成功,响应如下

 
 

3.模拟获取二维码

 
 

使用请求二维码图片,并根据操作系统自动打开。

4.识别登录状态

 
 

响应如下

 
 

根据响应中的code代码识别登录状态。 :超时 :已扫描 :已登录

5.登录

 
 

请求跳转的登录链接,提取响应代码参数,响应如下

 
 

6.初始化获取信息

 
 

请求初始化的链接,获取初始化响应数据。

 
 

请求的链接,获取联系人、公众号、群聊以及个人信息。响应代码为格式,如下

 
 

根据响应中字段信息做信息操作,这里是获取好友列表,所以将其它字段如公众号、群聊、自己都去掉了,只保留好友信息。

7.主函数运行

 
  
 

好友列表如下

当然,好友列表只是个例子,我们也可以对其它信息进行查看和管理或者数据分析。

本篇与大家分享了网页版微信的模拟登录过程。尽管过程中请求多有点复杂,但是只要我们仔细分析还是可以一步一步实现的,希望对大家有帮助,代码已上传到github:链接

完毕。


关注微信公众号Python数据科学,获取 人工智能 学习资料。

最新文章
用Linux云服务器搭建网站,看这一篇就够了!
搭建网站,很多人会选择手动搭建,或者直接选购镜像,一键部署网站。如果需要将网站发布到网络并对用户提供访问服务,则还需进行注册域名、网站备案、域名解析。 如果有小伙伴对这类内容有兴趣,留言区举手&
高清屏幕设计_今日电脑高清屏幕设计教程
摘要:高清屏幕设计,今日电脑高清屏幕设计教程,新片场素材小编罗雯菲高清屏幕设计,今日电脑高清屏幕设计教程相关内容整理,如果您对高清屏幕设计,今日电脑高清屏幕设计教程感兴趣欢迎访问免费阅读。高清屏幕设计,今日电脑高清屏幕设计教程
蛙漫网页漫画在线登录页面免费漫画入口
姑姑:我是医生!我告诉你,这不是病,是报应的时辰到了,那些讨债鬼们,到了他们跟我算总账的时候了。每当夜深人静时,那只猫头鹰在树上哇哇叫的时候,他们就来了。他们浑身是血,哇哇号哭着,跟那些缺腿少爪的青蛙混在一起。他们的哭声与
统计学习导论 基于R应用 pdf epub mobi txt 电子书 下载 2024
  统计学习是一套以复杂数据建模和数据理解为目的的工具集,是近期才发展起来的统计学的一个新领域。本书出自统计学习领域声名显赫的几位专家,结合R语言介绍了分析大数据必不可少的工具,提供一些重要的建模和预测技术,并借助丰富的实
配置typora图片上传服务器
EasyTyporaEasyTypora是一个为Typora添加私用化图床的实用小工具,要使用本项目,你需要有自己的一台云服务器~本项目永久地址:通过这个项目你能得到什么?在2021年,配合Typora使用,即使不买图床,也能获得极致的Markdown写作体验。学会
新闻广告投放费用贵吗?这样投放更省钱!
新闻广告投放费用贵吗?这样投放更省钱!新闻广告投放费用贵吗?这样投放更省钱!标题:新闻广告投放费用贵吗?这样投放更省钱!在现代信息的时代,新闻广告作为一种有效的宣传手段,被众多企业视为提升品牌知名度、扩大市场份额的重要途径
网站发布排名优化,提升网站在搜索引擎中的可见性与权威度,网站发布排名优化方案
网站发布排名优化方案旨在提升网站在搜索引擎中的可见性与权威度。通过优化网站内容、建立高质量外部链接、提升网站速度、增强用户体验以及定期更新网站信息,可以有效提高网站在搜索引擎中的排名。还需关注竞争对手的动态,及时调整优化策
非华为电脑管家 V11.1.6.30 汉客儿版免费软件全功能绿色商业破解版注册码下载
非华为电脑管家 V11.1.6.30 汉客儿版免费软件宁缺见识多(见多识广)果实累累毋滥32. 在我们的城市里,夏季上演得太长,秋色就不免出场得晚些。但秋实永远不会被混淆的——这坚硬明朗的金属季。让我们从微凉的松风中去任取,让我们从新刈的
相关文章
推荐文章
发表评论
0评