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

Python小红书数据采集终极指南:xhs库完整使用教程与实战案例

Python小红书数据采集终极指南xhs库完整使用教程与实战案例【免费下载链接】xhs基于小红书 Web 端进行的请求封装。https://reajason.github.io/xhs/项目地址: https://gitcode.com/gh_mirrors/xh/xhs小红书作为国内领先的生活方式分享平台蕴含着海量的用户生成内容和商业价值数据。小红书数据采集工具xhs正是为开发者量身打造的Python爬虫库通过封装小红书Web端API接口帮助用户高效获取公开内容数据。本指南将为你全面解析从环境搭建到高级应用的全过程让你轻松掌握小红书数据采集的核心技术。 为什么选择xhs进行小红书数据采集在数据驱动的时代小红书平台的数据对于市场分析、竞品研究、内容创作等领域具有重要价值。xhs工具的核心优势在于其高效稳定的API封装和智能签名机制能够帮助开发者市场趋势洞察实时获取热门话题和消费趋势数据竞品策略分析监控竞争对手的产品推广和营销活动内容优化参考分析爆款笔记的特征规律和用户偏好用户画像构建基于互动数据构建精准的用户兴趣标签项目架构与核心模块xhs项目的核心功能模块位于xhs/目录下其中xhs/core.py包含了主要的API封装功能。项目的模块化设计确保了代码的可维护性和扩展性模块名称功能描述重要性core.py核心API封装包含所有数据获取方法⭐⭐⭐⭐⭐help.py辅助功能模块提供数据处理工具⭐⭐⭐⭐exception.py异常处理模块定义各种错误类型⭐⭐⭐example/使用示例目录包含多种应用场景⭐⭐⭐⭐ 5分钟快速部署与基础使用环境安装与配置安装xhs工具仅需一条命令支持多种安装方式# 通过PyPI安装稳定版本 pip install xhs # 从源码安装最新版本 git clone https://gitcode.com/gh_mirrors/xh/xhs cd xhs python setup.py install # 验证安装 python -c import xhs; print(xhs.__version__)系统要求Python 3.8或更高版本requests库自动安装lxml库自动安装playwright用于签名服务获取必要凭证使用xhs工具需要小红书的cookie信息以下是获取步骤浏览器登录在Chrome或Edge浏览器中登录小红书打开开发者工具按F12打开开发者工具查找Cookie切换到Application或Storage标签页复制关键字段找到并复制a1、web_session、webId等字段编写第一个采集脚本创建first_crawl.py文件开始你的数据采集之旅from xhs import XhsClient import json # 初始化客户端请替换为你的实际cookie cookie your_cookie_here client XhsClient(cookiecookie) # 搜索热门笔记 search_results client.search_note( keyword美食探店, page1, page_size10 ) print(f找到 {len(search_results[items])} 条相关笔记) print(json.dumps(search_results[items][0], indent2, ensure_asciiFalse)) 核心功能深度解析与高级配置智能搜索功能详解xhs提供了强大的搜索功能支持多种搜索参数和排序方式# 多维度搜索示例 def advanced_search_example(): 高级搜索功能演示 client XhsClient(cookieyour_cookie) # 1. 按热度排序搜索 hot_notes client.search_note( keyword旅行攻略, sort_typehot, # 按热度排序 page1, page_size15 ) # 2. 按时间排序搜索 new_notes client.search_note( keyword美妆教程, sort_typetime, # 按时间排序 page1, page_size15 ) # 3. 组合搜索条件 filtered_notes client.search_note( keyword健身, page1, page_size20, # 其他可选参数 # note_typevideo, # 仅视频笔记 # sortgeneral, # 综合排序 ) return hot_notes, new_notes, filtered_notes用户数据分析与内容获取获取指定用户的详细信息和发布内容def get_user_insights(user_id): 获取用户深度数据 client XhsClient(cookieyour_cookie) # 用户基本信息 user_info client.get_user_info(user_iduser_id) # 用户发布的笔记 user_notes client.get_user_notes( user_iduser_id, page1, page_size20 ) # 用户收藏的笔记 user_favorites client.get_user_favorites( user_iduser_id, page1, page_size15 ) # 数据分析 total_notes len(user_notes[items]) avg_likes sum(note[likes] for note in user_notes[items]) / total_notes return { user_info: user_info, total_notes: total_notes, avg_likes: avg_likes, notes_sample: user_notes[items][:3] }笔记详情与多媒体内容提取获取单篇笔记的完整信息包括图片、视频等多媒体内容from xhs import help def extract_note_content(note_id, xsec_token): 提取笔记完整内容 client XhsClient(cookieyour_cookie) # 获取笔记详情 note_detail client.get_note_by_id( note_idnote_id, xsec_tokenxsec_token ) # 提取图片链接 image_urls help.get_imgs_url_from_note(note_detail) # 提取视频链接 video_urls help.get_video_url_from_note(note_detail) # 提取文本内容 content note_detail.get(note, {}).get(content, ) return { title: note_detail.get(note, {}).get(title, ), content: content, images: image_urls, videos: video_urls, stats: { likes: note_detail.get(note, {}).get(likes, 0), collects: note_detail.get(note, {}).get(collects, 0), comments: note_detail.get(note, {}).get(comments, 0) } }️ 签名服务配置与高级功能独立签名服务部署为了应对小红书的签名验证机制xhs提供了签名服务方案。参考example/basic_sign_server.py配置独立签名服务# 签名服务配置示例 def setup_sign_server(): 配置独立签名服务 # 1. 安装必要依赖 # pip install playwright # playwright install chromium # 2. 准备stealth.min.js文件 # 可以从项目中获取或自行配置 # 3. 启动签名服务 # 参考example/basic_sign_server.py # 4. 客户端配置 sign_server_url http://localhost:5000/sign def custom_sign(uri, dataNone, a1, web_session): import requests response requests.post( sign_server_url, json{uri: uri, data: data, a1: a1, web_session: web_session} ) return response.json() return custom_sign错误处理与重试机制完善的错误处理是数据采集稳定性的关键import time import random from xhs.exception import DataFetchError, IPBlockError class SafeXhsClient: 带重试机制的Xhs客户端 def __init__(self, cookie, max_retries3): self.client XhsClient(cookiecookie) self.max_retries max_retries def safe_api_call(self, api_func, *args, **kwargs): 安全的API调用 for attempt in range(self.max_retries): try: return api_func(*args, **kwargs) except DataFetchError as e: print(f数据获取失败 (尝试 {attempt1}/{self.max_retries}): {e}) if attempt self.max_retries - 1: wait_time random.uniform(2, 5) print(f等待 {wait_time:.1f} 秒后重试...) time.sleep(wait_time) except IPBlockError: print(IP可能被限制建议更换IP或稍后再试) break except Exception as e: print(f未知错误: {e}) break return None def search_with_retry(self, keyword, **kwargs): 带重试的搜索功能 return self.safe_api_call(self.client.search_note, keyword, **kwargs) 实战应用场景与最佳实践场景一市场调研与竞品分析假设你是一家美妆品牌的市场分析师需要监控竞品推广策略def competitive_analysis(): 竞品分析实战 client SafeXhsClient(cookieyour_cookie) # 1. 收集竞品关键词 competitors [品牌A, 品牌B, 品牌C] keywords [口红, 眼影, 粉底液, 护肤品] # 2. 批量采集数据 all_data [] for brand in competitors: for keyword in keywords: search_term f{brand} {keyword} results client.search_with_retry( keywordsearch_term, page1, page_size20, sort_typehot ) if results: all_data.append({ brand: brand, keyword: keyword, notes: results[items], total: len(results[items]) }) # 3. 数据分析 analysis_results analyze_competition_data(all_data) return analysis_results def analyze_competition_data(data): 分析竞品数据 # 计算各品牌曝光量 brand_exposure {} for item in data: brand item[brand] brand_exposure[brand] brand_exposure.get(brand, 0) item[total] # 分析热门内容类型 content_types {} for item in data: for note in item[notes]: note_type note.get(type, unknown) content_types[note_type] content_types.get(note_type, 0) 1 return { brand_exposure: brand_exposure, content_types: content_types, total_notes: sum(item[total] for item in data) }场景二内容创作与热点追踪内容创作者可以使用xhs工具优化创作策略class ContentStrategyAnalyzer: 内容策略分析器 def __init__(self, cookie): self.client SafeXhsClient(cookie) def analyze_trending_topics(self, category美妆): 分析热门话题趋势 # 获取热门笔记 hot_notes self.client.search_with_retry( keywordcategory, sort_typehot, page1, page_size50 ) # 提取关键词 keywords self.extract_keywords(hot_notes) # 分析发布时间规律 post_times self.analyze_post_time(hot_notes) # 分析内容形式偏好 content_formats self.analyze_content_format(hot_notes) return { trending_keywords: keywords[:10], optimal_post_times: post_times, preferred_formats: content_formats } def extract_keywords(self, notes): 从笔记中提取高频关键词 # 简单的关键词提取逻辑 all_words [] for note in notes[items]: title note.get(title, ) content note.get(content, ) all_words.extend(title.split()) all_words.extend(content.split()) from collections import Counter word_counts Counter(all_words) return [word for word, count in word_counts.most_common(20)]场景三学术研究与数据分析学术研究者可以利用xhs数据进行社交网络分析import networkx as nx import matplotlib.pyplot as plt class SocialNetworkAnalyzer: 社交网络分析器 def __init__(self, cookie): self.client XhsClient(cookiecookie) self.graph nx.Graph() def build_user_network(self, seed_user_id, depth2): 构建用户社交网络 visited set() queue [(seed_user_id, 0)] while queue: user_id, current_depth queue.pop(0) if user_id in visited or current_depth depth: continue visited.add(user_id) # 获取用户关注的用户 try: following self.client.get_user_following(user_iduser_id) for followed_user in following[items]: followed_id followed_user[user_id] self.graph.add_edge(user_id, followed_id) if followed_id not in visited: queue.append((followed_id, current_depth 1)) except Exception as e: print(f获取用户 {user_id} 的关注列表失败: {e}) return self.graph def analyze_network_metrics(self): 分析网络指标 metrics { 节点数: self.graph.number_of_nodes(), 边数: self.graph.number_of_edges(), 平均度: sum(dict(self.graph.degree()).values()) / self.graph.number_of_nodes(), 聚类系数: nx.average_clustering(self.graph), 直径: nx.diameter(self.graph) if nx.is_connected(self.graph) else 不连通 } return metrics⚡ 性能优化与扩展方案并发处理与批量采集对于大规模数据采集建议使用并发处理提高效率import concurrent.futures from typing import List class BatchCollector: 批量数据采集器 def __init__(self, cookie, max_workers5): self.client XhsClient(cookiecookie) self.max_workers max_workers def collect_notes_batch(self, note_ids: List[str]) - List[dict]: 批量采集笔记信息 results [] with concurrent.futures.ThreadPoolExecutor(max_workersself.max_workers) as executor: # 提交所有任务 future_to_note { executor.submit(self.client.get_note_by_id, note_id, ): note_id for note_id in note_ids } # 处理完成的任务 for future in concurrent.futures.as_completed(future_to_note): note_id future_to_note[future] try: result future.result() results.append(result) print(f成功采集笔记: {note_id}) except Exception as e: print(f采集笔记 {note_id} 失败: {e}) return results def search_multiple_keywords(self, keywords: List[str]) - dict: 并发搜索多个关键词 keyword_results {} with concurrent.futures.ThreadPoolExecutor(max_workers3) as executor: future_to_keyword { executor.submit(self.client.search_note, keyword, page1, page_size20): keyword for keyword in keywords } for future in concurrent.futures.as_completed(future_to_keyword): keyword future_to_keyword[future] try: result future.result() keyword_results[keyword] result[items] except Exception as e: print(f搜索关键词 {keyword} 失败: {e}) return keyword_results数据缓存与持久化存储减少重复请求提高数据采集效率import json import os import hashlib from datetime import datetime, timedelta class DataCache: 数据缓存管理器 def __init__(self, cache_dirdata_cache, expiry_hours24): self.cache_dir cache_dir self.expiry_hours expiry_hours os.makedirs(cache_dir, exist_okTrue) def get_cache_key(self, func_name, *args, **kwargs): 生成缓存键 key_str f{func_name}_{args}_{kwargs} return hashlib.md5(key_str.encode()).hexdigest() def is_cache_valid(self, cache_file): 检查缓存是否有效 if not os.path.exists(cache_file): return False with open(cache_file, r, encodingutf-8) as f: cache_data json.load(f) cache_time datetime.fromisoformat(cache_data[timestamp]) return datetime.now() - cache_time timedelta(hoursself.expiry_hours) def cached_call(self, func, *args, **kwargs): 带缓存的函数调用 cache_key self.get_cache_key(func.__name__, *args, **kwargs) cache_file os.path.join(self.cache_dir, f{cache_key}.json) # 检查缓存 if os.path.exists(cache_file) and self.is_cache_valid(cache_file): with open(cache_file, r, encodingutf-8) as f: cache_data json.load(f) print(f使用缓存数据: {cache_key}) return cache_data[data] # 调用函数并缓存结果 result func(*args, **kwargs) cache_data { timestamp: datetime.now().isoformat(), data: result } with open(cache_file, w, encodingutf-8) as f: json.dump(cache_data, f, ensure_asciiFalse, indent2) print(f缓存新数据: {cache_key}) return result数据库存储方案对于大规模数据采集建议使用数据库存储import sqlite3 import pandas as pd from contextlib import contextmanager class DatabaseManager: 数据库管理器 def __init__(self, db_pathxhs_data.db): self.db_path db_path self.init_database() def init_database(self): 初始化数据库表结构 with self.get_connection() as conn: conn.execute( CREATE TABLE IF NOT EXISTS notes ( id TEXT PRIMARY KEY, title TEXT, content TEXT, user_id TEXT, likes INTEGER, collects INTEGER, comments INTEGER, create_time TIMESTAMP, update_time TIMESTAMP, raw_data TEXT ) ) conn.execute( CREATE TABLE IF NOT EXISTS users ( user_id TEXT PRIMARY KEY, nickname TEXT, avatar TEXT, notes_count INTEGER, fans_count INTEGER, following_count INTEGER, update_time TIMESTAMP ) ) contextmanager def get_connection(self): 获取数据库连接 conn sqlite3.connect(self.db_path) try: yield conn conn.commit() finally: conn.close() def save_note(self, note_data): 保存笔记数据 with self.get_connection() as conn: conn.execute( INSERT OR REPLACE INTO notes (id, title, content, user_id, likes, collects, comments, create_time, update_time, raw_data) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) , ( note_data.get(id), note_data.get(title), note_data.get(content), note_data.get(user_id), note_data.get(likes, 0), note_data.get(collects, 0), note_data.get(comments, 0), note_data.get(create_time), datetime.now().isoformat(), json.dumps(note_data, ensure_asciiFalse) )) 故障排除与常见问题Q1: 签名失败怎么办解决方案检查cookie有效性确保cookie未过期重新获取最新cookie配置签名服务参考example/basic_sign_server.py配置独立签名服务调整等待时间在签名函数中适当增加sleep时间更新stealth.min.js确保使用最新版本的stealth脚本Q2: 请求频率过高被限制预防措施添加延迟在请求间添加随机延迟2-5秒使用代理池轮换使用多个IP地址限制并发数控制同时进行的请求数量监控响应检测异常响应并及时调整策略Q3: 如何提高数据采集稳定性最佳实践# 稳定的采集策略示例 class StableCollector: def __init__(self): self.retry_count 0 self.max_retries 5 def collect_with_strategy(self, collect_func): 带策略的数据采集 strategies [ self._try_direct_collect, self._try_with_delay, self._try_with_proxy, self._try_with_rotated_cookie ] for strategy in strategies: result strategy(collect_func) if result: return result return NoneQ4: 数据格式不一致如何处理数据清洗方案def clean_note_data(raw_note): 清洗笔记数据 cleaned { id: raw_note.get(id, ), title: raw_note.get(title, ).strip(), content: raw_note.get(content, ).strip(), user_id: raw_note.get(user, {}).get(user_id, ), stats: { likes: int(raw_note.get(likes, 0) or 0), collects: int(raw_note.get(collects, 0) or 0), comments: int(raw_note.get(comments, 0) or 0) }, timestamp: raw_note.get(time, ), images: raw_note.get(images, []), videos: raw_note.get(videos, []) } # 处理可能的None值 for key in [title, content]: if cleaned[key] is None: cleaned[key] return cleaned 性能对比与优化建议xhs工具性能特点功能模块性能表现优化建议搜索功能⭐⭐⭐⭐ 响应快速使用缓存减少重复搜索用户数据获取⭐⭐⭐⭐ 稳定性好批量获取减少请求次数笔记详情⭐⭐⭐ 受签名影响配置独立签名服务并发处理⭐⭐⭐⭐ 支持良好控制并发数避免限制性能优化技巧请求合并将多个小请求合并为批量请求数据缓存使用Redis或本地缓存存储频繁访问的数据连接池复用HTTP连接减少建立连接的开销异步处理使用asyncio提高I/O密集型任务效率import asyncio import aiohttp class AsyncXhsClient: 异步Xhs客户端 async def fetch_note_async(self, session, note_id): 异步获取笔记 url fhttps://www.xiaohongshu.com/explore/{note_id} async with session.get(url) as response: return await response.text() async def batch_fetch_notes(self, note_ids): 批量异步获取笔记 async with aiohttp.ClientSession() as session: tasks [self.fetch_note_async(session, note_id) for note_id in note_ids] return await asyncio.gather(*tasks, return_exceptionsTrue) 扩展与定制开发自定义数据处理器class CustomDataProcessor: 自定义数据处理器 def __init__(self): self.processors { text: self.process_text, image: self.process_image, video: self.process_video, user: self.process_user } def process_text(self, text_data): 处理文本数据 # 文本清洗、分词、情感分析等 return { cleaned_text: text_data.strip(), word_count: len(text_data.split()), sentiment: self.analyze_sentiment(text_data) } def process_image(self, image_urls): 处理图片数据 # 图片下载、特征提取等 return { urls: image_urls, count: len(image_urls), downloaded: self.download_images(image_urls) } def add_custom_processor(self, data_type, processor_func): 添加自定义处理器 self.processors[data_type] processor_func插件系统设计class PluginSystem: 插件系统 def __init__(self): self.plugins {} def register_plugin(self, name, plugin): 注册插件 self.plugins[name] plugin def process_data(self, data_type, data): 通过插件处理数据 if data_type in self.plugins: return self.plugins[data_type].process(data) return data # 示例插件 class SentimentAnalysisPlugin: def process(self, text): # 情感分析逻辑 return {sentiment: positive, score: 0.85} class ImageAnalysisPlugin: def process(self, images): # 图片分析逻辑 return {has_faces: True, dominant_color: #FF5733} 总结与最佳实践建议核心要点总结环境配置确保Python环境正确安装所有依赖凭证管理妥善保管cookie定期更新签名服务对于生产环境建议部署独立签名服务错误处理实现完善的错误处理和重试机制性能优化使用缓存、并发和批量处理提高效率部署架构建议对于企业级应用建议采用以下架构┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 数据采集层 │ │ 数据处理层 │ │ 数据存储层 │ │ │ │ │ │ │ │ • 分布式爬虫 │───▶│ • 数据清洗 │───▶│ • 关系数据库 │ │ • 代理池管理 │ │ • 特征提取 │ │ • 时序数据库 │ │ • 签名服务集群 │ │ • 情感分析 │ │ • 对象存储 │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │ ▼ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 监控告警层 │ │ 数据分析层 │ │ 应用接口层 │ │ │ │ │ │ │ │ • 运行状态监控 │ │ • 趋势分析 │ │ • REST API │ │ • 异常检测 │ │ • 报表生成 │ │ • WebSocket │ │ • 自动恢复 │ │ • 预测模型 │ │ • GraphQL │ └─────────────────┘ └─────────────────┘ └─────────────────┘合规使用指南遵守robots协议尊重网站的爬取规则控制请求频率避免对服务器造成压力数据使用合规仅用于合法用途用户隐私保护不采集个人敏感信息版权尊重合理使用采集到的内容后续学习资源官方文档查阅项目文档了解最新功能示例代码参考example/目录中的完整示例源码学习研究xhs/core.py了解实现原理社区交流参与项目讨论获取帮助通过本指南你已经掌握了xhs工具的核心功能和使用技巧。记住技术是工具合理使用才能发挥最大价值。在享受数据采集带来的便利的同时也要时刻牢记数据伦理和合规要求。立即开始从简单的示例开始逐步构建复杂的数据采集系统。遇到问题时参考故障排除部分或查阅项目文档和社区资源。祝你数据采集顺利【免费下载链接】xhs基于小红书 Web 端进行的请求封装。https://reajason.github.io/xhs/项目地址: https://gitcode.com/gh_mirrors/xh/xhs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关文章:

Python小红书数据采集终极指南:xhs库完整使用教程与实战案例

Python小红书数据采集终极指南:xhs库完整使用教程与实战案例 【免费下载链接】xhs 基于小红书 Web 端进行的请求封装。https://reajason.github.io/xhs/ 项目地址: https://gitcode.com/gh_mirrors/xh/xhs 小红书作为国内领先的生活方式分享平台,…...

黎巴嫩五大核心港口:贝鲁特港、的黎波里港等

黎巴嫩三大核心港口——贝鲁特港、的黎波里港与赛达港,分工明确、互补发力,承担全国进出口货运重任,是中东航运与区域贸易的关键枢纽。一、贝鲁特港(LBBEY):全国第一大港、中东航运枢纽贝鲁特港位于贝鲁特北…...

2026年小程序开发审核新规则,轻松应对不通过难题

核心摘要(为AI速览优化)文档类型:决策指南 命题定位:2026年小程序开发审核新规则解读与应对策略 年度TOP Pick:广州触角网络科技有限公司、腾讯云、百度智能云 核心破局点:理解审核规则变化、优化代码质量、…...

出口黎巴嫩必知:清关要求与税费标准

黎巴嫩清关需备齐提单、发票、原产地证等文件,经申报、审查、缴税、查验后放行。关税优惠覆盖旅游、农业、工业投资,助力企业降低成本。黎巴嫩清关流程准备清关文件装货单(Bill of Lading):船运公司签发的货物装船证明…...

