微信公众号采集教程、附详细分析过程

本次主要讲解微信公号下的文章数据如何采集。相信有干过采集的小伙伴对抓包工具应该都比较熟悉,这里我们主要用到fiddler、然后需要一个微信号、采集设备(微信客户端或者手机)。  使用手机的话可以打开wifi功能、现在修改网络、勾选显示高级选项。代理选择:手动。Ip地址可以打开电脑CMD 输入ipconfig查看,端口选择fiddler配置的端口,保持一致即可。

微信公众号采集教程、附详细分析过程_第1张图片

微信公众号采集教程、附详细分析过程_第2张图片

微信公众号采集教程、附详细分析过程_第3张图片

 

微信公众号采集教程、附详细分析过程_第4张图片

工具都配置成功之后我们可以通过设备随意访问一个网站看fiddler能否抓到对应的包、观察左侧的数据包流动情况

微信公众号采集教程、附详细分析过程_第5张图片

每次操作设备访问都有类似数据包产生说明配置应该是成功了的、具体包信息可以点开查看进行进一步确认。

准备工作已经完成、接下来就进入正题:

首先我们需要抓取的是微信公号的信息、这里我们以“新华社”这个公号为例、首先我们在微信客户端关注该公号。关注成功之后我们点击进入公号的历史文章页面。

微信公众号采集教程、附详细分析过程_第6张图片

将fiddler内的干扰数据包先清空、可以使用快捷键Ctrl+X进行。清空后点击进入、观察fiddler抓到的包

微信公众号采集教程、附详细分析过程_第7张图片

图上所示的包就行我们这次点击打开历史页面所对应的数据包、fiddler这边查看数据包具体信息的设置如下图

微信公众号采集教程、附详细分析过程_第8张图片

到这里我们已经成功抓到了进入历史页面的数据包、接下来就是具体的分析过程。看到fiddler右上部分的具体请求信息。

GET https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzA4NDI3NjcyNA==&scene=124&uin=MTk4MzAxNjUzMg%3D%3D&key=a5da35308119e62ef19709c5059a566f19235eca409c257399a41edadcf569d85c94123ddd774058258b84d3a8964508d4ca8c341bab91cde5633e37eb9d82f90b92a0cba16f379d889612d514f45ff2&devicetype=Windows+7&version=62060619&lang=zh_CN&a8scene=7&pass_ticket=lrzwTGsYDB%2FNH%2BCr1%2F4%2B7hCkSs%2BfT5m%2FjfwPTNqHwXa7dC3Slkk6xYSJ2SjUtnfv&winzoom=1 HTTP/1.1
Host: mp.weixin.qq.com
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
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.901.400 QQBrowser/9.0.2524.400
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8,en-us;q=0.6,en;q=0.5;q=0.4
Cookie: pac_uid=0_5c2c7c40bcce2; pgv_info=ssid=s7783577636; pgv_pvid=27778948; rewardsn=; wxtokenkey=777; wxuin=1983016532; devicetype=Windows7; version=62060619; lang=zh_CN; pass_ticket=lrzwTGsYDB/NH+Cr1/4+7hCkSs+fT5m/jfwPTNqHwXa7dC3Slkk6xYSJ2SjUtnfv; wap_sid2=CNTcybEHElxuZklYVGpLQ0N4Q3VTMDExaFYyNE5IYnAtNEUxa2k5LTBZa1pFUkM2Q0s2WDZKVWtFVlFHTDgtRDJzanI2dHc2Ymd1TzFNUVhmLTlIMmRyQzlTWVhydDhEQUFBfjDPguLhBTgNQJVO

链接内的几个重要参数。BIZ公号的唯一ID(本例中:新华社 MzA4NDI3NjcyNA==)、 UIN代表我们的微信号ID、key用于访问的验证参数(关键)。其他不怎么重要、可以在调试的时候逐个删除简化链接长度。

下面的请求头基本没有什么特殊的、访问的时候正常填写就行。不填貌似也不影响。

到了这一步我们通过不断的访问这个链接就相当于是不断地刷新新华社的历史文章页面,访问一段时间我们会发现返回的页面失效。这里主要是因为单词获取的Key的有效期只有两个小时,想要继续访问的话就需要重新抓包更新Key的值。将抓包自动化之后我们又遇到下一个问题,当我们需要抓取其他公号信息的话该怎么处理。获取数据的基本参数、BIZ+UIN+KEY。我们已经知道UIN是我们的微信号ID,这个参数是不需要考虑的、BIZ也对应唯一的公总号我们只要有足够的BIZ不断进行切换就可以了。关键在于Key.通过验证我们可以发现Key的获取只在当前公号有效。什么意思呢、我点击新华社的历史页面抓包产生的Key只能对应新华社这个BIZ进行数据抓取、当我们在Key的有效期能切换其他公号BIZ的时候我们发现实际是无法进入对应公号的历史页面的。这里就要引出一个万能Key的概念,顾名思义就是使用这个Key你只要不断的切换BIZ就可以成功进入公号的历史页面。这样我们的采集程序就非常容易时间公号的文章数据收录了。

另外Key的产生实际是与UIN有直接关系的、UIN对应的使我们的微信ID就意味着我们需要非常多的微信账号。而且每个Key现在每天可以访问公号首页的次数在1300次左右。所以想要通过万能Key的方式进行数据采集就需要投入非常大的成本来建设采集资源(手机+微信号+IP)。目前我们的策略是购买手机卡使用真机注册微信账号、并通过动态wifi挂机进行数据访问(连接同一个wifi的话很容易就被封号了)、最终通过内置脚本不断截取万能KEY的数据包信息然后回传到我们的数据中心进行保存。这一块整体建设起来非常的复杂、各种问题一不小心就被封号。试错成本还是比较高的、还要考虑养号和动态代理wifi的建设。说多了都是泪~

附免费验证码识别接口:https://blog.csdn.net/a1431819647/article/details/90476840

你可能感兴趣的:(数据采集,爬虫,微信采集,公众号采集)