想做个磁力链搜索引擎 1

最近突然想做个磁力链搜索引擎
预计想分3步走
1.写个磁力链下载器
2.写个DHT网络爬虫
3.搭个磁力链搜索网站

自己一个人鼓捣了几天了,第一步的进度才迈出第一步。。。。不知道最后能不能实现。

part1 磁力链原理的简单介绍。

磁力链和种子是两种东西,这首先要分得清。磁力链实际上是bt协议的一个拓展协议。(这里是bt协议的地址http://www.bittorrent.org/index.html)
常见的磁力链格式如下
magnet:?xt=urn:btih:b68d400d25a8bc977f9f711c4068f3624bec87c0&dn=【MGRT&幻之字幕组】【剧场版】我想吃掉你的胰脏 我想吃了你的胰脏 君の膵臓をたべたい【简体内嵌】【720P】.mp4
磁力链的实际参数比上面这个链接还要多
感兴趣的可以看看这篇博客
https://blog.csdn.net/Cony_14/article/details/50888073
虽然参数很多,但磁力链中最关键的部分是最前面那串hash加密的特征码。这个特征码是对种子进行hash加密得到的,类似资源的身份证,只要你有这个身份证,就可以找到该资源,其他参数实际上省去也没什么关系。

part2 有了磁力链,我们怎么下载到种子文件
这里下载方法有两种
1.到种子库通过磁力链检索
2.通过DHT网络寻找。

第一种方法。其实就是上网找可用的种子库,利用别人存储的种子库找到资源。这种方法最便捷。最常见的种子库当然是迅雷啦。不过迅雷的种子库早关闭了。我抓包抓了半天也没分析出它现在的请求结构。不过在网上逛了半天,倒是让我找到了一个种子库
在这里插入图片描述
网址为http://storetorrents.co/ btkitty这个磁力链搜索站就是用的这个种子库。
这个种子库的请求构造其实也挺简单的。
python访问代码如下

import requests,json,re
from pyquery import PyQuery as pq
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) thunderx/1.0.0 Chrome/59.0.3071.115 Electron/1.8.6 Safari/537.36',
}
#通过磁力链从storeTorrent网址获取种子,网址为http://storetorrents.com
def getFromStoreTorrents(hash):
    baseUrl = "http://storetorrents.com/torrent/"
    url = "https://storetorrents.xyz/download"
    r = requests.get(baseUrl+hash+".html",headers=headers)
    doc = pq(r.text)
    key = doc("#downloadform div.downbox input[name='key']").attr("value")
    params = {
        'key': key,
        'infohash': hash,
    }
    r = requests.post(url,data=params,headers=headers)
    with open("E:/test.torrent","wb") as f:
        f.write(r.content)
    return r.content


if __name__ == "__main__":
    hash = 'b68d400d25a8bc977f9f711c4068f3624bec87c0'
    torrent = getFromStoreTorrents(hash)

这样就实现了利用磁力链下载种子了。

至于第二种方法:
现在还没实现。留个坑吧。

part3 种子解析
我们用记事本打开种子文件,会看到类似这样的文本
在这里插入图片描述
1.为什么全是乱码。这主要是用于种子文件的主体部分是hash校验码,sha1 的hash校验码是由20个字节组成的,一个字节有8位,而一个16进制数只有4位,所以实际上20个字节压缩了40个16进制数。如AA这个16进制数为编码的时候为10101010,并不是00001010 00001010,我们从网上将种子文件下载下来以后,编码什么的都是按字节读取编码的,所以对于AA计算机将其看成一个字节了,如果是utf8编码,它会找对应的字符,如果字符在utf-8中没有映射,则会报错,有映射但是不可显示,就会一堆乱码。
当然,还有一些乱码是由于编码格式不正确,例如一些标题乱码。这个在编码的时候转化一下就好了。主要还是hash校验码显示乱码

2.种子文件是利用bdecode编码的。不了解的可以百度一下。所以,如果要解析出文本,我们还需要对于文本进行解码。解码这个还是比较麻烦的,网上有一些bdecode解码的包,也有用c,用php写的代码,试了几个,有些问题。而且,不太符合我的期望。我就自己写了一个。解码主要思路是利用编译的方法,自顶向下分析得到语法分析树,再进行切分,编码主要就是利用回填的方法,编码比解码简单多了。有兴趣的可以看看,代码放在最后。

part3 种子结构介绍
种子下载下来了,解析也解析完成,让我们分析一下种子的结构吧。
种子文件中包含了资源的目录信息(该资源含有哪些信息),资源的发布者,资源大小,各片段的hash校验码等等,贴上一张我解析出来的种子结构
在这里插入图片描述
在这里插入图片描述

