爬虫的步骤:
(1)申请自己的公众号
(2)使用fiddler抓包工具
(3)pycharm
(一)申请公众号
官网:微信公众平台
填入相关信息创建微信公众号
进入公众号界面如下:

找到新的创作-图文信息


在弹出的界面中查找公众号文章-输入公众号名称-确定


点击确认之后,进入公众号,可以查看相应文章。

右键单击空白处,选择检查-网络,显示界面如下:

在请求标头中获取cookieuser-agent

同时还需要获取Fakeidtoken
fakeid:是公众号独一无二的一个id
token:是自己的公众号独有的id

以上已经获取到了电脑端需要的4个重要参数:
Cookies、user-Agent 、fakeid 、token
爬取点赞数和阅读数:
在之前查找公众号的文章时,可以在相应信息中查找到文章的相关信息:

观察这些信息,可以在信息中找到公众号的文章标题,文章对应的链接

将文章链接复制到浏览器中,可以看到对应的公众号文章:

得到文章的链接之后,需要从链接中找到pass_ticket 、 appmsg_tojen 、 cookies 、user-Agent 、key。
通过fiddler抓包,得到这些参数
打开fiddler,选择过滤器

设置以下参数,点击action,设定只抓取关于微信公众相关的包

之后进入自己的微信客户端-选择公众号-查看历史信息-点开公众号的文章。
这时可以看到fiddler中出现一系列的包,依次点击抓取的包,在inspectors中查看以下信息,获取 pc微信端cookie 和user-agent

切换点击界面,可以看到如下信息:

可以从上面的界面中找到需要保存的参数:

更换公众号爬虫只需要更换PC微信的Key、 pass_ticket、 appmsg_tojen以及公众号的Fakeid。对某一公众号爬虫时,KEY大约20-30分钟会失效。可以再次打开fiddler重新进行获取。

贴一下我的代码:

# -*- coding: utf-8 -*-
import requests
import time
import json
from openpyxl import Workbook
import random# 目标url
url = "https://mp.weixin.qq.com/cgi-bin/appmsg"Cookie = "自己的cookies"
# 使用Cookie,跳过登陆操作
headers = {"Cookie": Cookie,"User-Agent": "自己的user-agent",
}"""
需要提交的data
以下个别字段是否一定需要还未验证。
注意修改yourtoken,number
number表示从第number页开始爬取,为5的倍数,从0开始。如0、5、10……
token可以使用Chrome自带的工具进行获取
fakeid是公众号独一无二的一个id,等同于后面的__biz
"""
token = "自己公众号的token"#公众号
fakeid = "Mzk0NzI5NDc5MA%3D%3D"#公众号对应的id
type = '9'
#爬虫网址中的参数
data1 = {"token": token,"lang": "zh_CN","f": "json","ajax": "1","action": "list_ex","begin": "0","count": "4","query": "","fakeid": fakeid,"type": type,
}# 获取阅读数和点赞数
def getMoreInfo(link):# 获得mid,_biz,idx,sn 这几个在link中的信息mid = link.split("&")[1].split("=")[1]idx = link.split("&")[2].split("=")[1]sn = link.split("&")[3].split("=")[1]_biz = link.split("&")[0].split("_biz=")[1]# fillder 中取得一些不变得信息# req_id = "0614ymV0y86FlTVXB02AXd8p"pass_ticket = "fiddler中获取"#从fiddler中获取appmsg_token = "fiddler中获取"#从fiddler中获取# 目标urlurl = "http://mp.weixin.qq.com/mp/getappmsgext"#获取详情页的网址# 添加Cookie避免登陆操作,这里的"User-Agent"最好为手机浏览器的标识phoneCookie = "在fiddler中获取"headers = {"Cookie": phoneCookie,"User-Agent": "fiddler中获取"}# 添加data,`req_id`、`pass_ticket`分别对应文章的信息,从fiddler复制即可。data = {"is_only_read": "1","is_temp_url": "0","appmsg_type": "9",'reward_uin_count': '0'}"""添加请求参数__biz对应公众号的信息,唯一mid、sn、idx分别对应每篇文章的url的信息,需要从url中进行提取key、appmsg_token从fiddler上复制即可pass_ticket对应的文章的信息,也可以直接从fiddler复制"""params = {"__biz": _biz,"mid": mid,"sn": sn,"idx": idx,"key": "fiddler中获取","pass_ticket": pass_ticket,"appmsg_token": appmsg_token,"uin": "MTUyNzExNzYy","wxtoken": "777",}# 使用post方法进行提交requests.packages.urllib3.disable_warnings()content = requests.post(url, headers=headers, data=data, params=params).json()# 提取其中的阅读数和点赞数# print(content["appmsgstat"]["read_num"], content["appmsgstat"]["like_num"])try:readNum = content["appmsgstat"]["read_num"]print("阅读数:"+str(readNum))except:readNum = 0try:likeNum = content["appmsgstat"]["like_num"]print("喜爱数:"+str(likeNum))except:likeNum = 0try:old_like_num = content["appmsgstat"]["old_like_num"]print("在读数:"+str(old_like_num))except:old_like_num = 0# 歇3s,防止被封time.sleep(3)return readNum, likeNum,old_like_num# 获取详细信息
def getAllInfo(url):# 拿一页,存一页messageAllInfo = []# begin 从0开始for i in range(33):#设置爬虫页码begin = i * 4data1["begin"] = beginrequests.packages.urllib3.disable_warnings()content_json = requests.get(url, headers=headers, params=data1, verify=False).json()time.sleep(random.randint(1, 10))if "app_msg_list" in content_json:for item in content_json["app_msg_list"]:spider_url = item['link']readNum, likeNum,old_like_num = getMoreInfo(spider_url)info = {"title": item['title'],"url": item['link'],"readNum": readNum,"likeNum": likeNum,"old_like_num":old_like_num}messageAllInfo.append(info)return messageAllInfodef main():f = Workbook()  # 创建一个workbook 设置编码sheet = f.active#创建sheet表单# 写入表头sheet.cell(row=1, column=1).value = 'title'  # 第一行第一列sheet.cell(row=1, column=2).value = 'url'sheet.cell(row=1, column=3).value = 'readNum(阅读数)'sheet.cell(row=1, column=4).value = 'likeNum(喜爱数)'sheet.cell(row=1, column=5).value = 'old_like_num(在看数)'messageAllInfo = getAllInfo(url)#获取信息print(messageAllInfo)print(len(messageAllInfo))#输出列表长度# 写内容for i in range(1, len(messageAllInfo)+1):sheet.cell(row=i + 1, column=1).value = messageAllInfo[i - 1]['title']sheet.cell(row=i + 1, column=2).value = messageAllInfo[i - 1]['url']sheet.cell(row=i + 1, column=3).value = messageAllInfo[i - 1]['readNum']sheet.cell(row=i + 1, column=4).value = messageAllInfo[i - 1]['likeNum']sheet.cell(row=i + 1, column=5).value = messageAllInfo[i - 1]['old_like_num']f.save(u'公众号.xls')  # 保存文件
if __name__ == '__main__':main()

