MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接

    关于Python基于Mirai开发的QQ机器人中出现的问题

    开发交流
    2
    3
    372
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • H
      Hanfeng 最后由 编辑

      在使用python编写机器人时,我考虑使用python的requests库对mirai进行http轮询。
      但是我发现一个可能不算问题的问题:就是我每次使用python的requests库发送post和get请求时,每次都要花费2s左右的时间反应。这相当于在QQ群里发送消息,机器人都至少要等待好几秒才会做出反应。虽然结果正常而且我们对机器人的反应没有过大的需求,但是无疑,这样的迟钝的反应速度会大大影响使用体验。
      我尝试上网去搜寻答案,固然找到了一些解决方案,但是效果不尽人意:
      1.使用多线程或者多进程,但是似乎作用不大(因为request本身就慢,这个方法只是适用于需要在短时间内多次爬取信息,我编写这个机器人暂时可能用不上)
      2.禁用云服务器的IPv6协议,防止IPv4与IPv6协议的冲突,但是几乎没有带来任何改变
      请问一下各位大佬能支支招吗?感谢不尽。
      基本信息:
      Mirai 2.16.0
      Python 3.7.9
      requests库版本 2.31.0

      Anstiya 1 条回复 最后回复 回复 引用 0
      • Anstiya
        Anstiya 摸鱼 @Hanfeng 最后由 编辑

        @Hanfeng
        改用httpx试试看

        import asyncio
        
        import httpx
        #历史上的今天,文字版
        url="https://www.ipip5.com/today/api.php"
        async def hT():
            async with httpx.AsyncClient(timeout=100) as client: #100s超时
                data = {"type": "json"}     #传递的数据
                r = await client.get(url, params=data)  #发起请求
                return r.json()   #返回结果
        if __name__ == '__main__':
            asyncio.run(hT())
        
        H 1 条回复 最后回复 回复 引用 0
        • H
          Hanfeng @Anstiya 最后由 编辑

          @Anstiya 谢谢大佬!
          问题解决了,现在发送一个请求就是不到0.3s就能完成!
          再次感谢!!!

          1 条回复 最后回复 回复 引用 0
          • 1 / 1
          • First post
            Last post
          Powered by Mamoe Technologies & NodeBB | 友情链接 | 服务监控 | Contact