浏览器开发者工具(最直接、最常用)
这是最直接、最基础的方法,适用于绝大多数公众号文章,你可以获取到浏览器当前正在渲染的HTML代码。

(图片来源网络,侵删)
操作步骤:
- 打开公众号文章:在电脑浏览器(如Chrome, Edge, Firefox)中打开你想要提取源码的公众号文章链接。
- 打开开发者工具:
- 在页面上点击鼠标 右键,选择“检查”(Inspect)。
- 或者直接按键盘快捷键
F12(Windows) 或Cmd + Option + I(Mac)。
- 切换到“Elements”(元素)面板:这是默认打开的页面,它会显示当前页面的HTML结构。
- :
- 在左侧的HTML代码区域,可以滚动查找文章标题、正文等关键词。
- 更高效的方法是使用 “选择元素”工具,点击开发者工具左上角那个带鼠标箭头的图标(或在代码区域按
Ctrl + Shift + C/Cmd + Option + C),然后用鼠标在网页文章正文上点击,开发者工具会自动定位到对应的HTML代码。
- 复制代码:
- 定位到包含文章内容的
<div>或<section>等标签。 - 右键点击该标签,选择 Copy > Copy outerHTML,这样会复制包含该标签本身及其所有子内容的完整代码。
- 如果你只想复制标签内部的代码,可以选择 Copy > Copy innerHTML。
- 定位到包含文章内容的
优点:
- 简单快捷,无需安装任何软件。
- 可以实时查看网页结构,方便调试。
缺点:
- 获取的是客户端渲染后的HTML,而不是原始的Markdown或编辑器源码。
- 文章中的图片、视频等多媒体资源可能已经被转换成了微信的CDN链接,而不是原始的链接。
- 对于通过JavaScript动态加载的内容(点击展开全文”),可能需要手动操作或刷新页面才能完全加载。
使用“另存为”功能(获取完整静态页面)
这种方法可以获取一个包含所有CSS和JavaScript的完整HTML文件。

(图片来源网络,侵删)
操作步骤:
- 在浏览器中打开公众号文章。
- 按
Ctrl + S(Windows) 或Cmd + S(Mac) 打开“另存为”对话框。 - 在“保存类型”中,选择 “网页,完整” 或 “Web Page, complete (.htm; .html)”。
- 选择保存位置,点击保存。
你将得到什么:
- 一个HTML文件(
article.html)。 - 一个与HTML文件同名的文件夹(
article_files),里面存放了该网页用到的所有图片、CSS样式表和JavaScript文件。
优点:
- 获取的是完整的静态页面,包含所有资源。
- 可以在本地离线打开,查看最终效果。
缺点:
- 同样,获取的是渲染后的代码。
- 文件结构相对复杂,包含了大量与正文无关的网页框架代码(如导航栏、页脚等)。
- 图片链接依然是微信的CDN链接。
使用编程脚本(Python + Requests/BeautifulSoup,最强大)
如果你需要批量提取或对源码进行自动化处理,使用编程脚本是最佳选择,Python 是这方面的首选语言。
核心思路:
- 使用
requests库模拟浏览器发送HTTP请求,获取文章的HTML源码。 - 使用
BeautifulSoup或lxml库解析HTML,并精确地提取出文章标题、正文、作者等信息。
示例代码:
import requests
from bs4 import BeautifulSoup
# 1. 替换为你想要抓取的公众号文章URL
url = 'https://mp.weixin.qq.com/s/your-article-url'
# 2. 发送HTTP请求
# 有时公众号会检测User-Agent,模拟一个浏览器请求可以避免被拦截
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
try:
response = requests.get(url, headers=headers)
response.raise_for_status() # 如果请求失败(如404),则抛出异常
# 3. 使用BeautifulSoup解析HTML
soup = BeautifulSoup(response.text, 'html.parser')
# 4. 提取关键信息
# 注意:微信的HTML结构可能会更新,这里的class名需要根据实际情况调整
# 你可以在浏览器开发者工具中右键标题 -> Copy -> Copy selector 来获取准确的CSS选择器
# 提取标题= soup.find('h1', id='activity-name').get_text(strip=True)
print(f"标题: {title}")
# 提取正文
# 正文通常在一个class名为 "rich_media_content" 的div中
content_div = soup.find('div', class_='rich_media_content')
if content_div:
# get_text() 可以提取所有文本内容,strip()去除首尾空白
# text_content = content_div.get_text(strip=True)
# 如果你想保留HTML标签(如<p>, <img>),可以直接使用 .prettify() 或直接输出 str(content_div)
html_content = content_div.prettify()
print("\n--- 正文HTML内容 ---")
print(html_content)
# 你也可以提取其他信息,如作者、发布时间等
# author = soup.find('span', class_='rich_media_meta rich_media_meta_nickname').a.get_text(strip=True)
except requests.exceptions.RequestException as e:
print(f"请求失败: {e}")
如何找到正确的CSS选择器?
- 用浏览器开发者工具打开文章。
- 右键点击文章标题 -> Copy -> Copy selector,你会得到类似
#activity-name的东西。 - 右键点击文章正文 -> Copy -> Copy selector,你会得到类似
div.rich_media_content的东西。 - 将这些选择器用在
soup.find()或soup.select()方法中即可。
优点:
- 自动化:可以轻松实现批量抓取。
- 精确:可以精确提取你需要的任何部分,忽略无关代码。
- 可扩展性强:可以结合其他库进行数据分析、存储等。
缺点:
- 需要一定的编程基础。
- 微信可能会更新其网页结构,导致选择器失效,需要定期维护脚本。
第三方在线工具或浏览器插件
市面上有一些在线工具或浏览器插件声称可以“一键提取”公众号文章,并生成Markdown、PDF或纯文本。
工作原理: 这些工具的底层逻辑和方法三类似,也是通过请求API或解析HTML来提取内容,然后提供一个更友好的界面。
优点:
- 操作简单,无需编程,适合普通用户。
- 通常提供格式转换功能(如转成Markdown,方便在Markdown编辑器中阅读)。
缺点:
- 安全风险:将文章链接提交给第三方服务存在隐私泄露风险,特别是对于未公开或内部的文章。
- 稳定性差:工具可能随时失效或停止服务。
- 广告/限制:很多在线工具有广告、下载次数限制或需要付费。
总结与建议
| 方法 | 难度 | 适用场景 | 推荐度 | |
|---|---|---|---|---|
| 浏览器开发者工具 | ★☆☆☆☆ | 渲染后HTML | 临时查看、分析页面结构、手动复制 | ★★★★★ |
| 另存为 | ★☆☆☆☆ | 完整静态页面 | 离线保存、备份整个网页 | ★★★★☆ |
| Python脚本 | ★★★☆☆ | 精准提取的HTML/文本 | 批量处理、自动化、数据挖掘 | ★★★★★ (技术党) |
| 第三方工具 | ★☆☆☆☆ | Markdown/PDF/文本 | 快速转换格式、不想编程的用户 | ★★☆☆☆ (需谨慎) |
给你的建议:
- 如果你只是想看一眼或复制一小段内容:直接用 方法一(浏览器开发者工具),最快最方便。
- 如果你想保存整篇文章到本地,方便随时查看:用 方法二(另存为),效果最好。
- 如果你是技术人员,需要批量处理或深度分析:强烈推荐 方法三(Python脚本),这是最灵活、最强大的方案。
- 如果你想快速得到一个干净的Markdown版本:可以尝试 方法四(第三方工具),但请注意安全风险,优先选择知名、可信的服务。
