好友
阅读权限 25
听众
最后登录 1970-1-1
本帖最后由 qiuqiu3 于 2019-11-17 13:09 编辑
0x00 有话要说
磁力链对于大家都不陌生,很多人都用过,用迅雷下个电影、找个软件也是常有的事,但是限于现实原因,现在想找到磁力链搜索的网站越来越难(原因众人皆知)。磁力猫(以下简称“猫站”)是我常用的网站,基本上能保证长久访问,不过它的生态圈并不完善,上过猫站的朋友都知道,它只提供网站这一种访问 渠道(缺少手机客户端)网站访问在操作性上还是不太方便,比如访问前的验证、搜索列表的翻页操作、找到磁链打开手机迅雷再下载,这一顿操作真是猛如虎也。通过在 GitHub 上搜索我发现了类似的程序,经过我的修改、测试后才有了这篇文章,闲话少说咱们直接往下看。
0x01 成果展示
图1 搜索结果
图2 迅雷下载
0x03 源代码特点
界面简洁、美观; 操作方便、上手快 MVP 设计模式,代码分层的好处是结构清晰、易读、易维护; XPath语法,个人感觉比正则要强大一些; 抓取节点可配置。
原作者链接:https://github.com/roomanl/AndroidMagnetSearch
0x04 我修改了哪些
本来想拿来直接用(原作者早已经不维护这个项目了),程序虽可以运行,但是猫站的链接和页面结构已经有了新的变化,为了能让程序焕发第二春造福众人,我去猫站研究了一下发现两个问题:
1.猫站为了防止被别人抓取(一般情况下抓取程序会直接跳过首页,直接到访问搜索页进行抓取),特意增加了来源认证功能,以前传统的做法全都歇菜了,另外猫站还增加了“受限模式”,我研究来研究去就开始分析他的交互流程,终于发现了一些足丝马迹,原来是通过 Cookies 来认证的,二话不多我增加了如下代码:
[Java] 纯文本查看 复制代码
Connection conn = Jsoup.connect(newUrl);
conn.header("Cookie", "verification=true; searchLimited=0;");
第一行:搞过 Java 抓取程序的人都熟悉,鼎鼎有名 Jsoup 谁不知道。
第二行:把猫站所需的 Cookie 值过去,这是关键点。
2.猫站搜索列表页结构分析,另外多说一嘴,大家一定要熟练掌握 XPath 语法以适应猫站新的变化。先看一下猫站的 rule.json 配置文件:
[Java] 纯文本查看 复制代码
{
"site": "磁力猫",
"waiting": "0",
"group": "//div[starts-with(@class,'Search__result___')]",
"magnet": ".//a[1]//@href",
"name": ".//a",
"size": ".//em[./text()='文件大小:']/following::text()[2]",
"count": ".//em[./text()='创建时间:']/following::text()[2]",
"hot": ".//em[./text()='文件数量:']/following::text()[2]",
"url": "https://www.cilimao.at",
"source": "https://www.cilimao.at/search?word=%1$s&sortProperties=%2$s&page=%3$s&resourceSource=0",
"hotsort": "download_count",
"datesort": "created_time",
"sizesort": "content_size"
}
group:选定列表范围。
magnet:获取真正的磁链地址。
name:获取标题(影片名称、软件名称等)。
size:获取种子文件内容总量,取这个值一定要注意,是在标签外面(也就是说这个值是在 em 标签结束后的独立的兄弟文本节点)。
count:获取创建时间,其余同上。
hot:获取磁链文件列表总量,其余同上。
hotsort:按照下载量排序。
datesort:按照日期排序。
sizesort:按照文件大小排序。
0x05 收尾
其实还有一些无关紧要的修改我没有写出来,感兴趣的朋友可以下载我修改后的代码研究,希望我们共同进步,吾爱破解 有你们更精彩。
开源地址:https://github.com/qiuqiu3/cilimao-android
安装包.zip
(1.87 MB, 下载次数: 11038)
免费评分
查看全部评分
发帖前要善用【论坛搜索 】 功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。