以『公众号』为例,手把手教你爬取PC端数据

简介: 思路:主要是通过手机设置代理,然后在pc端开启抓包工具获取数据包,然后在编写python代码(get方式)去请求数据上次有粉丝说,那个是ios手机安卓手机现在需要root权限才可以安装证书,那么今天就不以手机为例,以电脑PC端为例,这样大家都可以上手尝试今天教大家抓到post数据包之后,怎么编写python代码去狗仔构造数据包,这里以获取『微信公众号』文章的阅读数、点赞数、在看数为例进行讲解(之所以以这个例子,主要还是有点难度的,所以给大家分享一下这个技术)

之前教过大家如何爬取手机APP数据【以某乎为实战案例,教你用Python爬取手机App数据】

思路:主要是通过手机设置代理,然后在pc端开启抓包工具获取数据包,然后在编写python代码(get方式)去请求数据

上次有粉丝说,那个是ios手机安卓手机现在需要root权限才可以安装证书,那么今天就不以手机为例,以电脑PC端为例,这样大家都可以上手尝试

今天教大家抓到post数据包之后,怎么编写python代码去狗仔构造数据包,这里以获取『微信公众号』文章的阅读数、点赞数、在看数为例进行讲解(之所以以这个例子,主要还是有点难度的,所以给大家分享一下这个技术)

1、抓包工具
同样,这里还是使用Fiddler

为什么要用抓包工具,不直接复制文章链接在浏览器里面采集?

因为在浏览器里面打开看不到阅读数、点赞数、在看数等

所以这里采用抓包的方式

1.配置Fiddler

端口设置为8888

这里设置一下过滤域名,目的是只查看需要查看的域名数据包

2.安装证书

点击第一个可以在pc机上安装证书,Fiddler就可以抓取https数据包

2、pc端代理
在设置-代理,里面设置相应的ip和端口(这里ip是本机ip127.0.0.1,和fiddler中对应的端口)

下面就可以开始抓包

3、开始抓包
在pc机上打开微信公众号文章,比如

打开之后再Fiddler可以看到数据包

比如原文中阅读数:576、点赞:20、在看:5

对应数据包返回的json数据

4、编程构造Post请求
抓到数据包之后,我们可以知道cookie、表单,请求链接等信息

开始编写代码之前,先给大家说一下,大概需要用到哪些数据(表单里面有很多参数,但是大部分是不需要的),蓝色选中的就是需要的参数,其他的可以忽略

请求头(这里替换cookie),User-Agent是模拟手机浏览器

目标url

origin_url= "http://mp.weixin.qq.com/mp/getappmsgext"

headers = {

"Cookie": yourcookie,
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 MicroMessenger/6.5.2.501 NetType/WIFI WindowsWechat QBCore/3.43.27.400 QQBrowser/9.0.2524.400"

}

这里是请求需要的其中三个参数(这个三个数通用的,可以不用改)

data = {

"is_only_read": "1",
"is_temp_url": "0",
"appmsg_type": "9", # 新参数,不加入无法获取like_num

}
剩下的其他参数(每个参数配备了相应的说明)

同一个公众号,这个不变

your__biz =""

每一篇文章mid都不同

article_mid=""

每一篇文章sn都不同

article_sn=""

不变

article_idx="1"

几十分钟有效,之后需要再次抓包更新

yourappmsg_token="1108_eNbZz5PR1hNkY3Duto6YbmYgGkvHMZaVbiPUGLsS53iccow77rh73HxzFPHQby1-Lw8AqItVlg_d96MU"

构造请求

​​​​​​​
origin_url = "https://mp.weixin.qq.com/mp/getappmsgext?"
appmsgext_url = origin_url + "__biz={}&mid={}&sn={}&idx={}&appmsg_token={}&x5=1".format(your__biz, article_mid, article_sn, article_idx, yourappmsg_token)
content = requests.post(appmsgext_url, headers=headers, data=data).json()

print(content)
print(content"appmsgstat", content"appmsgstat",content"appmsgstat")