我将种子中的bencode格式的文本,转化为了json格式的文本。将hash加密后得到的乱码数据,转化为了10进制的数据。一个十进制数表示两个16进制数合并。
我们可以看见这个种子文件包含
announce:tracker主服务器的地址
announce-list:同样是tracker服务器的地址。
comment:评论,注释
creation date:创建时间,应该是时间戳
encoding:编码
info:种子的主体信息
info.length:文件大小
info.name:文件名
piece length:每个文件块的大小,用Byte计算,其实就是文件的分块,bt资源文件是分块传输并加密的。这个表示分块的大小。
pieces:各分块hash校验码,一块校验码长度为20字节(注意是字节,表示成16进制实际上有40个数字,因为一个16进制数占4位)。故pieces总长为20的整数倍。我再代码中将其都切分出来了弄成一个列表了。
publisher:文件发布者的名字
publisher-url:发布者的url
node:最后的一个字段是nodes字段,这个字段包含一系列ip和相应端口的列表,是用于连接DHT初始node (这个我这个种子里没有)。
实际上还可能有其他奇怪的参数。比如ed2k,filehash。

目前就做到这里了。感觉进度还是很慢的。
种子编码,解码代码 (因为想做个网站,代码是用java写的) https://github.com/yyyhah/BtDownload/blob/master/TorrentDownload/ParseTorrent.java

yahahassr
关注 关注
  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
