编写行业前沿资讯精准筛选程序,过滤冗余信息,推送岗位相关创新行业动态。
这是一个本地运行的命令行资讯过滤器,定位为个人信息筛选的实验原型,不涉及任何商业引流。
一、实际应用场景描述
每天各类平台推送大量行业新闻,但多数与自身岗位无关。求职或深耕某一领域时,手动筛选耗时且易遗漏重点。本程序允许输入岗位相关关键词,从聚合资讯中过滤出匹配度高的动态,减少信息冗余。
二、引入痛点
- 资讯源多,重复与低相关内容占比高
- 岗位专注度不同,通用推荐不精准
- 手动归类费时,缺乏可持续的轻量工具
- 在线工具可能存在数据上传与偏向性
三、核心逻辑讲解
1. 资讯采集:通过 RSS 或公开接口获取结构化条目(标题、摘要、链接)
2. 关键词匹配:将岗位关键词与每条资讯文本做包含判断
3. 评分排序:匹配关键词越多分值越高,按分排序输出
4. 去重存储:基于链接去重,追加写入本地 JSON,便于长期追踪
四、代码模块化(清晰注释)
项目结构
news_filter/
├── main.py
├── config.py
├── fetcher.py
├── matcher.py
├── storage.py
├── data/
│ └── news.json
└── README.md
config.py
# 关键词与数据源配置
KEYWORDS = ["python", "后端", "微服务", "云原生"]
RSS_SOURCES = [
"https://techcrunch.com/feed/",
]
DATA_FILE = "data/news.json"
fetcher.py
import feedparser
def fetch_rss(url):
"""解析单个RSS源,返回标准结构的条目列表"""
d = feedparser.parse(url)
items = []
for entry in d.entries:
items.append({
"title": entry.get("title", ""),
"summary": entry.get("summary", ""),
"link": entry.get("link", ""),
})
return items
matcher.py
def match_and_score(item, keywords):
"""返回匹配分数与命中关键词"""
text = (item["title"] + " " + item["summary"]).lower()
hits = [k for k in keywords if k.lower() in text]
return len(hits), hits
storage.py
import json, os
def save(items, path):
"""去重后追加保存"""
os.makedirs(os.path.dirname(path), exist_ok=True)
seen = set()
if os.path.exists(path):
with open(path, "r", encoding="utf-8") as f:
for x in json.load(f):
seen.add(x["link"])
new = [x for x in items if x["link"] and x["link"] not in seen]
if not new:
return
with open(path, "r+", encoding="utf-8") as f:
data = json.load(f)
data.extend(new)
f.seek(0)
json.dump(data, f, ensure_ascii=False, indent=2)
main.py
from fetcher import fetch_rss
from matcher import match_and_score
from storage import save
from config import KEYWORDS, RSS_SOURCES, DATA_FILE
def main():
print("=== 行业资讯精准筛选 ===")
results = []
for url in RSS_SOURCES:
for item in fetch_rss(url):
score, hits = match_and_score(item, KEYWORDS)
if score > 0:
item["score"] = score
item["hits"] = hits
results.append(item)
results.sort(key=lambda x: x["score"], reverse=True)
for r in results[:10]:
print(f"[{r['score']}] {r['title']}\n{r['link']}\n")
save(results, DATA_FILE)
if __name__ == "__main__":
main()
五、README 与使用说明
# 行业前沿资讯精准筛选程序
- 输入岗位关键词,从RSS/接口资讯中过滤冗余信息
- 按匹配度排序输出,并本地保存去重结果
- 运行:配置 config.py 后执行 python main.py
- 数据:data/news.json(本地文件,无上传)
六、核心知识点卡片
- 结构化数据解析(RSS/JSON)
- 文本匹配与简单评分规则
- 本地持久化与去重策略
- 模块化 CLI 工具设计
七、总结
本程序用较少代码把“信息过滤”变成可重复执行的本地实验:先定义岗位相关关键词,再让程序持续筛出高相关动态。价值不在复杂算法,而在建立一套可维护的个人资讯筛选流程。
利用AI解决实际问题,如果你觉得这个工具好用,欢迎关注长安牧笛!
