from web3 import Web3 HTTPProviderimport requestsimport socksimport socketimport timeimport threading# 设置Socks5代理socksset_default_proxysocksSOCKS5 127001 10808socketsocket = sockssocksocket# 初始化Web3实例
增加每5分钟保存一次最新一条查询地址为存档.txt
import datetime def save_checkpoint(address): now = datetime.datetime.now() if now.minute % 5 == 0: with open('存档.txt', 'w') as checkpoint_file: checkpoint_file.write(address)
如果程序错误退出,从存档地址开始扫描
start_address = '' try: with open('存档.txt', 'r') as checkpoint_file: start_address = checkpoint_file.read().strip() except: pass
处理每批地址
for batch in batches: threads.clear() # 清空查询线程列表 # 如果有存档地址,跳过该地址之前的所有地址 if start_address: batch = [line for line in batch if line.split(',')[0] >= start_address] # 启动新的查询线程 for line in batch: address = line.split(',')[0] print(f'启动查询线程:{address}') thread = threading.Thread(target=query, args=(address,)) threads.append(thread) thread.start() if len(threads) >= num_threads: break # 等待本批查询完成 for thread in threads: thread.join() # 保存最新查询地址为存档 save_checkpoint(address) threads.clear() # 清空查询线程列
原文地址: http://www.cveoy.top/t/topic/fHWA 著作权归作者所有。请勿转载和采集!