现在磁力站很多,但是搜出来的东西乱七八糟的,广告也多,我看多了觉得挺烦的,正好周末无聊,想着自己做一个,下面附上本次利用Python爬虫磁力站点的教程。
下面是我写爬虫时候主要引用的库
当然,抓取的关键词可以自己从代码里设置,比如title,文件大小之类的。
但我怎么知道爬出来的哪些数据是没有用的呢?自己手动一个一个试显然不靠谱。
其实我并不需要知道哪些数据是没有用的,我只需要确定哪些数据是有用的就可以!!!
我的做法是:尝试和traceker通信,通信成功的链接才会保留下来帮我导出到excel,通信失败的,就直接剔除。
对了,这里跟大家解释一下Tracker是什么?
tracker服务器是BT下载中必须的角色。一个BTclient在下载开始以及下载进行的过程中,要不停的与tracker服务器进行通信,以报告自己的信息,并获取其它下载client的信息。
客户端连上 tracker服务器,就会获得一个下载人员的名单,根据这个,BT会自动连上别人的机器进行下载。它是提供bt的服务器。把文件用bt发布出来的人需要知道该使用哪个服务器来为要发布的文件提供tracker。由于不指定服务器,BitTorrent采用BT文件来确定下载源。
那么好了,到了这一步,我只需要python帮我把爬出来的资源导出到excel即可。
导出excel需要用到的库
设置好excel需要保存的位置就好啦!
关于磁力链的原理:
磁力链接由一组参数组成,参数间的顺序没有讲究,其格式与在HTTP链接末尾的查询字符串相同。通常是一个特定文件的内容散列函数值形成的URN,例如:
magnet:?xt=urn:btih:4D9FA761D69964B00DF0B3B0C9C1F968EA6C47D0&xt=urn:ed2k:7655dbacff9395e579c4c9cb49cbec0e&dn=bbb_sunflower_2160p_30fps_stereo_abl.mp4&tr=udp%3a%2f%2ftracker.openbittorrent.com%3a80%2fannounce&tr=udp%3a%2f%2ftracker.publicbt.com%3a80%2fannounce&ws=http%3a%2f%2fdistribution.bbb3d.renderfarming.net%2fvideo%2fmp4%2fbbb_sunflower_2160p_30fps_stereo_abl.mp4
虽然这个链接指向一个特定文件,但是客户端应用程序仍然必须进行搜索来确定哪里。
在标准的草稿中其他参数的定义如下:
magnet:协议名。
xt:exact topic的缩写,包含文件哈希值的统一资源名称。BTIH(BitTorrent Info Hash)表示哈希方法名,这里还可以使用ED2K,AICH,SHA1和MD5等。这个值是文件的标识符,是不可缺少的。
dn:display name的缩写,表示向用户显示的文件名。这一项是选填的。
tr:tracker的缩写,表示tracker服务器的地址。这一项也是选填的。
ws:webseed的缩写,表示网络种子。
urn:(Uniform Resource Name, URN 表示资源名
btih:BitTorrent info hash,种子散列函数
应用程序定义的实验参数,必须以"x."开头。
标准还建议同类的多个参数可以在参数名称后面加上".1", ".2"等来使用,例如:
magnet:?xt.1=urn:sha1:YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C&xt.2=urn:sha1:TXGCZQTH26NL6OUQAJJPFALHG2LTGBC7