微信公众平台并没有对外提供 Web 端入口,只能通过手机客户端接收、查看公众号文章,Mac电脑通过Charles可以抓取手机端Https请求,具体参考下面的文章:
十分钟学会Charles抓包(iOS的http/https请求)

通过上面的图可以看到请求的参数和获取的结果,进一步分析,可以发现历史记录都在js中的msgList中返回了。

爬虫的基本原理就是模拟浏览器发送 HTTP 请求,然后从服务器得到响应结果,现在我们就用 Python 实现如果发送一个 HTTP 请求。这里我们使用 requests 库来发送请求。

代码:

import requestsdef crawl():# url中的参数需要根据自己的情况做调整url = "https://mp.weixin.qq.com/mp/profile_ext?" \"action=home&" \"__biz=MzI2NTEyMzQwMQ==&" \"scene=124&" \"devicetype=iOS11.2.5&" \"version=16060520&" \"lang=zh_CN&nettype=WIFI&a8scene=3&" \"fontScale=100&" \"pass_ticket=i5Zob72l9%2BTNg97YKb4%2BPYQ6ZcLc6yHUhsp%2FBFDJW9jEpeDC39M1acbCZlfF6zK3" \"wx_header=1"headers = """
Host:   mp.weixin.qq.com
Cookie: devicetype=iOS11.2.5; lang=zh_CN; pass_ticket=i5Zob72l9+TNg97YKb4+PYQ6ZcLc6yHUhsp/BFDJW9jEpeDC39M1acbCZlfF6zK3; version=16060520; wap_sid2=CLXC37AEElxoMFRPTkh4VUhldWJXU0YxR0M4dC1BdU9WOWdIanJiWXlsNWh3d2NlZHFjb2lhSGNwMlZXZ2k5QWRWbFhsMVhVcHFfbEtGNzdOdndrVkYxRC1JOEU2cklEQUFBfjCHpu7UBTgNQJVO; wxuin=1175970101; pgv_pvi=4165842944; pgv_pvid=4653316680; sd_cookie_crttime=1517444025808; sd_userid=80891517444025808
X-WECHAT-KEY:   8454e2d616c046dd2e80a25042d71ff65b59939c7bfa4631585773ab20ee3f9314bfd6f4dbfa146acf62ca8c4557550f1dd0dbb77d6052d9e4218daf825bf68827af322070a0242fdf56792dbb68dc2f
X-WECHAT-UIN:   MTE3NTk3MDEwMQ%3D%3D
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_5 like Mac OS X) AppleWebKit/604.5.6 (KHTML, like Gecko) Mobile/15D60 MicroMessenger/6.6.5 NetType/WIFI Language/zh_CN
Accept-Language:    zh-cn
Accept-Encoding:    br, gzip, deflate
Connection: keep-alive"""headers = headers_to_dict(headers)response = requests.get(url, headers=headers, verify=False)# print(response.text) #打印返回全部的内容if '<title>验证</title>' in response.text: #如果提示失败了,请检查请求头,看下Cookie是否失效raise Exception("获取微信公众号文章失败,可能是因为你的请求参数有误,请重新获取")data = extract_data(response.text)for item in data:print(item)def extract_data(html_content):"""从html页面中提取历史文章数据:param html_content 页面源代码:return: 历史文章列表"""import reimport htmlimport jsonrex = "msgList = '({.*?})'"pattern = re.compile(pattern=rex, flags=re.S)match = pattern.search(html_content)if match:data = match.group(1)data = html.unescape(data)data = json.loads(data)articles = data.get("list")for item in articles:print(item)return articlesdef headers_to_dict(headers):"""将字符串'''Host: mp.weixin.qq.comConnection: keep-aliveCache-Control: max-age='''转换成字典类型:param headers: str:return: dict"""headers = headers.split("\n")d_headers = dict()for h in headers:h = h.strip()if h:k, v = h.split(":", 1)d_headers[k] = v.strip()return d_headersif __name__ == '__main__':crawl()

爬取微信公众号历史记录相关推荐

  1. html如何获取请求头变量的值。_如何使用 Python 爬取微信公众号文章

    我比较喜欢看公众号,有时遇到一个感兴趣的公众号时,都会感觉相逢恨晚,想一口气看完所有历史文章.但是微信的阅读体验挺不好的,看历史文章得一页页的往后翻,下一次再看时还得重复操作,很是麻烦. 于是便想着能 ...

  2. Python3网络爬虫开发实战,使用IP代理爬取微信公众号文章

    前面讲解了代理池的维护和付费代理的相关使用方法,接下来我们进行一下实战演练,利用代理来爬取微信公众号的文章. 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知 ...

  3. python爬取正确但不出文件_使用Python爬取微信公众号文章并保存为PDF文件(解决图片不显示的问题)...

    前言 第一次写博客,主要内容是爬取微信公众号的文章,将文章以PDF格式保存在本地. 爬取微信公众号文章(使用wechatsogou) 1.安装 pip install wechatsogou --up ...

  4. 使用代理爬去微信公众号_Python3网络爬虫开发实战之使用代理爬取微信公众号文章...

    本节目标 我们的主要目标是利用代理爬取微信公众号的文章,提取正文.发表日期.公众号等内容,爬取来源是搜狗微信,其链接为 http://weixin.sogou.com/,然后把爬取结果保存到 MySQ ...

  5. 使用代理爬去微信公众号_Python3WebSpider/9.5-使用代理爬取微信公众号文章.md at master · Lainton/Python3WebSpider · GitHub...

    9.5 使用代理爬取微信公众号文章 前面讲解了代理池的维护和付费代理的相关使用方法,接下来我们进行一下实战演练,利用代理来爬取微信公众号的文章. 1. 本节目标 我们的主要目标是利用代理爬取微信公众号 ...

  6. Python 爬取微信公众号文章

    获取任何你想爬取的微信公众号文章 本程序通过输入关键字(如CSDN)就会获取到所有包含关键字(如CSDN)的公众号.在逐一获取所有公众号下所有文章.当然,这只是理想情况,腾讯的反爬不是一般的厉害,他会 ...

  7. python爬取微信公众号文章

    爬取微信公众号文章 获取微信公众号的url 获取每一篇文章的url ​ 选择一个公众号进入,选择一个目录进入后点复制链接,然后去浏览器打开.按F12打开检查的模式,在Console中输入$x('标签路 ...

  8. python爬取微信公众号文章(包含文章内容和图片)

    之前虽然做过网页爬取,但微信爬取一直没做过,因为我一直不知道网页可以进微信公众平台,只用过微信客户端进微信公众号.既然可以通过网页进微信公众平台,那么爬取微信公众号文章就流程上就没太多难度了. 自己在 ...

  9. 基于搜狗微信爬取微信公众号的文章

    1. 引入模块和函数 from requests_html import HTMLSession from urllib.parse import urlparse, parse_qs import ...

最新文章

  1. NCHW与NHWC格式
  2. 为什么在中国“公有云”落地那么难?
  3. SQL Server 审核(Audit)-- 创建数据库级别的审核
  4. 模拟时钟中断的产生及设计一个对时钟中断事件进行处理的模拟程序_操作系统基础6-支持操作系统的最基本的硬件-中断...
  5. Ace教你一步一步做Android新闻客户端(三) JSON数据解析
  6. vc的UI编程PngTextButton控件的适用情况
  7. java 中的instanceof
  8. R语言聚类算法之密度聚类(Density-based Methods)
  9. 阶段3 3.SpringMVC·_01.SpringMVC概述及入门案例_02.SpringMVC框架的介绍
  10. 物理内存是如何组织管理的
  11. 一张图片即可入侵你的电脑
  12. 【原创分享·支付宝支付】HBuilder打包APP调用支付宝客户端支付
  13. 百度站点属性怎么设置?PC移动站/独立移动站/自适应/代码适配有什么区别? 404状态码和404页面有什么区别?对SEO有什么影响百度快照投诉不了怎么办(已经解决)提交反馈的按钮变成了灰色
  14. 商城产品属性数据库设计
  15. Docker学习(五):Docker网络
  16. Blender动画笔记:Basic Jump Cycle(二)调整曲线和节奏
  17. 经颅聚焦超声信号仿真(MATLAB k-Wave仿真)
  18. 今天,咱不讲三国,就聊聊Shiro的反序列化漏洞,以及内存马技术!
  19. 快速访问GitHub
  20. ionic3隐藏子页面的tabs和配置返回按钮

热门文章

  1. 广西最新建筑八大员(资料员)模拟真题及答案解析
  2. python图片水印软件_基于Python制作的控制鼠标删除图片水印的小工具
  3. 『前端风云』Vite Webpack 恩怨史
  4. 【企业邮箱注册申请】网易企业邮箱教你如何防止开发信被反垃圾系统拦截
  5. Ajax爬取百度图片
  6. mybatis IDEA——where、set和trim用法
  7. [墨者安全]解析2019年国内DDOS第一季度报告
  8. 典型微型计算机系统的硬件,微型计算机系统原理及应用
  9. angularjs读书笔记:angularjs内置过滤器总结——摘自《Angularjs权威教程》
  10. python3爬虫源代码_爬虫代理池源代码测试-Python3WebSpider