{"repo":"x-haose/hs-net","free":true,"listed":false,"github":"https://github.com/x-haose/hs-net","clone":"git clone https://github.com/x-haose/hs-net.git","description":"hs-net。统一多引擎的增强型 HTTP 客户端，内置重试、选择器、流式下载、信号中间件，同步异步全支持","language":"Python","stars":14,"topics":["aiohttp","async","curl-cffi","http-client","http-clients","httpx","python","python3","requests","retry"],"license":"MIT","category":"scrapers-browser-automation","readme_excerpt":"hs-net 统一多引擎的增强型 HTTP 客户端，内置重试、选择器、信号中间件，同步异步全支持。 特性 - 多引擎切换 — httpx、aiohttp、curl-cffi、requests、requests-go，统一 API，一行切换 - 同步 & 异步 — Net （异步）和 SyncNet （同步），接口完全一致 - 智能选择器 — 内置 CSS、XPath、正则、JMESPath 四种数据提取（可选安装） - 流式响应 — 支持分块下载大文件，所有引擎统一接口 - 自动重试 — 基于 tenacity，可配置次数、间隔、随机抖动 - 信号中间件 — 请求前、响应后、重试时三个钩子 - 统一异常 — 超时、连接失败、状态码错误等统一映射，切换引擎不影响错误处理 - 反爬支持 — curl-cffi 浏览器 TLS 指纹模拟 + 内置真实 User-Agent 池（浏览器 / 搜索引擎爬虫 / 微信） - 轻量核心 — 核心仅依赖 httpx + tenacity，爬虫增强按需安装 安装 Python = 3.10。默认安装仅包含 httpx + tenacity，选择器需安装 [sp] 。User-Agent 池是内置的，无需额外依赖。 快速开始 异步 同步 数据提取（需要 pip install hs-net[sp] ） 引擎对比 特性 httpx aiohttp curl-cffi requests requests-go ------ :-----: :-------: :---------: :--------: :-----------: 异步支持 ✅ ✅ ✅ ❌ ✅ 同步支持 ✅ ❌ ✅ ✅ ✅ HTTP/2 ✅ ❌ ✅ ❌ ✅ TLS 指纹模拟 ❌ ❌ ✅ ❌ ✅ SOCKS 代理 ✅ ❌ ✅ ✅ ✅ 安装方式 默认 [aiohttp] [curl] [requests] [requests-go] 推荐场景 通用首选 高并发 反爬 兼容老项目 反爬+性能 引擎切换 快捷函数（无需实例化） 快捷函数每次创建临时客户端，适合简单请求。需要复用连接、配置中间件时请使用 Net / SyncNet 。 流式响应 分块下载大文件，不占内存： 配置 每次请求也可以覆盖全局配置： 参数优先级： 请求方法参数 构造函数参数 NetConfig 默认值 User-Agent 默认就是当前版本的桌面 Chrome，不用配置。要换用内置的真实 UA 池，传快捷方式即可（不区分大小写）： 类别 快捷方式 ------ ---------- 桌面浏览器 random 、 chrome 、 firefox （ ff ）、 edge 、 safari 移动端浏览器 mobile 、 android 、 ios （ iphone ） 搜索引擎爬虫 bot 、 googlebot （ google ）、 bingbot （ bing ）、 baiduspider （ baidu ）、 sogou 、 360spider 、 bytespider （ bytedance / toutiao ）、 yandexbot （ yandex ）、 duckduckbot 、 applebot App 内置浏览器 wechat （ weixin / micromessenger ） random 和 mobile 是桌面、移动端各自的随机入口。爬虫和微信有特定用途，需要显式指定，不会被随机取到。不在上表中的字符串一律当作自定义 UA 使用。 UA 数据内置在包里（约 ","default_branch":null,"files":null,"tree":[],"storefront":"/r/x-haose","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/x-haose/hs-net/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}