可以看到已经成功发送post成功,并且提取出对应的阅读数、点赞数、在看数

5、扩展
同一个公众号,如果需要获取其他文章的这些数据,只需要改变mid和sn就可以了,不同文章的链接如下图所示

6、小结
本文讲解了如何爬取PC端数据(以微信公众号为例),过程很详细,满满干货,希望可以起到抛砖引玉效果,让大家学到更多技术!

推荐阅读

手把手教你实现『B站直播』弹幕实时分析

以『B站直播』为例,实现数据『实时』可视化分析

Flask结合ECharts实现在线可视化效果,超级详细!

python实时采集直播弹幕数据进行可视化展示

公众号后台添加微信,可领取代码

​​​​​​​

相关文章
|
存储 Android开发 Python
使用 MitmProxy 自动抓取微信公众号阅读数、点赞和再看数据(一)
某天接到一个需要抓取某某微信公众的所有历史文章的阅读数、点赞和再看数据的需求。 为了解放双手,就用 Python 代码撸一个,选择 MitmProxy 代理作为抓包工具,因为它可以使用 Python 代码监听抓取到的 url,用于自动获取 cookie 等场景。
2820 0
使用 MitmProxy 自动抓取微信公众号阅读数、点赞和再看数据(一)
|
11月前
|
存储 数据采集 自然语言处理
Python爬取公众号文章并实现关键词分析
Python爬取公众号文章并实现关键词分析
|
6月前
|
SQL 前端开发 测试技术
如何写好一篇技术方案(精简版)
一份好的技术方案是推动项目落地、对齐认知、降低协作成本的关键。应包含变更记录、背景、功能模块、流程图、接口设计等十大结构,遵循图文结合、聚焦可执行、简洁明了的原则,800–1500字为宜,重在指导行动而非堆砌文字。
|
10月前
|
Web App开发 Rust 前端开发
WebAssembly 与 Java 结合实操指南 基于最新工具链的跨语言开发实践教程
WebAssembly与Java集成实操指南 本文基于2024年最新工具链(GraalVM、TeaVM、Wasmtime),提供两种Java与Wasm结合的实践方案: Java调用Wasm模块:通过Rust编写高性能加密算法并编译为Wasm,在Java中利用Wasmtime运行时进行调用,实现6.7倍的性能提升。重点演示了Wasm内存模型操作和指针传递机制。 Java编译为Wasm:使用TeaVM将Java科学计算代码编译为Wasm模块,供浏览器前端直接调用。包含完整的Maven配置和前端调用示例,特别适合
786 5
|
JavaScript Java CDN
vue3完整教程从入门到精通(新人必学1,vue3快速上手)
本文提供了Vue 3从入门到精通的完整教程,涵盖了创建Vue应用、通过CDN使用Vue、定义网站以及使用ES模块构建版本的步骤和示例代码。
11087 1
vue3完整教程从入门到精通(新人必学1,vue3快速上手)
|
Kubernetes NoSQL Redis
教你在 Kubernetes 上部署 Redis 高可用集群?
教你在 Kubernetes 上部署 Redis 高可用集群?
1020 0
|
JavaScript 前端开发
PPTist:在线演示文稿的开源解决方案
PPTist:在线演示文稿的开源解决方案
1231 6
抓包工具 Fiddler 抓取 exe 包
抓包工具 Fiddler 抓取 exe 包
2438 0
|
缓存 搜索推荐 数据库连接
FastAPI 的插件化也太牛了吧!轻松打造可扩展 Web 应用,让你的开发如虎添翼,快来感受这神奇魅力!
【8月更文挑战第31天】在互联网迅速发展的今天,Web应用需求日益多样化。FastAPI作为一种高效灵活的Python Web框架,通过插件化设计帮助开发者轻松构建可扩展应用。插件化让开发者能够根据需求选择合适模块,如用户认证、支付处理等,而无需大幅改动核心代码。这种方式不仅提高了开发效率,还增强了应用的稳定性和适应性,使FastAPI成为未来Web开发的理想平台。
675 0