python爬虫爬取微信公众号的阅读数、喜爱数、文章标题和链接等信息相关推荐

  1. python爬虫爬取微信公众号小程序信息

    python爬虫爬取微信公众号小程序信息 爬取内容 某汽车维修信息提供的维修店名称,地点以及电话(手机)号码 爬取步骤 啥也别管,先抓包看看,在这里,博主使用的抓包软件是charles 抓包:将网络传 ...

  2. python爬虫——爬取微信公众号的文章及图片

    参考 爬取公众号所有文章 想要爬取微信公众号的所有文章,微信只有文章是有地址的,如何找到这个公众号的所有文章呢? 找到该公众号的链接 打开公众号平台,找到创作图文消息 这样就找到了微信号 打开检查模式 ...

  3. [python爬虫]爬取微信公众号

    爬取微信公众号 微信公众号接口 使用的包 需要的三个文件(Account.cookie.list) 代码如下 显示结果 总 结 微信公众号接口 目前是个功能需要一个微信号并且允许网页微信登陆,我们就是 ...

  4. python学习:爬虫爬取微信公众号数据

    spider 一.获取链接 二.爬取文章标题.文章链接.文章正文.时间 三.爬取阅读量与点赞数 参考: https://blog.csdn.net/qq_45722494/article/detail ...

  5. Python2.7爬虫——爬取微信公众号文章

    今天跟着这篇博客抓取微信公众号文章练习了一下爬虫,运行成功.想和大家分享一下过程中出现的问题和解决方法. 运行环境 windows 7 + Pycharm2018 + Python 2.7 目录 目录 ...

  6. python爬虫抓取微信公众号文章(含全文图以及点赞数、在看数、阅读数)

    因工作需要写了一个微信公众号文章的爬虫程序,贴一下分享给需要的朋友. 首先是抓取文章的url链接,在反复研究之后找到的一个最简单的方法,不需要抓包工具.首先需要自己注册一个微信公众号,有微信即可绑定注 ...

  7. python爬虫爬取微信网页_python下爬虫爬取微信公众号文章给网站的相关操作与问题...

    一.出发点 在dodo团队知乎号开刊文章中已介绍过本团队平常的实际工作,我们是一个从事游戏与金融结合的项目开发与运营团队.技术上主要是从事游戏分期.玩后付支付插件.游戏充值app等前后端开发,主要使用 ...

  8. python爬虫爬取微信_Python爬虫爬取微信公众号历史文章全部链接

    因为朋友问我能不能找一下一个微信公众号的全部历史文章的链接,我就帮他弄了一下,通过百度和谷歌发现现在大家爬微信公众号的思路基本都是下面两种: 通过搜狗搜索微信公众号然后拿到链接 通过fiddler检测 ...

  9. python公众号文章爬虫_Python爬虫爬取微信公众号历史文章全部链接

    因为朋友问我能不能找一下一个微信公众号的全部历史文章的链接,我就帮他弄了一下,通过百度和谷歌发现现在大家爬微信公众号的思路基本都是下面两种: 通过搜狗搜索微信公众号然后拿到链接 通过fiddler检测 ...

  10. python爬取公众号历史文章_Python爬虫爬取微信公众号历史文章全部链接

    因为朋友问我能不能找一下一个微信公众号的全部历史文章的链接,我就帮他弄了一下,通过百度和谷歌发现现在大家爬微信公众号的思路基本都是下面两种: 通过搜狗搜索微信公众号然后拿到链接 通过fiddler检测 ...

最新文章

  1. iOS KVO 的实现原理
  2. shell中数值比较 字符串比较 文件判断 whle和for和until循环
  3. Window上,启动Tomcat服务之后,关闭启动窗口,服务器也随之关闭
  4. python把数据写入excel_Python向excel中写入数据的方法
  5. nsfocus 十周年了 时间过得好快啊... 恭喜下...
  6. 升级总代分享思路_桃生企业至尊七郎瓷砖新展厅全新升级惊艳亮相
  7. Unexpected exception 'Cannot run program '的解决
  8. DotNetBar的初步使用
  9. 2010年 我的齐鲁软件大赛作品
  10. C rgb565转rgb888
  11. 用U盘安装ubuntu系统
  12. 服务器 字体文件太大,网页的字体文件过大
  13. sharepoint 回收站 java_Sharepoint 2013 回收站知识整理
  14. QAP,社会网络分析假设检验之一
  15. C++字符串赋值、拼接、查找、替换、存取、插入删除和子串
  16. java中 SSL认证和keystore使用
  17. RecyclerView的使用(二)——拖曳移动和滑动删除
  18. 两件事:李一男、CS游戏
  19. NC17389-凤 凰(并查集)
  20. 微软面试100题(含全部答案)

热门文章

  1. 五子棋软件测试自学,初学者如何从零开始自学五子棋
  2. 计算机术语cal含义,计算机应用术语小释
  3. 消除IBM P750小机上的黄色报警灯
  4. C语言初学必练100道
  5. 3ds max制作马克杯
  6. 使用机器学习预测股价
  7. 在阿里,一个完整的机器学习项目是这样运作的。
  8. nmap扫描主机存活情况
  9. 前端基础之HTML5音视频标签(video/audio)讲解
  10. 迪士尼机器人芭蕾舞_这些年迪士尼造的酷萌机器人!