磁力搜索工具
06-18
磁力搜索工具1.4.22.179.36.66
【前方高能】支持种子和磁力,完爆迅雷的多功能高速下载神
04-02 994
尽管EagleGet的官方网站和软件界面风格可能让人误以为它是由外国开发者所创造,但实际上,EagleGet是由位于北京的一家公司所开发的。尽管IDM在处理直下载时表现出色,但它并不支持磁力接(Magnet Links)和种子(Torrents)的下载,因此在功能上有所限制,不能算是一个全面的下载工具。EagleGet是一款出色的免费多线程下载器,它融合了IDM和迅雷的多种优势。EagleGet的名字和它的图标所暗示的那样,这款下载器就像一只迅猛飞翔的鹰,能够迅速而精准地“捕捉”到我们所需的“目标”
磁力搜索引擎 2
yahahassr的博客
04-30 2万+
上一篇我们已经解析出种子的基本结构。下一个问题就是,如何通过种子文件所给的信息,获取文件的下载地址。 上一篇中我们解析种子发现有两个键比较特殊,分别时announce以及announce-list 这两个属性的值便是是tracker服务器的地址。(据我观察,announce里面的地址比announce-list里面的地址访问速度快一点,announce-list里的地址无法访问的概率大一点) p...
传说中的神器--磁力
u012762054的博客
01-29 46万+
如今,在网上求资源,再也不像以前一样需要繁琐的去寻找Torrent文件、图种以及五花八门格式各样的种子文件。只需要一小段“magnet:?xt=urn:btih:”开头的字符串即可完成下载操作。 那么,这一小段字符串究竟是什么?为什么有这么神奇的功效呢?下面我们就来一探究竟。 2009年时,很多BT服务器被迫关闭,不仅仅是很多种子文件从此销声匿迹,就连BT Tracker服务器也停止解析工作,这时...
几个好用的资源下载网址
qq_39735878的博客
08-03 55万+
几个好用的资源下载网址 分享资源接下载 一、磁力蜘蛛: 地址:http://www.eclzz.xyz/ 二、轻磁力聚合搜索引擎: 地址:http://cili.search.qinggl.com/ 三、BT磁力: 地址:http://www.cilil.cn/ 四、磁力点点: 地址:http://www.torrent.org.cn/cili 五、磁力狗: 地址:http://ciligou.top/ 六、西边云:(书籍类文件bt下载,非视频bt下载) 地址:http://www.xibianyun.
推荐一系列下载学习资料的磁力网站,汇聚前后端学习知识,帮助更多朋友进阶程序开发。
热门推荐
我驾驶汽车从不是为了从A点到达B点,我喜欢去感受汽车,与之交流,与之融为一体。
10-07 59万+
磁力多推荐,国内资源非常丰富的磁力搜索引擎!BT吃力推荐,国内资源最全,搜你搜的磁力站!地址发布页:https://cursor.vip/vip ,sokankan.top ,永久域名:https://jukan.xyz吴签磁力推荐,干净、好用的磁力和网盘资源搜索引擎磁力猫最好用的磁力接搜索。永久地址发布页:狸猫.com ,猫和老鼠.com,磁力猫.com ,磁力猫.xyz ,魔法猫咪.lol池里搜地址发布页:chilisou.com。
什么是磁力接如何愉快的使用磁力
沈寒博客
07-13 1万+
磁力接(Magnet URI scheme),是对等网络中进行信息检索和下载文档的电脑程序。和基于“位置”连接的统一资源定位符(URL)不同,磁力接是基于元数据(metadata)文件内容,属于统一资源名称(URN)。 也就是说,磁力接不基于文档的IP地址或定位符,而是在分布式数据库中,通过散列函数值来识别、搜索来下载文档。因为不依赖一个处于启动状态的主机来下载文档,所以特别适用没有中心服务...
磁力接文件服务器,什么是磁力接(BT、磁力这些词语是什么意思?)
weixin_32678427的博客
08-13 5万+
“知其然知其所以然”。我们经常在下载资料的时候能看到BT、磁力等词语,百思特网这些词语到底是什么意思呢?下载都会用,但是你了解吗?BT下载传统的下载模式是每个客户端从服务器拷贝文件,跟校园内常用的FTP一样。因为服务器宽带是一定的,所以下载的人越多下载速度会越慢。而现在使用的下载器情况正好相反,使用的人越多文件下载速度越快。这是因为现在的下载器普遍采用类似BT的下载方式。布拉姆科恩发明了BT协议...
磁力搜索引擎,一键获取你要的资源!
最新发布
04-05
使用磁力搜索引擎非常简单,只需打开一个磁力搜索引擎的网站,输入你要搜索的关键词,点击搜索按钮,即可找到相关的磁力接。这些接可以直接下载到电脑上,方便快捷。 磁力搜索引擎适用于多种实际应用场景,如...
BT磁力接搜索大师 BtResourceSearch(BT磁力接搜索大师) v1.4
11-10
BtResourceSearch(BT磁力接搜索大师),也叫BT资源搜索大师,是一款磁力接搜索软件。拥有强大搜索引擎,依靠DHT网络可以按照不同的类别进行分类搜索出百万条资源数据信息。你也可以
磁力资源搜索器
07-23
可以方便的搜索磁力资源。 双击结果行即可将磁力复制到系统粘贴板了。 特别注意:运行需要安装32位JRE(包括64位机器)
磁力接搜索大师
11-21
BtResourceSearch(BT磁力接搜索大师),也叫BT资源搜索大师,是一款磁力接搜索软件,拥有强大搜索引擎,依靠DHT网络,可以按照不同的类别进行分类搜索出百万条资源数据信息.你也可以将种子文件转换成磁力连接并分享...
磁力搜索引擎大全教程,如何使用磁力接。
weixin_46493566的博客
11-18 11万+
磁力接是一种特殊的下载接,磁力接可以理解为一个文件识别码,而并非具体的资源地址,下载软件需要拿着这个识别码去整个互联网(DHT网络)去寻找持有该资源的用户(节点),如果找到则可以进行传输下载。一般年代越久远的磁力接下载成功的几率越小,因为持有该资源的节点越少。一般使用网盘下载的成功率最高,因为当第一个人下载该资源的时候一般三方网盘会将该资源存储在自己的服务器上,为以后拿着这个识别码来下载的用户直接提供下载。第一步:百度磁力搜索大全或打开磁力搜索导航网站www.ciliso.co。
一文读懂Bt种子、磁力接、直、p2p这些下载的区别
weixin_48345177的博客
07-10 7709
它以magnet:?xt=urn:btih:开头。如果你需要经常p2p下载,还是一些比较冷门的资源。然后就告诉了用户A哪些人电脑上有资源《雷神》其实Bt种子和磁力接的下载方式都是P2P。我们通过p2p下载的资源很多都是些非法资源。提供该下载的服务器会被直接封杀和律师函警告。而且很多冷门资源其他的下载器都是0kb/s。所以种子和磁力就是寻找资源的方式不同而已。拥有该资源的用户越多下载的速度就会越快啊。后面跟着的就是文件的哈希表生成的特征码。所以他就问附近的用户B和用户C知不知道。
P2P下载技术-BT协议与Magnet磁力
qq_42887507的博客
11-21 1万+
P2P下载技术-BT协议与Magnet磁力接前言传统服务器-客户端文件下载P2P下载最早的应用-NapsterBT-BitTorrentbt的工作原理Magnet磁力接 前言 我们在互联网上下载文件时大概几种方式:FTP、HTTP、BT、Magnet磁力等。 浏览器会直接支持FTP和HTTP下载,BT和磁力下载一般需要专用的下载软件的支持。 传统服务器-客户端文件下载 FTP,全称File Transfer Protocol,即文件传输协议,顾名思义,它就是一个提供文件传输功能的协议。通过该协议下载
磁力搜索引擎目前有那些,推荐50个以及简单介绍
伴随着你
03-16 4万+
一个全球性的BT种子搜索网站,提供大量的资源接。一个知名的电影和电视剧种子搜索网站,更新速度快。一个社区驱动的磁力接分享网站,界面简洁。一个用户友好的磁力接搜索网站,分类明确。一个聚合多个磁力接网站的搜索结果的平台。一个老牌的磁力接搜索网站,资源丰富。一个提供广泛磁力接资源的搜索网站。一个曾经非常流行的磁力接搜索网站。一个提供快速下载接的磁力搜索网站。一个简洁无广告的磁力接搜索平台。一个搜索结果丰富的磁力接网站。一个界面现代的磁力接搜索网站。一个界面简单的磁力接搜索平台。
磁力接网址
cg1510167的博客
01-19 6万+
磁力接网址
磁力
weixin_34351321的博客
12-08 5477
http://baike.baidu.com/view/3771419.htm
写一个查找资源磁力的代码
03-25
A: ``` import requests from bs4 import BeautifulSoup # 输入要查找的资源关键词 keyword = input("请输入要查找的资源关键词:") # 构造请求头 headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0;Win64) AppleWebkit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"} # 发送请求获取网站源码 url = "https://www.btsou.org/search/%s/" % keyword response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, "html.parser") # 解析网站源码,获取磁力接 magnet_links = [] for link in soup.find_all('a'): href = link.get('href') if href and href.startswith("magnet:?xt="): magnet_links.append(href) # 输出磁力接 print("共找到 %d 个结果:" % len(magnet_links)) for magnet_link in magnet_links: print(magnet_link) ``` 使用方法: - 打开 Python 编辑器,新建一个 Python 文件,将上述代码粘贴进去并保存; - 运行该 Python 文件,输入要查找的资源关键词,程序会自动在网站中搜索该关键词,并提取出所有磁力接; - 程序执行完毕后,程序会输出找到的所有磁力接。 注意事项: - 如果网站反爬虫机制较强,该程序可能无法正常工作; - 请勿用于非法下载行为,本程序仅用于学习和研究使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 想做个磁力链搜索引擎 1 81788
  • 想做个磁力链搜索引擎 3 63235
  • hive中split(),explode()和lateral row 46130
  • 想做个磁力链搜索引擎 2 21007
  • 通过爬虫抓取秒懂百科视频 16020