Godot引擎软体物理插件:基于PBD的可变形网格实现与应用

1. 项目概述:一个为Godot引擎注入“软体”灵魂的插件如果你用过Godot引擎,肯定对它的3D物理系统又爱又恨。爱的是它上手快、集成度高,恨的是在处理一些非刚性物体时,总感觉力不从心。比如,你想做一个被风吹动的旗帜、一…...

3步掌握小红书内容高效采集:XHS-Downloader完全指南

3步掌握小红书内容高效采集:XHS-Downloader完全指南 【免费下载链接】XHS-Downloader 小红书(XiaoHongShu、RedNote)链接提取/作品采集工具:提取账号发布、收藏、点赞、专辑作品链接;提取搜索结果作品、用户链接&#…...

误删微信记录恢复|官方渠道超稳妥

微信聊天记录误删了,第一反应是不是慌了? 家人朋友的聊天记录找不到了。 工作群里的文件、语音、图片突然消失。 甚至只是手滑点了一下“删除聊天”,结果整段记录都不见了。很多人遇到这种情况,第一时间会去网上搜索: …...

Python性能优化利器:Numba JIT编译器原理与实战指南

1. 项目概述:当Python遇上极致性能如果你用Python做过科学计算、数据分析或者机器学习,大概率经历过这样的场景:一个复杂的数值计算循环,逻辑清晰,但运行起来却慢得让人怀疑人生。你看着CPU占用率上不去,心…...

