当前位置: 首页 > wzjs >正文

dnf怎么做辅助网站长春最专业的seo公司

dnf怎么做辅助网站,长春最专业的seo公司,内蒙古建设安全监督站的网站,武进建设局网站为何老是打不开1. 抓取用到的工具 crawl4ai 0.6.3 异步抓取,代理用 squid ,数据存储用elasticsearch ai 分析层用本地ollama的deepseek-r1:8b 通过这些工具来构建自动化简报系统的完整技术方案 2. 系统架构设计 #mermaid-svg-tegILjXdmGuYNMZ8 {font-family:"tre…

1. 抓取用到的工具

crawl4ai 0.6.3 异步抓取,代理用 squid ,数据存储用elasticsearch
ai 分析层用本地ollama的deepseek-r1:8b
通过这些工具来构建自动化简报系统的完整技术方案


2. 系统架构设计

定时触发器
异步爬取模块
内容处理引擎
结构化存储
简报生成器
用户界面

3. 核心代码

import os
import json
from datetime import datetime
from elasticsearch import AsyncElasticsearch
from crawl4ai import AsyncWebCrawler
from crawl4ai.models import CrawlerResponse
import ollama# 配置环境变量
os.environ["SQUID_PROXY"] = "http://user:pass@localhost:3128"
os.environ["ES_HOSTS"] = "http://localhost:9200"class KnowledgePipeline:def __init__(self):self.es = AsyncElasticsearch(hosts=[os.getenv("ES_HOSTS")])self.crawler = AsyncWebCrawler(proxy=os.getenv("SQUID_PROXY"),render_js=True,  # 启用浏览器渲染max_concurrency=10,timeout=30)# 知识库分类配置self.categories = {"economic": {"urls": ["https://www.imf.org","https://data.worldbank.org"],"selector": "#main-content"  # 定制CSS选择器},"technology": {"urls": ["https://arxiv.org","https://ieeexplore.ieee.org"],"screenshot": True}}async def _analyze_content(self, text: str) -> dict:"""使用本地Ollama模型分析内容"""response = ollama.generate(model='deepseek-r1:8b',prompt=f"Generate a summary and 5 keywords for this text:\n{text[:3000]}",options={"temperature": 0.7,"max_tokens": 300})return {"summary": response['choices'][0]['text'],"keywords": list(set(response['text'].split()[:5]))}async def _store_to_es(self, data: dict):"""异步存储到Elasticsearch"""doc = {"title": data["title"],"content": data["content"],"summary": data["summary"],"keywords": data["keywords"],"timestamp": datetime.utcnow(),"category": data["category"],"url": data["url"]}await self.es.index(index="daily_briefing",document=doc)async def crawl_category(self, category: str, config: dict):"""执行分类爬取任务"""results = []for url in config["urls"]:response: CrawlerResponse = await self.crawler.crawl(url=url,css_selector=config.get("selector", "body"),screenshot=config.get("screenshot", False))if response.status_code == 200:analysis = await self._analyze_content(response.content)data = {"category": category,"url": url,"title": response.metadata.get("og:title", url),"content": response.content,"screenshot": response.screenshot,**analysis}await self._store_to_es(data)results.append(data)return resultsasync def generate_daily_briefing(self):"""生成每日简报"""# 从ES获取当天数据query = {"query": {"range": {"timestamp": {"gte": "now-1d/d","lt": "now/d"}}},"size": 100}resp = await self.es.search(index="daily_briefing",body=query)# 生成HTML简报template = """<html><body><h1>每日知识简报 {{ date }}</h1>{% for category in data %}<div class="category"><h2>{{ category.name }}</h2>{% for item in category.items %}<div class="item"><h3><a href="{{ item.url }}">{{ item.title }}</a></h3><p>{{ item.summary }}</p><div class="keywords">{% for kw in item.keywords %}<span class="tag">{{ kw }}</span>{% endfor %}</div>{% if item.screenshot %}<img src="data:image/png;base64,{{ item.screenshot }}" width="300">{% endif %}</div>{% endfor %}</div>{% endfor %}</body></html>"""return await self._render_template(template, {"date": datetime.now().strftime("%Y-%m-%d"),"data": self._group_by_category(resp['hits']['hits'])})async def run(self):"""执行完整流程"""# 执行爬取任务tasks = [self.crawl_category(cat, config)for cat, config in self.categories.items()]await asyncio.gather(*tasks)# 生成并保存简报html = await self.generate_daily_briefing()with open(f"briefing_{datetime.today().strftime('%Y%m%d')}.html", "w") as f:f.write(html)# 运行示例
if __name__ == "__main__":pipeline = KnowledgePipeline()asyncio.run(pipeline.run())

4. 简报详情页动态加载

# 用户点击后的实时渲染(网页2、网页7)
@app.route('/detail')
def load_detail():url = request.args.get('url')# 检查缓存cached = es.search(index="daily_news", query={"term": {"url_hash": hash(url)}})if not cached:# 动态渲染详情页result = await crawler.arun(url=url,js_code=["document.querySelector('.paywall').remove()"],  # 绕过付费墙css_selector=".main-content")es.index(...)return render_template('detail.html', content=cached['raw_html'])

5. 配套部署架构

AI分析
代理流量
抓取网页
存储数据
生成简报
Ollama 8B模型
AsyncWebCrawler
Squid Proxy
目标网站
Elasticsearch
HTML报告

6.系统优化建议

  1. 代理配置优化
# squid.conf 关键配置
acl knowledge_crawlers src 192.168.1.0/24
delay_pools 1
delay_class 1 1
delay_parameters 1 5000/5000  # 限速5MB/s
  1. Elasticsearch映射模板
{"mappings": {"properties": {"content": {"type": "text", "analyzer": "ik_max_word"},"summary": {"type": "text", "fields": {"keyword": {"type": "keyword"}}},"keywords": {"type": "keyword"},"category": {"type": "keyword"}}}
}
  1. Ollama API扩展
# 启动API服务
ollama serve --host 0.0.0.0:11434 --api-key YOUR_SECRET_KEY# 自定义模型prompt模板
curl http://localhost:11434/api/prompts -d '{"name": "briefing_summary","template": "作为知识库分析师,请用中文总结内容要点,包含:\n1. 核心观点\n2. 数据指标\n3. 行业影响\n原文:{{.Content}}"
}'
  1. 内容处理流水线
    原始HTML
    广告清除
    正文提取
    敏感词过滤
    多语言翻译
    实体识别

