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

通过搜狗搜索微信公众号然后拿到链接

通过fiddler检测手机微信拿到链接。

经过考虑,首先放弃了搜狗,因为初步看了一下搜狗的公众号搜到的那里只有前十篇文章的链接。下面说一下我这次的思路。

思路

我在尝试抓取手机微信上的公众号的历史链接时,无意中发现,使用电脑上的微信同样可以抓取到链接。不过这一点倒是没有太大的影响。因为我试了一下手机和电脑都是可以爬的,只不过电脑上要更方便一下。

首先,打开fiddler,然后在电脑端微信上找到要爬取的微信公众号,然后左键点一下就会有一个查看所有历史信息。点击查看历史信息之后我们就会在fiddler上看到一条这样的GET请求:/mp/getmasssendmsg?__biz=MzA3NDk1NjI0OQ==&uin=MjgxMTU0NDM1&key=cdce7679908e443d6f21adcc7236aea6bfd78ef06cb0f784644d5a3d1a7d1ee97b52997a3fdfca401835b9cc962bfa98e2d8f8806cba94b89ccd72c0883df2baaf712b0818727d149cefb3f920257d27&devicetype=Windows+10&version=6203005d&lang=zh_CN&ascene=7&pass_ticket=PMllYHvaLNk2DRePx1zNYuCv71ocxw7m6lOhOnaFfnnDt35P7ybHP3ESUYFoYaDQ ,在这个前面加上https://mp.weixin.qq.com后在浏览器中打开整个链接就会发现打开了这个公众号的历史文章了。

多用fiddler抓几次这个链接以及换几个公众号后就会发现,整个链接里面biz应该是微信公众号的标识符,uin应该是微信号的标识,key是腾讯的一个算法。在整个链接里面,如果是抓同一个微信公众号的话,那么只有key是有时效性的,其它的都是不变的。超过一定时间的话,再用这个key打开链接就会发现不能用了,提示请用微信打开了!这里我本来以为如果用微信自带的浏览器就不会有时效性问题了, 所以最开始我的UA设置的微信的,然后发现并没有什么用...就又换回电脑的了...这里就很坑啊,不能死用一个key的!不过还好只抓一个公众号的话,时间还是够的,就是写程序的时候就很头疼了..每次失效了都要重新弄...

通过审查这个链接里面的元素,我们不难发现,已经可以看到文章的链接了,但是问题来了,这个初始链接里依然只有10条最近的文章。这个时候,我们必须往下滑动滚动条才能把剩下的文章全部的显示出来。所以在写程序的时候就需要通过selenium+phahtomJS来链接这个界面并且滑动滚动条,知道滚动条滑到最下面为止了。这样我们再审查元素就可以看到获得了全部的文章链接。 ** 注意,文章的链接分别藏在几种标签里面,所以要把他们全部找出来,不然会遗漏的! **然后把这些链接存起来就好了。

程序

大概说一下我的程序思路:

整个流程就是通过selenium+phantomJS链接上面那个链接,通过BeautifulSoup提取页面,利用JS操作滚动条滚到底直到出现没有更多消息为止,最后找到所有链接后输出就行了(记得链接存在几种类型的tag里面,一定要找全)。由于朋友只需要这一个公众号的链接,而且因为同一个公众号的链接只有key在变,所以key就从bash获取就行了,其它的可以写在程序里。我是不是太懒了........大概思路就是这样,还有很多可以优化的地方...

