You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将proxybroker异步返回的代理对象转换为普通列表

你可以通过新增列表变量在异步采集过程中存储代理对象,最终就能直接得到普通列表格式的结果,修改后的代码如下:

import asyncio
from proxybroker import Broker

async def collect_proxies(proxies, proxy_list):
    while True:
        proxy = await proxies.get()
        if proxy is None:
            break
        # 如需仅存储IP端口字符串,替换为 proxy_list.append(f"{proxy.host}:{proxy.port}")
        proxy_list.append(proxy)
        print('Found proxy: %s' % proxy)

async def main():
    proxies = asyncio.Queue()
    broker = Broker(proxies)
    # 初始化空列表用于存储最终结果
    result_proxies = []
    tasks = asyncio.gather(
        broker.find(types=['HTTP', 'HTTPS'], limit=10),
        collect_proxies(proxies, result_proxies)
    )
    await tasks
    return result_proxies

if __name__ == "__main__":
    loop = asyncio.get_event_loop()
    # final_proxies 就是转换完成的普通列表
    final_proxies = loop.run_until_complete(main())
    # 可以直接按普通列表的方式操作
    print(f"采集完成,共得到{len(final_proxies)}个代理")
    print(final_proxies)

额外说明:

  • 原代码中的show函数仅做打印输出,替换为collect_proxies后会把每一个抓取到的代理对象追加到传入的列表中
  • 所有异步任务执行完毕后,列表就已经填充完成,不需要额外做异步结果到普通列表的转换操作
  • 你可以根据需求调整存入列表的内容,比如只存IP端口、同时存代理类型等,都可以直接操作proxy对象的对应属性完成

内容的提问来源于stack exchange,提问作者user40780

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 13:36:00