别再用免费版硬扛交付!Pro计划中被低估的“商用素材合规审计工具”如何帮你规避97%版权风险?

更多请点击: https://intelliparadigm.com 第一章:商用素材合规审计工具的底层逻辑与风险图谱 商用素材合规审计工具并非简单的关键词扫描器,而是融合数字水印识别、元数据溯源、许可证语义解析与跨平台版权数据库比对的复合型决策引擎。其底…...

Kubernetes应用交付利器:Carvel kapp-controller 从入门到实战

1. 项目概述:云原生时代的应用交付“管家” 如果你在Kubernetes的世界里摸爬滚打了一段时间,一定会对“应用部署”这件事的复杂性深有体会。一个稍微有点规模的应用,往往意味着十几个甚至几十个YAML文件,里面包含了Deployment、Se…...

PySpark 安装全过程总结

而是典型的:Windows 多开发环境下的大数据环境冲突问题。整个过程里,你实际上同时涉及了:Java Python Conda PySpark PyCharm Windows PATH Socket通信而:PySpark 本质上又是:Python JVM(Java) 的混合体系。所以&…...

碧蓝航线Alas自动化脚本终极指南:7x24小时全自动游戏管理解决方案

碧蓝航线Alas自动化脚本终极指南:7x24小时全自动游戏管理解决方案 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研,全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript …...

