magnetW:把26个磁力站塞进一个搜索框的上手指南
【免费下载链接】magnetW[已失效,不再维护]项目地址: https://gitcode.com/gh_mirrors/ma/magnetW
找一份资源要在十几个网站之间来回切换,还得把关键词重新打一遍——因为每个站对"按大小排"和"按人气排"的入口叫法都不一样。magnetW就是为这种场景做的:一个本地磁力聚合搜索桌面应用,输入一次关键词,同时向26个站点发起请求,结果按统一格式排好,直接复制磁力链接。看片、攒资料的同学,十分钟就能上手。
30秒速览:magnetW磁力聚合搜索长什么样
magnetW用Electron + Vue编写,Windows、macOS、Linux都能跑。启动后加载rule.json里的站点规则,并行爬取各站搜索页,再用XPath从HTML里抽出名称、大小、发布时间和人气,各站页面结构再花,结果都是同一份列表。跟逐个开网站相比,差别主要在三点:
- 26个站点一次查完,不用来回切标签页
- 排序统一成收录时间、文件大小、下载人气三种,不用学每站的叫法
- 关键词只输一遍,结果页直接按大小、时间、人气对比
左侧边栏列出每个站点并带复选框,勾选与否决定本次搜索包含哪些站。
🚀 从零到第一次搜索:安装步骤
先准备环境:装Node.js 14+,用node -v确认版本。项目工具链较老(Electron 7时代),Node版本不必追新。然后三条命令跑起来:
git clone https://gitcode.com/gh_mirrors/ma/magnetW cd magnetW npm install npm run dev窗口打开后验证是否装好:左侧列出全部站点并带勾选框,顶部搜索框输入关键词,结果列表开始滚动加载。第一次用建议按资源类型勾选站点:影视选种子搜、BTSOW、BT蚂蚁这类中文站,软件选idope和BT4G,动漫加上Nyaa和动漫花园,拿不准就全勾。结果上方是排序按钮——收录时间、文件大小、下载人气,各站只展示自己支持的排序方式。
🎬 三个高频任务:找4K电影、攒课程包、装设计软件
找一部4K电影。想4K画质看《阿凡达:水之道》。搜索框输入"阿凡达 水之道 4K",勾选影视站点,先按文件大小排——4K压制片普遍20GB起步,小文件自然沉底。再切到下载人气,挑做种数高的,做种少的大概率没人补种。小技巧:片名搜不到就加上映年份,各站收录不同,组合多试几次更容易命中。
攒一套课程包。目标是收齐一套机器学习课程。输入"Python 机器学习 教程",勾选BT4G、idope。点开资源详情看文件列表,包得全的会是分章节目录,单个iso多半不是课程。按收录时间排,新版教程优先。小技巧:课程包认准文件大小排,体积过小的基本是缺章缺节的。
装一套设计软件。目标是Adobe CC最新版。输入"Adobe 2023",勾选软件类站点,进详情确认文件列表里有安装包和说明文档,优先选标着"绿色版""便携版"的结果。小技巧:下载前先看人气,几十个下载量的资源,比零下载的安全得多。
⚙️ 从默认到自定义:自定义站点规则
所有站点行为都写在rule.json里,顶层字段是id、name、proxy、url、paths、xpath。paths声明该站支持哪些排序的URL,time、size、hot、preset四种,{k}和{p}是关键词与页码占位符。加一个新站点,最小写法:
{ "id": "mysite", "url": "https://example.com", "paths": { "preset": "/search?q={k}&page={p}" } }页面结构摸清后补上xpath,每个字段是一条XPath表达式,分别取磁力链接、名称、大小、时间、人气,解析逻辑在src/main/format-parser.js。常用调参位置与效果:
| 调哪里 | 效果 |
|---|---|
| 排序按钮(时间/大小/人气) | 切换该站查询用的URL |
| cacheExpired(默认7200) | 调小后重复搜索刷新更及时 |
| preload(默认开启) | 预取下一页,关掉省带宽 |
| proxy、proxyHost、proxyPort | 让标注"需代理"的站点能访问 |
默认值在src/main/defaultConfig.js,改完在应用内设置页保存即可,配置会持久化到本地。搜索慢的时候,取消几个冷门站点的勾选最见效。
🛠️ 故障速查:搜索无结果排查等
- 搜索结果为空:多半是站点屏蔽了当前网络或页面改版。先取消勾选出错的站点搜其余的;全为空就精简关键词重试,或检查代理配置。
- 安装后启动失败:一般是依赖问题。删除node_modules重新npm install,看终端报错定位具体包;Node版本过新就降到14~16。
- 某个站点总是失败:域名可能已更换。更新rule.json里该站的url,或把它标为需代理走代理访问。
- 结果刷新慢:默认缓存保留2小时,把cacheExpired调小,或重启应用。
📦 给想动源码的人
主进程逻辑在src/main,界面在src/renderer,核心文件对应关系:
| 模块 | 路径 | 职责 |
|---|---|---|
| 搜索调度 | src/main/service.js | 编排多站点并发请求 |
| 结果解析 | src/main/format-parser.js | 把各站HTML转成统一结构 |
| 站点规则 | rule.json | 各站搜索URL与XPath |
| 关键词过滤 | src/main/filter/filter.js | 按内置词条表拦截命中结果 |
| 内存缓存 | src/main/memory-cache.js | 缓存搜索结果避免重复请求 |
| 界面组件 | src/renderer/components/ | 搜索框、结果列表等Vue组件 |
二次开发三步走:改rule.json或renderer组件,用npm run dev热更新看效果,用npm run build打包出三平台安装包。
npm run dev npm run build项目遵循GPLv3协议,分发修改版时必须同样开源、不得植入广告、注明原项目出处。
合规提醒与收尾
magnetW本身是爬虫与解析技术的交流学习工具,搜索结果全部来自源站。只搜你有权利获取的内容,尊重版权,来历不明的软件包下载前谨慎扫描。下次想找资源时,不用再开十几个标签页——一个搜索框,26个站点替你并行回答。
【免费下载链接】magnetW[已失效,不再维护]项目地址: https://gitcode.com/gh_mirrors/ma/magnetW
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考