7. 扩展建议

  1. 添加知识图谱构建:
from kgforge import KnowledgeGraph
kg = KnowledgeGraph()
kg.build_from_articles(data)
kg.visualize()
  1. 用户定制化功能:
  • 关键词订阅
  • 兴趣领域偏好
  • 推送渠道选择(邮件/钉钉/Slack)

8. 监控方案(非必须)

# 使用Prometheus监控指标
- Elasticsearch指标:elasticsearch_exporter
- Squid流量监控:squid_exporter
- Ollama性能指标:ollama自带/metrics端点# 关键告警规则
groups:
- name: crawlerrules:- alert: CrawlerErrorRateexpr: rate(crawl_errors_total[5m]) > 0.1- alert: ESHighLatencyexpr: elasticsearch_indexing_latency_seconds > 2

9. 效果展示示例

每日简报界面

## 2025-05-17 财经要闻速递1. **央行降准0.5个百分点**  - 预计释放长期资金约1.2万亿元- 分析认为将利好中小微企业融资2. **AI芯片巨头发布新产品**  - 算力提升3倍,能效比达20TOPS/W- 概念股集体上涨(点击查看详情)[查看完整报告](http://briefing.site/detail?date=2025-05-17)

方案特点:

  1. 完全基于异步IO架构,适合高频抓取
  2. 使用本地LLM保障数据隐私
  3. 通过Squid实现统一代理管理
  4. Elasticsearch提供灵活检索能力
  5. 每日自动生成可存档的HTML报告

部署前请确保:

  1. Squid已配置正确ACL规则
  2. Elasticsearch索引模板已创建
  3. Ollama模型已下载完成(deepseek-r1:8b)
  4. 各服务网络策略已开放必要端口

**最后:正确获取数据以后就可以发布每日实时信息,也避免让大家陷入大数据的信息茧房

http://www.dtcms.com/wzjs/798363.html

相关文章:

  • 家电网站设计方案厦门黄页
  • 网站后台管理系统 源码模板网站开发
  • 宝应县城乡建设局网站wordpress插件cloud
  • 五金网站建设关键词挖掘工具
  • 赤峰建网站iis打开网站变成下载
  • 注册公司是在哪个网站站长统计幸福宝宝官方
  • 做网站会出现什么问题wordpress免费cms主题
  • 江都建设银行网站上海注册公司多少钱
  • dedecms企业网站wordpress调用图标
  • 在哪里找人做公司网站wordpress如何制作网站
  • 做问卷用哪个网站门户网站的重要性
  • 58同城天门网站建设qq网页登录
  • 专业做网站费用科技广告公司网站建设
  • 塘厦镇做网站湖北建设厅官方网站
  • 一个网站的tdk是指网站的用什么软件做网站hao
  • 站长之家seo一点询网站建设督查报告
  • 网站建设的个人总结李连杰做的功夫网站
  • 会计网站建设精品课程网站的设计与实现
  • 免费网站建站百度云郑州建设高端网站
  • asp技术网站开发案例功能多的免费网站建设
  • 怎样做汽车网站建设大连城市建设集团网站
  • 奈曼旗建设局网站网站建设与管理案例教程第三版课后答案
  • 网站开发页面适应高度厦门室内设计公司排名
  • 网站除了做流量还需要什么软件网站设计公司案例
  • 软文推广网站企业网站定制案例
  • 中国建设教育协会网站查询h5app
  • 深圳网站设计公司让您放心省心上海专业做网站公
  • 新吴区建设局网站网络推广的方式
  • 推广展示类网站三门县正规营销型网站建设地址
  • 网站头部怎么做网站开发的前后台的步骤分别为