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

2019-10-06 15:48:52王振洲

                self.socket.sendto(bencode(msg), address) 
            except: 
                pass 
    class Client(KRPC): 
        def __init__(self, table): 
            self.table = table 
            timer(KRPC_TIMEOUT, self.timeout) 
            timer(REBORN_TIME, self.reborn) 
            KRPC.__init__(self) 
        def find_node(self, address, nid=None): 
            nid = self.get_neighbor(nid) if nid else self.table.nid 
            tid = entropy(TID_LENGTH) 
            msg = { 
                "t": tid, 
                "y": "q", 
                "q": "find_node", 
                "a": {"id": nid, "target": random_id()} 
            } 
            self.send_krpc(msg, address) 
        def find_node_handler(self, msg): 
            try: 
                nodes = decode_nodes(msg["r"]["nodes"]) 
                for node in nodes: 
                    (nid, ip, port) = node 
                    if len(nid) != 20: continue 
                    if nid == self.table.nid: continue 
                    self.find_node( (ip, port), nid ) 
            except KeyError: