下面这段代码的逻辑起点是页面滑到底部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=0

for j in multi_msg:

f.write(str(ttd(datetime[i]))+'\t')

f.write(main_title[i]+'\t')

i=i+1

for k in j:

f.write(k['title']+'\t')

f.write('\n')

return last_id

for i in range(1000):

rv=run(url_initial)

print rv

time.sleep(2)

url_initial=url_head+str(rv)+url_tail

# print url_initial

python朋友圈点赞统计_微信公众号所有历史文章的标题/点赞数/阅读数统计相关推荐

  1. 微信公众号所有历史文章的标题/点赞数/阅读数统计

    下面这段代码的逻辑起点是页面滑到底部ajax加载的一个链接url_initial(我是在手机微信上在浏览某个公众号的某个页面时send to Chat到自己账号,获得链接后在电脑chrome上打开; ...

  2. python爬虫实战-爬取微信公众号所有历史文章 - (00) 概述

    http://efonfighting.imwork.net 欢迎关注微信公众号"一番码客"获取免费下载服务与源码,并及时接收最新文章推送. 最近几年随着人工智能和大数据的兴起,p ...

  3. 如何在微信公众号添加“历史文章”按钮

    微信公众号作为一个面向大众的超级媒介,受众面非常之广泛,并且门槛也不高,很多业余爱好者将微信公众号作为一个自媒体来苦心经营,发布各种各样的有价值的文章.为了方便读者对往期的阅读,在公众号里面设置一个& ...

  4. C# 微信公众号导出历史文章

    老婆公司的需求,公司给了一个星期的时间.让她每天去复制粘贴.然后就有了如下代码: 先说实现吧 一.抓包 Charles  https://www.charlesproxy.com/ 打开Charles ...

  5. 如何将微信公众号上的文章下载下来?

    我最近发现微信公众号发布的的文章里边,有很多不错的图片,想要保存下来,可你习惯性的点击"图片另存为",发现有些图片的格式不是jpg格式,很难保存下来,选择截图又不是很清楚,那么该怎 ...

  6. python爬虫公众号_python爬虫_微信公众号推送信息爬取的实例

    问题描述 利用搜狗的微信搜索抓取指定公众号的最新一条推送,并保存相应的网页至本地. 注意点 搜狗微信获取的地址为临时链接,具有时效性. 公众号为动态网页(JavaScript渲染),使用request ...

  7. python微信爬取教程_python爬虫_微信公众号推送信息爬取的实例

    问题描述 利用搜狗的微信搜索抓取指定公众号的最新一条推送,并保存相应的网页至本地. 注意点 搜狗微信获取的地址为临时链接,具有时效性. 公众号为动态网页(JavaScript渲染),使用request ...

  8. python微信公众号推送_python爬虫_微信公众号推送信息爬取的实例

    问题描述 利用搜狗的微信搜索抓取指定公众号的最新一条推送,并保存相应的网页至本地. 注意点 搜狗微信获取的地址为临时链接,具有时效性. 公众号为动态网页(JavaScript渲染),使用request ...

  9. 微信分享次数统计、微信公众号分享关注统计

    作为系列文章的第五篇,本文重点探讨数据采集层中的微信分享追踪系统.微信分享,早已成为移动互联网运营的主要方向之一,以Web H5页面(下面称之为微信海报)为载体,利用微信庞大的好友关系进行传播,实现宣 ...

  10. Python爬虫系列之爬取微信公众号新闻数据

    Python爬虫系列之爬取微信公众号新闻数据 小程序爬虫接单.app爬虫接单.网页爬虫接单.接口定制.网站开发.小程序开发 > 点击这里联系我们 < 微信请扫描下方二维码 代码仅供学习交流 ...

最新文章

  1. python pexpect
  2. 下载、安装、配置 java jdk1.8
  3. localhost: Error: JAVA_HOME is not set. [Hadoop] Error: JAVA_HOME is not set
  4. 【面经】超硬核面经,已拿蚂蚁金服Offer!!
  5. ​浅谈Asp.net的sessionState
  6. MQTT 轻量版实例发布,满足更多移动互联场景
  7. python 学习笔记(十二) 文件和序列化
  8. 【ArcGIS Pro微课1000例】0006:ArcGIS Pro 2.5三维显示DEM数字高程模型
  9. Something about WinCE6.0 R3
  10. php node.js django,Vue.js和Django搭建前后端分离项目示例详解
  11. android zip4j之--解压zip文件并实时显示解压进度
  12. 用计算机进行实时自动采集,《大学计算机基础》基础部分练习题_附件1
  13. E4A直播盒子APP源码搭建教程之——后台源码篇
  14. 14届数独-真题标准数独-Day 2-20220117
  15. android 如何启动apk,Android JS启动APK
  16. [CentOS] 防止rm误操作
  17. 中文关键词提取tfidf算法改进bsaeline
  18. windows系统下python3 安装 matplotlib 出现的错误
  19. java 序列化 uid_一文看懂Java序列化之serialVersionUID
  20. 主题:QUI框架V3.3版本正式发布!

热门文章

  1. 人员能力模型及能力培养设计
  2. PLC通过PIO模式控制绝对位置型IAI电缸
  3. 基恩士plc-EtherCAT三十一轴,控制案例程序(包含plc程序/人机界面/BOM表)
  4. 网络变压器 网络变压器设计线路分类及其设计目的和侧重点
  5. 在线多功能工具箱php源码
  6. 弘辽科技:直通车测款测图
  7. 浅谈文字编码和Unicode(下)
  8. PHP架构师必备技术视频合集
  9. Egg.js -- 及案列介绍
  10. (转载)硬盘安装XP64位系统