首页 > 编程 > Python > 正文

Python开发实例分享bt种子爬虫程序和种子解析

2020-02-23 05:23:50
字体:
来源:转载
供稿:网友

看到网上也有开源的代码,这不,我拿来进行了二次重写,呵呵,上代码:

代码如下:
    #encoding: utf-8 
    import socket 
    from hashlib import sha1 
    from random import randint 
    from struct import unpack, pack 
    from socket import inet_aton, inet_ntoa 
    from bisect import bisect_left 
    from threading import Timer 
    from time import sleep 
    import MySQLdb 
    from datetime import * 
    import time 
    from bencode import bencode, bdecode 
    BOOTSTRAP_NODES = [ 
        ("router.bittorrent.com", 6881), 
        ("dht.transmissionbt.com", 6881), 
        ("router.utorrent.com", 6881) 
    ]  
    TID_LENGTH = 4 
    KRPC_TIMEOUT = 10 
    REBORN_TIME = 5 * 60 
    K = 8 
    def entropy(bytes): 
        s = "" 
        for i in range(bytes): 
            s += chr(randint(0, 255)) 
        return s 
    def random_id(): 
        hash = sha1() 
        hash.update( entropy(20) ) 
        return hash.digest() 
    def decode_nodes(nodes): 
        n = [] 
        length = len(nodes) 
        if (length % 26) != 0:  
            return n 
        for i in range(0, length, 26): 
            nid = nodes[i:i+20] 
            ip = inet_ntoa(nodes[i+20:i+24]) 
            port = unpack("!H", nodes[i+24:i+26])[0] 
            n.append( (nid, ip, port) ) 
        return n 
    def encode_nodes(nodes): 
        strings = [] 
        for node in nodes: 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表