前端增加人工互联网搜索功能

- 新增互联网搜索面板,支持手动输入关键词搜索
- 搜索结果展示为卡片形式,显示标题和链接
- 支持抓取单个结果的详细内容
- 可一键保存搜索结果到内容库
- 新增搜索 API 端点:/api/articles/internet-search
- 搜索结果详情模态框展示
- 响应式设计,搜索结果自适应布局
This commit is contained in:
2026-07-13 12:04:20 +08:00
parent 4f02a6a0ea
commit 7bb5a250c8
4 changed files with 419 additions and 1 deletions
+57 -1
View File
@@ -132,4 +132,60 @@ def fetch_article():
'data': result
})
else:
return jsonify({'error': '抓取失败'}), 500
return jsonify({'error': '抓取失败'}), 500
@bp.route('/internet-search', methods=['POST'])
def internet_search():
"""互联网搜索(浏览器方式)"""
data = request.get_json()
keyword = data.get('keyword', '')
max_results = data.get('max_results', 10)
save_to_library = data.get('save_to_library', False)
if not keyword:
return jsonify({'error': '请提供搜索关键词'}), 400
# 执行互联网搜索
results = search_service.search_internet(keyword, max_results)
return jsonify({
'success': True,
'keyword': keyword,
'results': results,
'count': len(results)
})
@bp.route('/internet-search-and-fetch', methods=['POST'])
def internet_search_and_fetch():
"""互联网搜索并抓取内容"""
data = request.get_json()
keyword = data.get('keyword', '')
max_results = data.get('max_results', 5)
category = data.get('category')
if not keyword:
return jsonify({'error': '请提供搜索关键词'}), 400
# 执行互联网搜索
results = search_service.search_internet(keyword, max_results)
# 抓取每个结果的详细内容
fetched_results = []
for r in results:
url = r.get('url')
if url:
content = search_service.fetch_url_content(url)
if content:
fetched_results.append({
'title': r['title'],
'url': url,
'source': r['source'],
'fetched_content': content
})
return jsonify({
'success': True,
'keyword': keyword,
'results': fetched_results,
'count': len(fetched_results)
})