python实现bt下载器_使用Python编写基于DHT协议的BT资源爬虫
关于DHT协议
DHT协议作为BT协议的一个辅助,是非常好玩的。它主要是为了在BT正式下载时得到种子或者BT资源。传统的网络,需要一台中央服务器存放种子或者BT资源,不仅浪费服务器资源,还容易出现单点的各种问题,而DHT网络则是为了去中心化,也就是说任意时刻,这个网络总有节点是亮的,你可以去询问问这些亮的节点,从而将自己加入DHT网络。
要实现DHT协议的网络爬虫,主要分3步,第一步是得到资源信息(infohash,160bit,20字节,可以编码为40字节的十六进制字符串),第二步是确认这些infohash是有效的,第三步是通过有效的infohash下载到BT的种子文件,从而得到对这个资源的完整描述。
其中第一步是其他节点用DHT协议中的get_peers方法向爬虫发送请求得到的,第二步是其他节点用DHT协议中的announce_peer向爬虫发送请求得到的,第三步可以有几种方式得到,比如可以去一些保存种子的网站根据infohash直接下载到,或者通过announce_peer的节点来下载到,具体如何实现,可以取决于你自己的爬虫。
DHT协议中的主要几个操作:http://www.jb51.net/article/81188.htm
python实现bt下载器_使用Python编写基于DHT协议的BT资源爬虫相关推荐
- python小说下载器_【Python】DouBiNovel小说下载器V0.1.1(源码+成品)【失效待修复】...
简单说明 之前在论坛发现一个很好的小说阅读站,可惜只能在线阅读,无法下载到本地,导出到电子书设备上.恰好最近在学python,于是就有了写一个下载器的想法. 但,对于初学菜鸟.又是初三学子的我,这又谈 ...
- python调用默认播放器_用Python批量下载MOOC资源
简介 这是我编写的一个Python脚本,用来批量下载一门MOOC的资源,包括视频.PDF和课程目录. 你是否也曾上MOOC学习过?有没有和我一样遇到这些情况:在线看MOOC视频消耗流量好多,或者浏览器 ...
- python实现批量下载视频_利用Python实现批量下载腾讯视频!
原标题:利用Python实现批量下载腾讯视频! 导语 利用Python下载腾讯非VIP视频,也就是可以免费观看的视频.做这个的起因是最近在看一个叫"请吃红小豆吧"的动漫,一共三分钟 ...
- python多线程下载器_用 python 实现一个多线程网页下载器
学习之 #!/usr/bin/env python # -*- coding:utf-8 -*- import urllib, httplib import thread import time fr ...
- python写小说阅读器_用python实现自己的小说阅读器!
前一段时间书荒的时候,在喜马拉雅APP发现一个主播播讲的小说-大王饶命.听起来感觉很好笑,挺有意思的,但是只有前200张是免费的,后面就要收费.一章两毛钱,本来是想要买一下,发现说的进度比较慢而且整本 ...
- python需要花钱下载吗_用Python下载知乎视频,非常实用
原标题:用Python下载知乎视频,非常实用 Python下载知乎视频. # -*- coding: utf-8 -*- """ 下载知乎视频: 依赖: pip inst ...
- python计算时间装饰器_使用python装饰器计算函数运行时间的实例
装饰器在python里面有很重要的作用, 如果能够熟练使用,将会大大的提高工作效率 今天就来见识一下 python 装饰器,到底是怎么工作的. 本文主要是利用python装饰器计算函数运行时间 一些需 ...
- python怎么批量下载年报_使用Python批量下载Wind数据库中的PDF报告
原标题:使用Python批量下载Wind数据库中的PDF报告 背景 最近小编出于工作需要,准备在Wind金融数据终端批量下载上市公司2019年第一季度业绩预告.通过相关的条件检索,发现其相关数据有近百 ...
- python无水印下载视频_用 Python 下载抖音无水印视频
说起抖音,大家或多或少应该都接触过,如果大家在上面下载过视频,一定知道我们下载的视频是带有水印的,那么我们有什么方式下载不带水印的视频呢?其实用 Python 就可以做到,下面我们来看一下. 首先,我 ...
最新文章
- java 数组a赋值给数组b_java编程将a,b数组中不同的数字保存到一个新的数组中
- kaldi windows安装_kaldi在Windows下的使用
- More Effective C++ (运算符)
- python txt转json_实战篇 | 用Python来找你喜欢的妹子(二)
- Mysql :removeAbandonedTimeout:180
- guava 的重试机制 guava-retrying 使用
- Cherno OpenGL 教程
- DAY 3 字符串、列表、字典练习 - 班级按成绩分组小程序快递分拣小程序
- Excel数据计数(count)
- Oracle 11G安装出错(Oracle执行先决条件检查失败)
- 如何用易语言做锁机软件
- 还不错的微信活码程序源码+功能强大
- luckysheet实现在线编辑Excel
- 送你一个励志故事(转载)
- mysql唯一key_MySQL唯一约束(UNIQUE KEY)
- 现代企业管理笔记——控制
- php 取消warning,php怎么关闭warning提示
- matlab实验八,matlab实验八
- python 串口时钟校对_基于MicroPython的自动网络时间校准器
- Watir自动化环境搭建
热门文章
- [业界] 关于诺基亚,上来吐槽两句埃洛普,顺便爆点料。
- 推挽电路原理“上P下N”及“上N下P”的区别
- 【C语言跬步积累】——分支和循环总汇
- android 联通时间同步,NTP时间同步技术在中国联通信息化中的应用
- dirac 是什么?
- 1. 医院的就诊流程是怎样的?
- 京东2019暑期实习面经
- citrify免费在线图片处理云软件
- java 最烧脑的继承题_多动脑不会老!最烧脑的10道智力题!答对5道算智商高!一起开动脑筋吧~...
- 身份认证(暴力破解基础)