京公网安备 11010802034615号
经营许可证编号:京B2-20210330
作者:李晓飞
来源:Python 技术
今天我来分享一个迁移过程的幕后小故事,有料,有趣,来听听吧。
迁移公众号,是一个腾讯提供的业务,就是将原公号主体切换到另一个公号上,然后收回原公号。
其中大部分是腾讯来完成的,但还有些工作,需要自己处理,比如迁移公号的 关键字消息回复。
虽然事情不大,但很重要,做不好,读者就会找不见源码,影响大家学习效率。
但单操作起来还是比较费劲的,因为需要同时登录两个公众号,打开两个页面,来回切换着操作,很不方便,而且容易搞错。
怎么办,求神拜佛肯定是没有用的,不过有位大神还真得去拜拜 —— Python!
既然网页上能看到,那么就一定能用爬虫获取到。
咱们故伎重演,浏览器中按下 F12,进入魔法世界。
你知道百度的校招启事就藏在这里吗?
别说是我告诉你的
第一步,先清空请求记录,刷新页面,然后从第一条请求记录开始分析。
实际上就是看看请求的返回值,是否包含了,页面上列表中的数据。
幸运的是第一条就是,不过呢,数据不是直接给的,而是返回了一个大 js 脚本,当页面加载后,运算出的。
分析请求
需要勾上 Perserve Log 否则有用页面切换可能看不见请求记录
这个不是困难,将js复制出来,提取其中关键字回复的信息整理一下就可以了。
问题是,每页只显示十条,有二十多页,复杂的成本有点高呀。
得想想办法,观察了一下网址,其中有两个参数,一个是 count,另一个是 offset,很熟悉呀,不和分页参数是一回事儿吗?
分析请求
改一下试试,将 count 改为 1000,offset 改为 0,意思是从第一行开始,获取一千条,按下回车 ……
搞定!
仔细检查,确实返回了所有记录,因为总共也没有一千行。
现在可以蛮干了,因为就干一次。
复制出来,用文本编辑器(最好支持列编辑)简单处理一下,得到一个 json
json
所以方法需要灵活应用,如果能直接通过程序获取最好,如果不行,手动辅助也是可以的。
接下来,才是重头戏,如何将这些数据写入。
进入新公众号的管理后台,新建一个关键字回复,分析下请求,此时别忘记,打开开发者工具(浏览器上按 F12)。
一般提交类请求都是第一个,看一下果然是,不过肉眼看不清具体数据,怎么办?
还记得前面好多次提到的将请求复制为 curl bash 吗?对就用它,在请求上右键,选择 Copy as cURL(bash)
copy cURL
放在哪里呢?当然不是放在文本文件里了,除非你是想做一下暂存。
我们直接粘贴到 https://curl.trillworks.com/ 里,可以直接获得 转化好的 Python 代码。
然后将 Python 代码复制到文件中,执行看看效果,果然,新增了一条记录。
下面分析请求数据, 与刚才 json 文件中的做对比,一般名称很相近,所以容易找出来。
字段相同,可能是来自同一个架构设计,不太可能出自不同的团队开发,哈哈,我竟然看的这么深!
这样边找边写,等找完,代码也就完成了,像这样:
data = {
'replytype': 'smartreply',
'ruleid': '0',
'rulename': kw['rule_name'], # 规则名
'allreply': kw['reply_all'], # 全回复
'replycnt': kw['reply_cnt'], # 回复数量
'keywordcnt': len(kw['keyword_list']), # 关键字数量
'keyword0': kw['keyword_list'][0]['content'], # 关键字
'matchmode0': kw['keyword_list'][0]['match_mode'], # 匹配模式
'type0': kw['reply_list'][0]['reply_type'], # 消息类型
'fileid0': 'undefined',
'content0': kw['reply_list'][0]['content'], # 回复内容
'token': '105xxxx502',
'lang': 'zh_CN',
'f': 'json',
'ajax': '1'
}
现在将各部分的代码组合起来。
首先是解析 json 的代码:
with open("keyword.js", 'r', encoding='utf-8') as word:
d = json.load(word)
超级简单,利用 json 库将 keyword.js 文件中的内容转化为 Python List 对象
然后是数据组合,代码已经在上面展示了。
最后发送请求:
add(data) print('处理完成,休息2秒...') time.sleep(2)
好了,这样搞定了,写代码用了一个多小时,跑完不到两分钟。
美中不足的是,代码只照顾了大多数的一条消息的回复(代码中直接获取的数组中第一个元素, 如 kw['reply_list'][0]),还有几条回复是多条消息,照顾不上。
如果要照顾,可能的话 80% 以上的时间,以兼容 20% 不到的情况,不划算。
怎么办?凉拌!—— 直接手动添加。
哈哈,我很乐意做这一点手工活儿。
类似这样的方式,用在其他的地方,完全是可以的,比如之前的约马程序,训练营运营数据提取 等等,都是一样的套路:
就这么简单,Get 到了吗?
那,赶紧找个地方试试吧。
每天进步一点点,生活更美好,比心!
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
CDA数据分析师 出品 作者:李诗怡 一、数据处理概述 定义: 在正式开展数据分析之前,对原始采集的数据进行整理、修正、加工和精 ...
2026-11-06一、为什么数据要先标准化 拿到一份数据,各列的量纲往往完全不同:年龄单位是"岁"(约 20~60),收入单位是"元"(几千到几万) ...
2026-11-06一、为什么 Python 成了统计分析的主流工具 十年前做统计分析,主流选择是 SPSS、SAS、Stata。现在越来越多的研究者、分析师转向 ...
2026-11-06核心资源推荐 CDA教材(2025):https://edu.cda.cn/goods/show/3151CDA模拟题(2025):https://edu.cda.cn/goods/show/2845CD ...
2026-11-06核心资源推荐 CDA教材(2025):https://edu.cda.cn/goods/show/3151CDA模拟题(2025):https://edu.cda.cn/goods/show/2845CD ...
2026-11-06“大学生必备证书有哪些”最容易被答成一张越长越好的清单。但校招筛选的真实逻辑是:证书要对应你投的岗位任务,并且在校期间确 ...
2026-11-05大学期间能报的证书,先别急着看“含金量榜单”。更实用的第一步是问:我现在这个身份、这个学历,符合报考条件吗? 很多证书宣 ...
2026-11-05大学期间能考的证书很多,但真正需要先回答的是两个问题:当前有没有报考资格,以及这张证书对应什么岗位任务。 前者决定你能不 ...
2026-11-05先把结论说清楚:真正“只有在校大学生能考、毕业就彻底没资格”的证书数量不多,主要集中在语言类考试的部分专项、面向高校学生 ...
2026-11-05上班族问“考什么证书有用”,真正要解决的不是找一张“最值钱”的证,而是判断哪张证能嵌进你现有的岗位任务。同样一张证书,做 ...
2026-11-05职称证书不是统一的考试项目。同样“考职称”,经济、会计、统计、审计、软考走全国统一考试,工程、教师、卫生等系列多数走评审 ...
2026-11-0533岁选证书,最怕两件事:一是被“适合女生”的清单带着走,考完发现岗位用不上;二是投入大半年,报名时才发现学历、专业或工作 ...
2026-11-05“女生容易考的证书”这个问题,真正难的不是找一份名单,而是判断“容易”到底指什么。报名条件宽松、考试通过率高、拿证后能找 ...
2026-11-05“女生适合考什么证书”这类搜索,背后往往是同一个困惑:网上榜单太多,口径却说不清楚。有人把培训证书和职业资格混在一起排, ...
2026-11-05先把结论说清楚:没有一张证书对所有人都“又好考又实用”。同一个证,对在校生可能报名门槛都过不了,对有三年工作经验的人却只 ...
2026-11-05“考证书有哪些”这个问题,如果只想要一份名单,网上能搜到成百上千个。但真正有用的答案不是“有哪些”,而是“它们分别是什么 ...
2026-11-05“考什么证好一点”这句话,十个人问可能有十个意思。有人想问哪个证容易过,有人想知道哪个证找工作管用,还有人关心哪个证长期 ...
2026-11-05“考哪些证书最吃香”很难用一张榜单回答。同一张证书,在有的岗位是硬门槛,在另一些岗位只是加分项;对在校生和在职者的价值也 ...
2026-11-05家庭主妇能考的证书不少,但真正值得花时间的,不是“哪个证热门”,而是先确认你当前能不能报,再按每周可投入时间和未来出口缩 ...
2026-11-05“国家认证的职业技能证书”并不是某一本证书的正式名称,而是一句被大量使用的宣传口径。它可能指向人社部门的国家职业资格、备 ...
2026-11-05