你是不是经常复制网页新闻,粘贴出来全是广告、导航栏、相关推荐,甚至一堆乱码?
手动删半天,结果标题没了、时间错了、图片链接断了——光是整理一篇,就浪费五六分钟。
更别提想批量抓几十篇报道做资料汇编,或者把中文外媒页面转成纯文本存档……这时候只能咬牙开会员买工具。
其实问题不在你不会操作,而在于多数网页根本不是为「复制粘贴」设计的。
它们嵌套着三五层 div、混着动态加载的 JS 脚本、广告位和推荐流穿插在正文中间——人眼能分辨,但 Ctrl+C/Ctrl+V 不会思考。
newspaper3k 不是“又一个爬虫”,它是专为「人类阅读需求」打磨的提取器:只管你要的结果,不管网站怎么写的。
能替代什么 / 能省多少钱
它不卖软件,也不收年费。但如果你现在靠「网页截图+OCR」或「付费爬虫服务」来获取干净文章内容,newspaper3k 就是那个免费替代方案。
“Newspaper delivers Instapaper style article extraction.”
Instapaper、Pocket 这类稍高级的阅读器,基础功能要每月 $3.99;而它们最核心的「自动识别正文、剔除干扰」能力,newspaper3k 全部免费提供。
你不用再为单次提取付几块钱,也不用订阅全年服务,价格直接砍到零。
它也不需要你学正则表达式、调 API 密钥、配代理池,更不强制你注册账号或绑定邮箱。
所有逻辑都封装在几行 Python 里,装完就能跑,跑完就出结果。
主要能干这几件事
- 打开一个新闻链接,它能自动跳过页眉页脚、侧边栏、评论区,只留下作者、发布时间、正文和配图链接,连 HTML 标签都给你剥干净,剩下的是可复制粘贴的纯文本。比如对 cnn.com 的某篇报道,它会准确识别
<article>区域,忽略顶部 banner 和底部「你可能还喜欢」模块。 - 你输入 sina.com.cn 或 bbc.co.uk/zhongwen,它能自动识别这是中文站点,并按中文语义切分段落、提取关键词,不是硬生生按空格或标点劈开。背后用的是基于字符频率与标点分布的语言检测模型,对简体繁体、中英混排都能稳定判断。
- 想批量抓某家媒体最近 50 篇头条?不用写规则、不用调接口,一行代码就能列出所有文章 URL,再逐个下载解析,整个过程不碰浏览器、不触发反爬提示。它会自动发现首页的
<a href="/article/xxx" rel="external nofollow" >链接,过滤掉分类页、视频页、广告跳转页等非正文地址。 - 哪怕你只有网页源码(比如从 requests.get() 拿到的 HTML 字符串),也能直接喂给它,fulltext(html) 一句就吐出干净正文,连 Article 对象都不用建。这个函数特别适合集成进已有脚本,比如你已经用 requests 抓了一堆页面,只需加一行调用,立刻获得结构化文本。
- 它还能顺手告诉你这篇文章讲了啥:自动生成摘要、提取人名地名、标出核心关键词,这些功能在免费工具里极少打包出现。摘要不是简单截前几句,而是用 TF-IDF 加权后选取最具信息量的句子重组;关键词提取会过滤掉「的」「了」「和」这类停用词,保留实质名词与专有名词。
- 对多语言混排页面也友好。比如一篇英文主文夹着两段中文引述,它不会全当英文处理,也不会漏掉中文部分的关键词。只要你在初始化时指定
language='zh',它就会启用中文分词逻辑处理整页内容。
怎么开始用
- 去官网 github.com/codelucas/newspaper 页面,点右上角绿色按钮「Code」→「Download ZIP」,解压到电脑任意文件夹。
- 双击运行安装脚本(macOS/Linux 用户只需在终端进入该文件夹,输入 pip3 install newspaper3k,回车等几秒完成)。Windows 用户若未装 pip3,可先运行 Python 官网下载的安装包勾选「Add Python to PATH」,再执行同一命令。
- 打开系统自带的「文本编辑器」,粘贴三行示例代码(文档首页就有),把网址换成你想处理的新闻链接,保存为 .py 文件,双击运行,结果立刻出现在终端窗口里。注意:第一次运行会自动下载语言模型,需联网,之后离线也可用。
项目信息
newspaper3k is a news, full-text, and article metadata extraction in Python 3. Advanced docs:
15.2k
Stars
2.1k
Forks
Python
MIT