python公众号文章爬虫_Python爬虫爬取微信公众号历史文章全部链接相关推荐

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

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

  2. Python爬虫实例:爬取微信公众号图片(表情包)

    背景: 在学习了简单爬虫的编写之后,我试图通过编写爬取公众号图片(表情包)来丰富我的聊天技能,亦不致于败给各种熊猫头. 在学习了requests库之后,就能够很轻松地爬取静态页面的信息,把网页对象获取 ...

  3. 爬虫python下载文献代码_Python爬虫案例:爬取微信公众号文章

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 文章转载于公众号:早起Python 作者:陈熹 大家好,今天我们来讲点Selenium自动化,你是 ...

  4. python爬虫爬取公众号_Python selenium爬取微信公众号文章代码详解

    需求: 想阅读微信公众号历史文章,但是每次找回看得地方不方便. 思路: 1.使用selenium打开微信公众号历史文章,并滚动刷新到最底部,获取到所有历史文章urls. 2.对urls进行遍历访问,并 ...

  5. Python爬虫案例:爬取微信公众号文章

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 文章转载于公众号:早起Python 作者:陈熹 大家好,今天我们来讲点Selenium自动化,你是 ...

  6. python爬取论文代码_Python selenium爬取微信公众号文章代码详解

    需求: 想阅读微信公众号历史文章,但是每次找回看得地方不方便. 思路: 1.使用selenium打开微信公众号历史文章,并滚动刷新到最底部,获取到所有历史文章urls. 2.对urls进行遍历访问,并 ...

  7. python抓取微信文件_python 如何爬取微信公众号里的图片?

    首先,你要知道.read处理出来的是什么东西 我们能读取服务器响应的内容.再次以 GitHub 时间线为例: >>> import requests >>> r = ...

  8. python爬虫能爬取微信密码吗_爬虫如何爬取微信公众号文章

    下篇文章:python爬虫如何爬取微信公众号文章(二) 下下篇连接python爬虫如何实现每天爬取微信公众号的推送文章 因为最近在法院实习,需要一些公众号的数据,然后做成网页展示出来便于查看,之前我倒 ...

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

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

  10. python爬虫如何实现每天爬取微信公众号的推送文章

    python爬虫如何实现每天爬取微信公众号的推送文章 上上篇文章爬虫如何爬取微信公众号文章 上篇文章python爬虫如何爬取微信公众号文章(二) 上面的文章分别介绍了如何批量获取公众号的历史文章url ...

最新文章

  1. ruby gem install rails 错误解决方法
  2. pycharm黄色高亮提示:Default argument value is mutable
  3. WCF揭秘学习笔记(5):WF定制活动
  4. 匹配正则_程序员入门基础:python正则表达式贪婪匹配和非贪婪匹配
  5. 贵州大学考博计算机学院官网,贵州大学研究生院
  6. 字符集和编码II: fat/msdos/vfat (文件名乱码的问题)
  7. 【有趣】Python之禅
  8. Codis安装部署全架构
  9. 常用的Regex验证方法
  10. 分布式事务处理--消息发送一致性的异常流程处理
  11. jQuery:设置body的背景
  12. Atitit.变量的定义 获取 储存 物理结构 基本类型简化 隐式转换 类型推导 与底层原理 attilaxDSL
  13. 【ccpc网络赛】Tree and Permutation【1009】【树上+组合数学】
  14. jquery 批量生成二维码并打印
  15. 实时数据缓存管理的初步设计
  16. 智慧党建系统开发建设
  17. 什么是数据可视化?企业如何进行数据可视化?
  18. 计算机游戏攻略66 关,一笔画攻略,一笔画攻略66关
  19. VB--. 和 ! ?
  20. 如何把FLAC+CUE刻录成CD

热门文章

  1. MinIO入门-02 SpringBoot 整合MinIO并实现文件上传
  2. 事务的传播行为propagation(讲得比较好)
  3. 【python】 输出换行字符 “\n“
  4. JavaScript replace之字符串的方法与indexOf的用法 详解
  5. 接口测试用例设计的一点总结
  6. 最长递增子序列问题(你真的会了吗)
  7. 高效流量变现平台——穿山甲
  8. mac浏览器没有网络,通讯软件(QQ、微信、飞书等)正常
  9. unicode计算机通用解码语言
  10. java date clone_Java Date clone()方法与示例