python聊天机器人源码

发布时间:2022-11-22

本文目录一览:

  1. python爬虫做qq机器人的问题
  2. iOS可以做QQbot吗
  3. 利用python + qqbot + 聚合数据api 实现qq智能聊天机器人

python爬虫做qq机器人的问题

我觉得是可能是因为没带cookie造成的吧?顺便说一下,ptqrtoken是「cookie里面的qrsig的hash33」,代码在github的justko/qzonelib,虽然写的不好,给我加个星星吧:-)

def check_qrcode(self):
    qrsig = None
    for i in self.qq_cookie:
        if i.name == 'qrsig':
            qrsig = i.value
            break
    if qrsig is None:
        print("QR_Code识别码没有找到,需要重新下载")
        raise RuntimeError
    req = urllib.request.Request(
        url="" 
        "?u1=https%3A%2F%2Fqzs.qq.com%2Fqzone%2Fv5%2Floginsucc.html%3Fpara%3Dizone" 
        "ptqrtoken=" + str(QQ.__hash33(qrsig)) + 
        "ptredirect=0h=1t=1g=1from_ui=1ptlang=2052" 
        "action=0-0-1509338784922" 
        "js_ver=10231js_type=1login_sig=pt_uistyle=40aid=549000912daid=5"
    )
    res = self.opener.open(req).read().decode()
    result = re.match("ptuiCB\('([^']*)','[^']*','([^']*)','[^']*','([^']*)', '(.*)'\)", res)
    code = result.group(1)
    success_url = result.group(2)
    info = result.group(3)
    username = result.group(4)
    return code, success_url, info, username

iOS可以做QQbot吗

不可以。 qqbot是一个python语言的基于smartqq协议的python库,他可以实现监听qq聊天,发送特定qq消息,从而能制作一个自己的qq机器人。不能ios下载。 ios很多软件都不能下载,没有权限的。

利用python + qqbot + 聚合数据api 实现qq智能聊天机器人

from qqbot import QQBotSlot as qqbotslot, RunBot
from random import randint
@qqbotslot
def onQQMessage(bot, contact, member, content):
    # 在这里过滤过来的输入, content的内容是监听qq上所有的输入
    # 当群里有人@你的时候 传入过来的会被转化为[@ME]
    # 所以使用 @ME 来过滤其他人在群里面at你
    if '@ME' in content:
        # 四个参数的详细
        # bot    : QQBot 对象,提供 List/SendTo/Stop/Restart 四个接口,详见本文档第五节
        # contact: QContact 对象,消息的发送者,具有 ctype/qq/uin/nick/mark/card/name 属性,这些属性都是 str 对象
        # member : QContact 对象,仅当本消息为 群或讨论组 消息时有效,代表实际发消息的成员
        # content: str 对象,消息内容
        bot.SendTo(contact, '@' + member.name + " 哈哈 ")
    # 这里是因为部分群里面的at无法转化为[@ME]所以自己过滤at自己的内容
    elif '@' in content and '光' in content:
        bot.SendTo(contact, '@' + member.name + " 哈哈 ")
RunBot()