在信息爆炸的时代,及时获取并分享高质量行业资讯对内容创作者、运营者和研究者至关重要。为实现每日内容更新的目标,利用自动化工具和Deepseek构建一个新闻摘要推送系统成为高效解决方案。本文将介绍如何通过爬虫技术、n8n自动化流程和Deepseek API,实现从新闻采集到群发的全链路自动化,突出其省时、高效的特点。
一、研究背景
无论是IT、AI领域的技术动态,还是招聘市场的趋势新闻,快速掌握热点并输出内容是提升影响力的关键。然而,手动收集和整理新闻耗时费力,且网站的反爬机制(如验证码、IP封禁)常使自动化流程受阻。按照常见的反爬检测方法之一,我们可以在浏览器控制台(F12)中输入 window.navigator.webdriver
来判断页面是否识别出自动化工具。正常的人工访问状态下,该值应返回 false
,但在使用 Selenium 等自动化工具模拟访问时,该值往往会显示为 true
。如果此时页面报出“Failed to load resource: the server responded with a status of 400”的错误,并伴随明显的页面拦截或跳转,说明目标网站识别出了当前访问为自动化爬虫行为,并已启用反爬机制阻断请求。
这种现象是初学者常见的“踩坑点”——表面看是程序或网络报错,实则是被网站识别并拒绝服务的典型反爬手段之一。多数现代网站会通过注入 JavaScript 脚本,实时检测访问者行为特征。一旦识别到这些“非人类操作”的特征,网站便会立刻触发防护策略,返回 400、403 等状态码,甚至直接阻止页面加载。在我们看来是获取研究素材的技术手段,在网站看来却是“异常访问”。为此,我们设计了一个完全自动化的系统,利用Deepseek和自动化工具克服这些挑战,实现新闻的稳定获取与推送。
二、自动化新闻推送系统的工作原理
该系统整合了爬虫技术、n8n流程自动化和Deepseek的AI能力,打造了一个无需人工干预的新闻处理管道。以下是其核心步骤:
1. 网页爬取:自动获取新闻数据
借助 Python 脚本,系统能够定时从目标网站(如 36Kr、虎嗅)抓取最新发布的文章内容,采用 requests
与 BeautifulSoup
两个库配合使用。其中,requests
负责发送网页请求,BeautifulSoup
用于解析网页结构,提取所需信息。为了避免爬虫被识别并封锁,还特别引入了 warnings
模块来忽略运行中出现的非关键警告。
考虑到目标站点存在反爬机制,脚本设置了代理访问策略。通过配置代理服务所需的 customer_id
、zone_name
和 zone_password
参数,生成代理连接,并将其绑定至 HTTP 与 HTTPS 协议,统一存放于 proxies
字典。这样,在后续使用 requests
进行请求时,所有访问将自动通过代理通道转发,能够有效绕过封锁,提高请求的成功率与数据获取的稳定性。
# 忽略SSL警告warnings.filterwarnings('ignore', message='Unverified HTTPS request')proxy_host = proxy_port = username = password = # 代理设置 - 支持多种格式proxy_url = f"{proxy_host}:{proxy_port}"proxy_auth = f"{username}:{password}"# 主要代理配置proxies = { "http": f"http://{proxy_auth}@{proxy_url}", "https": f"http://{proxy_auth}@{proxy_url}"}
2. 流程调度:n8n作为自动化中枢
n8n 是一款开源的工作流自动化工具,负责任务调度和数据流管理:
首先,我们使用 n8n 的定时器(Cron 节点)设定每日定时执行任务,如早 9 点和晚 6 点自动启动流程。
- 数据提取:抓取新闻标题和链接,结构化为JSON格式。
- 流程衔接:将数据传递给后续的摘要生成和推送环节。然后调用 GPT-4 API,为每条新闻生成 50-100 字的摘要内容。
3. AI摘要生成:Deepseek的智能处理
系统调用DeepseekAPI,为每篇新闻生成50-100字的摘要。为了确保摘要高质量,系统内置了“提示词模板”: {
"role": "system",
"content": "你是一名资深 IT 行业媒体编辑,请对以下新闻生成简洁明了的摘要,要求语言客观、中立、不重复标题,字数控制在150字以内。"
}
每条新闻由 title
和 url
组成,通过用户 prompt 传入: {
"role": "user",
"content": "标题:小鹏“瘦身”,蔚来学得会吗? 链接:``https://36kr.com/p/3305015892810496``"
}
得到的结果如下: {
"choices": [
{
"message": {
"role": "assistant",
"content": "依靠爆款策略、成本控制和管理重构,小鹏蹚出一条路,朝着盈利更进一步,但还不能“半场开香槟”。同样亟需扭亏的蔚来,试图复制小鹏“逆袭”,战略大方向没有错,但在具体战术上仍有众多待解难题。"
}
}
]
}
输入标题和链接后,Deepseek输出类似:
“小鹏通过成本优化和管理调整迈向盈利,蔚来尝试借鉴其策略,但仍面临战术执行难题。”
4. 群聊推送:无缝分发
由于 n8n 本身不直接支持将消息推送到微信,但企业微信提供了“自定义机器人”功能,用户只需配置 Webhook 地址,即可将消息自动发送到指定群聊,操作简便且安全可靠。
此外,也可借助第三方服务将信息推送至个人微信客户端。例如,通过 n8n 中的 HTTP Request 节点调用 WxPusher 接口,实现摘要内容的转发。WxPusher 是基于微信公众号的信息推送平台,用户无需安装任何软件,即可接收推送信息。该平台支持 Markdown 格式消息展示,可将标题、摘要及链接组合呈现,提升阅读体验。生成摘要后,n8n 自动发起请求,将内容发送至用户微信,实现即时、便捷的分发效果。
消息格式清晰,包括标题、摘要和链接:
**标题**: 小鹏“瘦身”,蔚来学得会吗? **摘要**: 小鹏通过成本优化和管理调整迈向盈利,蔚来尝试借鉴其策略,但仍面临战术执行难题。 [阅读全文](https://36kr.com/p/3305015892810496)
同时我们也可以使用Python进行消息推送,
代码参考如下:
import requestsimport jsondef send_news_to_group(title, summary, url): app_token = 'your_app_token' uid = 'your_uid' message = f"【{title}】\n> {summary}\n\n[阅读全文]({url})" data = { "appToken": app_token, "content": message, "contentType": 1, "uids": [uid] } response = requests.post("https://wxpusher.zjiecode.com/api/send/message", json=data) print("推送结果:", response.text)send_news_to_group("小鹏“瘦身”,蔚来学得会吗?", "小鹏通过成本优化迈向盈利,蔚来尝试借鉴其策略,但仍面临难题。", "https://36kr.com/p/3305015892810496")
通过爬虫技术、n8n自动化调度和Deepseek的智能摘要生成,我们构建了一个高效的新闻推送系统。从采集到分发全程自动化,不仅解决了反爬难题,还大幅提升了内容分发效率。这一方案为希望实现每日内容更新、增强专业影响力的用户提供了低门槛、高回报的工具组合。