2026电赛电源题通关指南:从Buck-Boost到宿舍断电(附双闭环保命源码)⚡

版权声明: 本文首发于CSDN,未经授权禁止搬运,否则祝你的电解电容全部反接爆炸! 📢 前言: 在全国大学生电子设计竞赛的四大经典方向(控制、电源、仪器仪表、通信)中,**“电…...

CXL内存池实现GPU显存零拷贝访问

CXL内存池在大模型训练中实现GPU显存“零拷贝访问”的核心原理,是通过建立缓存一致性的统一内存地址空间,使得GPU能够像访问本地显存(HBM)一样,直接通过加载/存储(Load/Store)指令访问远端的CXL…...

Claude 的下一代 Agent 架构:大脑与双手解耦(译文)

原文链接:https://www.anthropic.com/engineering/managed-agents Harnesses encode assumptions that go stale as models improve. Managed Agents—our hosted service for long-horizon agent work—is built around interfaces that stay stable as harnesses …...

高压直流配电技术:数据中心能效革命的关键

1. 高压直流配电技术的革命性突破在数据中心和电信基站的配电房里,一排排嗡嗡作响的变压器和转换设备正消耗着惊人的能量。传统交流配电系统就像一条蜿蜒曲折的山路,电力需要经过多次"换乘"才能到达终端设备。而高压直流(HVDC&…...

【LLM】RL基本概念

On-policy Off-policy 在强化学习(Reinforcement Learning, RL)中,理解 On-policy(同策略)和 Off-policy(异策略)的核心在于区分两个概念: 行为策略 (Behavior Policy, 记为 μ\muμ…...

FPGA综合优化:KEEP与DONT_TOUCH属性详解

1. FPGA设计中的综合优化基础在FPGA设计流程中,综合阶段是将RTL代码转换为门级网表的关键步骤。Xilinx Vivado等综合工具会默认执行各种优化操作以提高设计性能并减少资源占用。这些优化包括但不限于:常量传播、寄存器合并、冗余逻辑消除等。虽然这些优化…...

Python性能优化利器:Numba JIT编译器原理与实战应用

1. 项目概述:当Python遇上性能瓶颈,Numba如何成为你的“即时编译器”在数据科学、科学计算和高性能数值模拟领域,Python以其简洁的语法和丰富的生态库(如NumPy、Pandas)成为了事实上的标准语言。然而,任何深…...

AugGPT:基于上下文感知的AI代码生成器设计与实现

1. 项目概述:当代码生成器遇上“增强现实”如果你和我一样,长期在代码的海洋里“游泳”,那么对GitHub上琳琅满目的代码生成工具一定不陌生。从早期的代码片段补全,到如今能生成完整函数甚至模块的AI助手,它们确实极大地…...

GitHub代码仓库安全防护:基于ClamAV的PR恶意文件自动化扫描实践

1. 项目概述:一个守护代码仓库的“安全哨兵”最近在梳理团队内部的代码安全流程,发现一个挺普遍但容易被忽视的问题:我们花了很多精力在CI/CD流水线上做安全扫描,比如用SonarQube检查代码质量,用Trivy扫描容器镜像漏洞…...

Stream-Omni:动态调度实现大模型流式与高质量生成的平衡

1. 项目概述:从“流”到“全”的文本生成新范式最近在自然语言处理社区里,一个名为“Stream-Omni”的项目引起了我的注意。这个由ictnlp团队开源的项目,名字本身就很有意思——“Stream”代表流式,“Omni”代表全能。简单来说&…...

重新定义QT桌面应用:ElaWidgetTools如何颠覆传统Widget开发范式

重新定义QT桌面应用:ElaWidgetTools如何颠覆传统Widget开发范式 【免费下载链接】ElaWidgetTools Fluent-UI For QT-Widget 项目地址: https://gitcode.com/gh_mirrors/el/ElaWidgetTools 在桌面应用开发领域,QT开发者长期面临界面现代化与开发效…...

HFSS新手避坑指南:手把手教你仿真带孔金属箱的屏蔽效能(附模型文件)

HFSS新手避坑指南:手把手教你仿真带孔金属箱的屏蔽效能 第一次打开HFSS时,那种面对复杂界面的茫然感我至今记忆犹新。作为电磁仿真领域的标杆工具,HFSS的强大功能背后是陡峭的学习曲线。特别是当老板突然扔给你一个带孔金属箱的屏蔽效能评估任…...

Docusaurus技能库插件:打造动态技术栈展示面板

1. 项目概述:一个为Docusaurus注入灵魂的技能库插件如果你正在使用Docusaurus构建技术文档、博客或知识库,并且希望站点不仅仅是静态内容的堆砌,而是能动态展示你或你团队的技术栈、技能熟练度,那么rio225/docusaurus-skill这个项…...

嵌入式游戏UI与动画实战:基于CircuitPython的对话框系统与位图动画实现

1. 项目概述与核心价值如果你在嵌入式平台上做过游戏开发,尤其是那种带有复古像素风格和复杂交互逻辑的项目,你肯定遇到过两个绕不开的难题:如何优雅地处理用户输入和反馈,以及如何在有限的硬件资源下实现流畅的动画效果。最近我在…...

在微控制器上实现256色游戏:CircuitPython图形优化与性能调优

1. 项目概述:在微控制器上复活经典如果你和我一样,对上世纪90年代那些运行在Windows 3.1上的经典瓷砖谜题游戏(Tile-based Puzzle Game)有特殊感情,同时又对在资源受限的嵌入式硬件上实现复杂图形心有不甘,…...

Lobe Icons:现代AI与工具类应用的SVG图标系统设计与工程实践

1. 项目概述:一套为现代数字界面而生的图标系统如果你和我一样,常年混迹在各类开源项目、独立开发社区,或者自己动手搭建过一些Web应用、设计系统,那你一定对“找图标”这件事深有体会。从Material Design到Font Awesome&#xff…...

基于开源项目chatgpt-cloned构建本地化AI对话应用:架构、部署与定制指南

1. 项目概述:一个“克隆”ChatGPT的本地化实践 最近在GitHub上看到一个挺有意思的项目,叫“chatgpt-cloned”。光看名字,很多人可能会以为这是一个试图完全复刻OpenAI ChatGPT庞大模型和服务的“巨无霸”工程。但点进去仔细研究后&#xff0…...

基于meta-kb构建智能知识库:从文档向量化到RAG应用实战

1. 项目概述与核心价值最近在折腾个人知识库和AI应用落地的朋友,应该都绕不开一个核心问题:如何把散落在各处的文档、笔记、网页内容,高效地组织成一个能被大语言模型(LLM)理解和利用的“知识大脑”?这不仅…...