微信公众号所有历史文章的标题/点赞数/阅读数统计
下面这段代码的逻辑起点是页面滑到底部ajax加载的一个链接url_initial
(我是在手机微信上在浏览某个公众号的某个页面时send to Chat
到自己账号,获得链接后在电脑chrome上打开; 或者可以通过关注 “My Evernote”,把链接发到Evernote的笔记里; 或者在ios平台上好像有发送到邮件的功能,也可以得到这个链接; 但是直接在浏览器中打开或者之间拷贝链接是无效的。然后在浏览器中打开链接,通过检测浏览器访问的Network
->XHR
找到需要的链接的)
通过观察发现这个加载功能的接口每次访问时返回10个条目,而访问时传到服务器的参数只有frommsgid
是改变的,而且是上一次访问的最后一个条目的id
。所以可以递归获得所有的条目。
这个加载接口的参数还有几个是和session相关的,导致只能存活20min左右,这时候需要重新通过手机微信去获得
url_initial
访问接口的频率不能太快,一次循环结束需要加一句
time.sleep(t)
其中t>0.5
时应该是安全的,否则会被临时禁止访问单单通过这个方法获得不到阅读数和评论数,http://tool.qoofan.com/weixin/query这个网站提供了API查询阅读数和评论数(但是收费),当然也可以自己尝试着去寻找漏洞自己写API
#coding=utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
from pyquery import PyQuery as pq
import requests
import codecs
import json
import time
import datetime
def ttd(timestamp):timeStr=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(timestamp))return timeStr
f=codecs.open('/home/allen/projects/sjtu_news/data_wechat.csv','w','utf-8')
url_initial='https://mp.weixin.qq.com/mp/getmasssendmsg?__biz=MjM5MDIyMDQyMA==&uin=MjMzNTA3MjQw&key=8dcebf9e179c9f3a15be50268fa7072ea98eab64f47c243ed0a75d48addee99ee76f6585fb67fd0f15a6d32009bfe38b&f=json&frommsgid=1000000038&count=10&uin=MjMzNTA3MjQw&key=8dcebf9e179c9f3a15be50268fa7072ea98eab64f47c243ed0a75d48addee99ee76f6585fb67fd0f15a6d32009bfe38b&pass_ticket=OHlwEqWexZOnMR8LoFoVhpLM7RXg28HZhMrsoP4Rrc0%25253D&wxtoken=&x5=0'
url_head=url_initial[0:url_initial.index('frommsgid=')+len('frommsgid=')]
url_tail=url_initial[url_initial.index('&count='):]
headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/600.5.17 (KHTML, like Gecko) Version/8.0.5 Safari/600.5.17"}
def run(url_initial):page=requests.get(url_initial)page.encoding='utf-8'page_json=json.loads(page.text)general_msg_list=page_json['general_msg_list']general_msg_list=json.loads(general_msg_list)lists=general_msg_list['list']# print lists[0]['app_msg_ext_info']['multi_app_msg_item_list'][0]['title']last_id=general_msg_list['list'][9]['comm_msg_info']['id']# main_title=[general_msg_list['list'][i]['app_msg_ext_info']['title'] for i in range(10)]main_title=[]for i in range(10):try:main_title.append(general_msg_list['list'][i]['app_msg_ext_info']['title'])except:main_title.append(general_msg_list['list'][i]['comm_msg_info']['content'])datetime=[general_msg_list['list'][i]['comm_msg_info']['datetime'] for i in range(10)]for i in range(10):try:multi_msg=[general_msg_list['list'][i]['app_msg_ext_info']['multi_app_msg_item_list'] for i in range(10)]except:multi_msg=[]i=0for j in multi_msg:f.write(str(ttd(datetime[i]))+'\t')f.write(main_title[i]+'\t')i=i+1for k in j:f.write(k['title']+'\t')f.write('\n')return last_idfor i in range(1000):rv=run(url_initial)print rvtime.sleep(2)url_initial=url_head+str(rv)+url_tail# print url_initial
github地址:
https://github.com/wkl7123/CrawlerForWechat
微信公众号所有历史文章的标题/点赞数/阅读数统计相关推荐
- python爬虫实战-爬取微信公众号所有历史文章 - (00) 概述
http://efonfighting.imwork.net 欢迎关注微信公众号"一番码客"获取免费下载服务与源码,并及时接收最新文章推送. 最近几年随着人工智能和大数据的兴起,p ...
- 如何在微信公众号添加“历史文章”按钮
微信公众号作为一个面向大众的超级媒介,受众面非常之广泛,并且门槛也不高,很多业余爱好者将微信公众号作为一个自媒体来苦心经营,发布各种各样的有价值的文章.为了方便读者对往期的阅读,在公众号里面设置一个& ...
- C# 微信公众号导出历史文章
老婆公司的需求,公司给了一个星期的时间.让她每天去复制粘贴.然后就有了如下代码: 先说实现吧 一.抓包 Charles https://www.charlesproxy.com/ 打开Charles ...
- 如何将微信公众号上的文章下载下来?
我最近发现微信公众号发布的的文章里边,有很多不错的图片,想要保存下来,可你习惯性的点击"图片另存为",发现有些图片的格式不是jpg格式,很难保存下来,选择截图又不是很清楚,那么该怎 ...
- 大数据信息资料采集:武志红公众号心理学历史文章采集评论搜集
大数据信息资料采集:武志红公众号心理学历史文章采集评论搜集 公众号历史文章评论内容采集,导出表格格式. 采集到的内容包含:文章标题,发布时间,所属栏目,评论ID,评论内容,该评论得到的点赞数,号主评论 ...
- 为什么我不在微信公众号上写文章
作者: 陈浩 原文: https://coolshell.cn/articles/17391.html 很多朋友问我为什么不在微信公众号上写文章.我都没有直接回答,老实说,我也是扭扭捏捏的,才去开了个 ...
- php 公众号发表文章,微信公众号如何发布文章最基本教程
微信公众号如何发布文章最基本教程 阅读量:20016 发布时间:2019-07-22 17:20 现今随着微信的占有量和功能的增多,越来越多的小伙伴都在微信公众平台注册了属于自己的微信公账号,在微信公 ...
- 微信公众号中的文章如何使用朗读大师进行朗读?
微信公众号中的文章小说新闻,都可以用朗读大师app进行朗读,下面介绍使用方法: 一,保证手机上已经安装最新的朗读大师app 没有安装的可以点击这里下载 或者最新版本 二,具体操作方法 打开微信公众号中 ...
- 《微信公众号-腾讯问卷》03-查看问卷答题结果统计
<微信公众号-腾讯问卷>03-查看问卷答题结果统计 一.点开需要调查的问卷,选择在线统计 二.点开后可以看到统计结果
最新文章
- C++:while(getline())函数
- Linux环境编程--fflush(stdout)有什么作用
- 动态DNS——本质上是IP变化,将任意变换的IP地址绑定给一个固定的二级域名。不管这个线路的IP地址怎样变化,因特网用户还是可以使用这个固定的域名 这样看的话,p2p可以用哇...
- jsp页面点击显示影藏div的一个方法
- Java JSP EL
- checkbox是否被选中
- 微信小程序-icon图标
- elastic APM 简单使用
- 百度智能云 x 掌通家园 | 用科技点亮“家园共育”
- Word里面文字怎么修改字体
- PTA 空心的数字金字塔
- 网上关于画板子用什么软件的讨论
- Flow公链 |FCL1.0正式上线
- Github Student Developer Pack申请流程【不在学校的认证方法】
- Excel操作:使用offset函数让数据透视表动态更新
- android 电话解析
- 毕设 JAVA JSP家庭理财论文
- 机原自检——第8章 连杆机构及其设计
- Smartcard中PPS数据交换分析
- 会计人员不得不看的备忘录