分类专栏

  • java 4篇
  • 算法
  • 爬虫 1篇
  • 前端 3篇
  • 数据库 5篇

最新评论

  • java socket 大数据传输丢失的问题

    gujunhe: 可以先传个长度

  • hive中split(),explode()和lateral row

    居安学长: 言简意赅

  • 使用python向mysql中添加字典数据

    开发界的泥石流: 第一张图片字典在哪,list吗

  • mysql两表关联 将join替换为union效率问题

    高达一号: 愣是没看到如何处理多余的a

  • java socket 大数据传输丢失的问题

    喵咪不吃泡面: 每次传输的的数据长度不一样怎么办

大家在看

  • 常见仪表盘指示灯的含义,这次够全了!
  • 基于BERT-BILSTM的中文情感识别
  • 全面战争模拟器steam_api64.dll丢失怎么解决?全面战争模拟器steam_api64.dll丢失问题的深度解读与快速修复
  • 反转21克msvcr100.dll丢失怎么办?反转21克msvcr100.dll丢失问题的全面解析与解决之道
  • 基于CNN卷积神经网络的金融数据预测matlab仿真,带GUI界面,对比BP,RBF,LSTM

最新文章

  • java socket 大数据传输丢失的问题
  • java new String("a")创建了几个对象
  • ArrayList源码分析(jdk12)
2020年6篇
2019年22篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

聚圣源玉蒲团之偷情神殿守护者生辰八字华信起名嗨来电下载死囚乐园oad2020鼠年于姓宝宝起名杜姓起名女孩学游泳女性的胸球队名字樱花动漫官方官网起名最后一个字几声好bd是什么意思起个麻辣烫的店名男孩起名大全免费取名字大全包青天新版力的合成国产动画片大全基金003003钮姓起名梓名字怎么起豪字男孩起名名字大全聪明人和傻子和奴才给龙凤胎宝宝起名字好大军师司马懿免费观看入党申请书会查你抄袭吗工程公司起名3字嫁给男主的病秧子哥哥杨家将外传斯里兰卡猛虎组织淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化