Python 爬虫之微信公众号

article/2025/10/6 16:29:30

Python 爬虫之微信公众号

源代码放在文末。

本次爬虫需要的工具如下:

  • selenium 驱动器
  • 对应浏览器的 webdriver
  • 一个微信订阅号

在 2017 年 6 月左右,微信官方发布一篇文章 https://mp.weixin.qq.com/s/67sk-uKz9Ct4niT-f4u1KA,大致意思就是以后发布文章的时候可以插入其他公众号的文章。由此,我们即可获得采集文章的接口。

一、登陆微信公众号

在这里,我们使用 selenium + chromedriver(chrome 的 webdriver) 的方式来获取登陆的 cookie,这样,以后爬取文章时只需要载入 cookie 即可登陆。首先我们打开微信公众平台进行账号登陆:
1
我们用 insepect 检查获取登陆的账号、密码元素所在位置,来实现自动化登陆的目的 。

2

转化成代码如下:

# 用webdriver启动谷歌浏览器
print("启动浏览器,打开微信公众号登录界面")
driver = webdriver.Chrome(executable_path='/usr/bin/chromedriver') 
# 此处 webdriver 根据自己的环境更改
# 打开微信公众号登录页面
driver.get('https://mp.weixin.qq.com/')
# 等待5秒钟
time.sleep(5)
print("正在输入微信公众号登录账号和密码......")#清空账号框中的内容
driver.find_element_by_name("account").clear()
#自动填入登录用户名
driver.find_element_by_name("account").send_keys("输入你的公众号账号")
#清空密码框中的内容
driver.find_element_by_name("password").clear()
#自动填入登录密码
driver.find_element_by_name("password").send_keys("输入公众号密码")# 在自动输完密码之后需要手动点一下记住我
print("请在登录界面点击:记住账号")
time.sleep(5)
#自动点击登录按钮进行登录
driver.find_element_by_class_name("btn_login").click()
# 拿手机扫二维码!
print("请拿手机扫码二维码登录公众号")
time.sleep(20)
print("登录成功")

之后,我们需要重新登陆一次,保存 cookie,以后则载入 cookie 即可,不需要再扫码登陆。代码如下:

# 定义一个空的字典,存放cookies内容
post = {}driver.get('https://mp.weixin.qq.com/')
# 获取cookies
cookie_items = driver.get_cookies()# 获取到的cookies是列表形式,将cookies转成json形式并存入本地名为cookie的文本中
for cookie_item in cookie_items:post[cookie_item['name']] = cookie_item['value']
cookie_str = json.dumps(post)
with open('cookie.txt', 'w+', encoding='utf-8') as f:f.write(cookie_str)
print("cookies信息已保存到本地")   

之后我们开始文章的爬取。

二、爬取文章

根据官方描述,接口应该藏在新建图文素材中的插入超链接中,和之前爬取币乎一样,我们用 F12-Network-XHR 来跟踪这几个页面来获取我们需要配置的请求:
3

4

5

接下来,我们来配置请求参数:

#公众号主页
url = 'https://mp.weixin.qq.com'
#设置headers
header = {"HOST": "mp.weixin.qq.com","User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0"
}#读取上一步获取到的cookies
with open('cookie.txt', 'r'

http://chatgpt.dhexx.cn/article/KwJKwuAb.shtml

相关文章

公网访问局域网家用nas

提到外网访问不得不说说家里局域网的搭建结构了,就拿大众最常用的方式举例,网络运营商的光纤入户,通过运营商提供的光猫直接pppoe进行拨号,再连接自己的路由器,分配至各网口。 自从上次充当灵魂画手被嘲笑了以后就改用…

外网访问群晖NAS VMM搭建Openwrt的admin界面

偶然在网上看到很多的帖子使用群晖搭建openwrt搭建旁路由,心血来潮体验了一把,记录一下自己的搭建的整个过程,并最终实现外网访问Openwrt的admin界面。 本人使用的群晖nas DS220+,其他品牌未尝试。 一、前期配置 1、先在套件中心下载VMM(Virtaul Machine Manager) 2、下…

2022年10月 cpolar软件实现内网穿透连接群晖NAS

前言 1.cpolar简介 cpolar是一款拥有远程控制和内网穿透功能的软件。而且还可以监控端口的HTTP请求,利用实时的cpolar Web UI开发者工具,让您调试代码更容易。您可以监听所有隧道上的HTTP消息包,分析消息包的结构内容,找出问题点…

群晖内网穿透 实现外网快速访问 无需公网

有群晖的情况下,在内网我们可以通过ip正常访问我们的群晖/NAS;但是我们想要在外网访问的时候该怎么办,没有公网ip,扯专线太贵,自己搭建太麻烦。这无疑是个难题; 今天,小编找到了一款免费的内网穿透工具来实…

通过公网+域名访问家里的群晖服务器

公网域名访问群晖服务器 前言准备的东西如何判断你家里的宽带是公网IP通过公网IP网访群晖,端口映射申请域名和DDNS添加DDNS映射写在最后 前言 最近换了个工作,然后有代码的托管需求。想想用GitHub太卡了,国内的开源托管网站因为一些国人的素…

猫盘群晖外部网络访问的三种方法:公网IP、内网穿透、qc的实际评测

目录 具体过程概述内网穿透公网IPQuickconnect(QC)结语 具体过程 概述 最近想入手一个NAS,由于我是新手入门,就选择入手了便宜的猫盘。我的猫盘是白群晖系统所以支持QC的功能,因此对目前猫盘群晖的DiskStation Manager&#xff…

特征值和特征矩阵

写一点对矩阵特征值和特征矩阵的理解 1. A是一个矩阵,它作用在向量v上。如果A是2阶对角阵的话,它起到的作用是将向量v在横纵方向拉伸 2. 当A是一个普通2阶矩阵时,它对v的拉伸不再是横纵方向,而是任意方向的,这取决于实…

三阶矩阵求特征值的快速算法

一般的三阶矩阵求特征值其实是解析不了的,因为特征方程对应的是三次方程,对于一般的三次方程,是很难求解的。要想方程有三个整数根,并且能够不用完全暴力展开三阶行列式这样的矩阵实际是很特殊的。 1.某一行有两个0的情况是最好算…

用R求矩阵的特征值和特征向量

最近在学习多元统计分析的主成分分析时&#xff0c;发现需要经常计算矩阵的特征值和特征向量&#xff0c;自己就找了下用R来做计算的函数。 我们可以用sigen()函数来计算特征对。 #创建一个矩阵 a <- matrix(c(11,sqrt(3)/2,3/2,sqrt(3)/2,21/4,5*sqrt(3)/4,3/2,5*sqrt(3)/…

怎么算特征值和特征矩阵?

怎样更通俗的理解特征值和特征矩阵&#xff1f; 设A是一个n阶矩阵&#xff0c;若数和n维非零列向量满足&#xff0c;数称为A的特征值&#xff0c;x称为A对应于特征值的特征向量。此时叫做特征多项式&#xff0c;若特征多项式为0则称为A的特征方程&#xff08;齐次线性方程组&a…

矩阵特征值和特征向量的求取

最近项目中有一个模块需要求矩阵的最大特征值和特征值对应的特征向量&#xff0c;无奈&#xff0c;又重新将以前学习的这方面的知识重新温习了一遍&#xff0c;感觉还是当时学的不够深&#xff0c;所以谢谢感悟&#xff0c;顺便对知识点进行一个总结。 首先特征值和特征向量的…

matlab如何求矩阵特征值

根据线性代数理论&#xff0c;特征值与特征向量只存在于方阵。如下所示为一方阵A&#xff1a; 在matlab输入矩阵&#xff1a; A [1 2 4; 4 0 7 9 1 3]; 查阅matlab help可以知道&#xff0c;利用eig函数可以快速求解矩阵的特征值与特征向量。 格式&#xff1a;[V,D] eig(A) 说…

delphi 连接轻量级数据库 sqlite3

环境: windows7-64, delphi7, sqlite3 最近搞个小工具&#xff0c;要用到轻量级数据库。以前小型数据库是用mdb的&#xff0c;但连接mdb 需要odbc的支持。 对环境依赖性很大&#xff0c;于是换了一种传说中的轻量级数据库。 sqlite 很小巧&#xff0c;delphi 7 连接sqlite…

轻量级数据库sqlite,spring boot+sqlite的配置详解 (一)

spring bootsqlite的配置&#xff0c;及成功运行详解 sqlite数据库的安装与调试 首先&#xff0c;通过sqlite官方地址下载对应的安装包 https://www.sqlite.org/download.html 下载对应版本的安装包和工具包 解压后会得到这几个文件&#xff0c;将这几个文件放在同一目录下 …

腾讯云——轻量数据库服务

轻量数据库服务采用腾讯云自研的新一代云原生数据TDSQL-C&#xff0c;融合了传统数据库、云计算与新硬件技术的优势&#xff0c;100%兼容 MySQL&#xff0c;实现超百万级 QPS 的高吞吐&#xff0c;128TB 海量分布式智能存储&#xff0c;保障数据安全可靠。 定制内核&#xff1…

轻量级关系数据库SQLite的安装和SpringBoot整合

简介 SQLite是轻量级的关系型数据库&#xff0c;适用于中小型应用场景&#xff1a;如安卓、网站、终端设备。并且轻量&#xff08;服务端1M&#xff09;、方便移植&#xff08;只需要移动*.db文件到另外一台电脑&#xff09; 安装 官网链接&#xff1a;https://www.sqlite.o…

HarmonyOS之数据管理·轻量级偏好数据库的应用

一、简介 ① 基本概念 轻量级偏好数据库主要提供轻量级 Key-Value 操作&#xff0c;支持本地应用存储少量数据&#xff0c;数据存储在本地文件中&#xff0c;同时也加载在内存中的&#xff0c;所以访问速度更快&#xff0c;效率更高。轻量级偏好数据库属于非关系型数据库&…

使用 C# 开发的轻量级开源数据库 LiteDB

你好&#xff0c;这里是 Dotnet 工具箱&#xff0c;定期分享 Dotnet 有趣&#xff0c;实用的工具或组件&#xff0c;希望对您有用&#xff01; 简介 LiteDB 是一个小型、快速、轻量级的 .NET NoSQL 嵌入式数据库&#xff0c;也就是我们常说的 K/V 数据库&#xff0c;完全用 C…

开源轻量级数据库访问框架

本框架为开源框架&#xff0c;旨在简化用户的数据库操作&#xff0c;提供便捷的数据库访问服务而封装。该框架依赖于JDBC&#xff0c;并且基于原生JAVA SE框架的封装。 框架对比 对于经常进行数据库开发和JAVA EE开发的编程人员而言&#xff0c;其最先使用到的数据持久化方式…

Android学习之轻量级数据库SQLite

Android中对数据的存储有很多种方式&#xff0c;Google为Andriod中较大的数据处理提供了SQLite数据库&#xff0c;SQLite是一款轻型的数据库&#xff0c;它在管理、使用和维护上非常强大。当然最主要的特点还是它的轻量级&#xff0c;适合在移动设备上使用。 今天主要来讲下最…