关于Python基于Mirai开发的QQ机器人中出现的问题
-
在使用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 -
@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())
-
@Anstiya 谢谢大佬!
问题解决了,现在发送一个请求就是不到0.3s就能完成!
再次感谢!!!