精华内容
下载资源
问答
  • qt好友列表

    2019-07-05 13:32:29
    qt 实现类似好友列表控件。
  • qq好友列表

    2016-09-29 14:43:41
    javascript 仿qq好友列表
  • QQ好友列表效果

    2016-05-11 20:36:22
    QQ好友列表效果
  • 易语言取QQ好友列表源码,取QQ好友列表,取全局
  • 取QQ好友列表.rar

    2020-04-06 23:13:04
    取QQ好友列表.rar
  • qt,qq好友列表

    2018-07-16 17:22:34
    qt实现的qq好友列表,抽屉列表,可自定义列表的子窗口的布局
  • 仿微信好友列表

    2015-04-20 21:14:15
    仿微信好友列表,
  • 主要为大家详细介绍了QQ好友列表树形列表简单实现方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • android简单demo listView显示好友列表 从文件中读取好友信息 并显示好友列表
  • 微信好友列表

    2018-11-28 22:12:12
    微信好友列表读取处理,下载头像处理等。 #将微信图像进行拼接 dirs = os.listdir("/sms/Img/") each_size = int(math.sqrt(float(900*900)/len(dirs))) line = int(900.0/each_size) photographic = Image.new(...
  • 模仿扣扣好友列表

    2017-11-09 09:28:56
    模仿扣扣好友列表,上下拉刷新啊,滑动删除,高仿扣扣好友列表
  • 好友列表菜单响应式网页模板
  • 简单仿QQ好友列表

    2016-08-12 17:33:15
    简单仿QQ好友列表
  • 主要介绍了Android仿QQ好友列表实现列表收缩与展开,感兴趣的小伙伴们可以参考一下
  • 获取好友列表

    2013-03-05 17:35:23
    *V1.0 2010-12-5 问题:获取好友列表只能获取120个好友 *每次向服务器发送命名时,如果返回了&RES=20,说明没有正确登录 *然后更改is_RightLogin的值为false,因此每次引用QQ类函数返回值的时候都要先判断 *is_...
  • 取QQ好友列表源码.rar

    2020-04-06 23:14:54
    取QQ好友列表源码.rar
  • 易语言取QQ好友列表.rar
  • 主要介绍了android仿微信好友列表功能,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
  • QQ好友列表源码

    2013-01-18 11:29:55
    QQ好友列表源码 类似qq 好友类表效果 一二级列表
  • 仿QQ好友列表.zip

    2020-07-21 03:17:47
    该文件完整的利用UITableView和UICollectionView实现仿QQ好友列表展开收起的效果,详细的代码逻辑实现和注释讲解
  • iOSQQ好友列表

    2015-04-14 14:26:03
    QQ好友列表 UI iOS 所有的素材,代码,以及所有的注释。。
  • 易语言仿QQ好友列表框源码,仿QQ好友列表框,定义组,创建组,组被单击,刷新显示,物体进入,离开物体
  • 仿qq好友列表

    2015-05-28 09:36:34
    模仿qq好友列表布局,可收缩、展开 欢迎大家下载和学习!!!
  • qq好友列表获取之动态爬虫清洗爬取qq好友列表数据 - 获取qq好友ip、群、群成员列表。我们的好友列表要从 qzone 获取,现在打开 qzone 的链接https://h5.qzone.qq.com/mqzone/index并且登陆。 具体步骤: 1、分析...

    qq好友列表获取之动态爬虫清洗爬取qq好友列表数据 - 获取qq好友ip、群、群成员列表。我们的好友列表要从 qzone 获取,现在打开 qzone 的链接 https://h5.qzone.qq.com/mqzone/index 并且登陆。

    具体步骤:

    1、分析qzone请求
    2、分析参数来源
    3、仿照数据请求

    上次写的一个qzone登陆写的不详细这次决定写一个详细分析qzone js 获取好友列表

    分析qzone请求

    我们的好友列表要从 qzone 获取,现在打开 qzone 的链接 https://h5.qzone.qq.com/mqzone/index 并且登陆。

    你可能会说你在逗我,这特么哪里来的qq好友列表
    别急,好友列表肯定是有的不然你发表说说怎么@你的好友呢

    说到@好友都明白了吧,我们的好友列表接口就从这里开始拦截接口请求。
    先把打开我们发说说的那个框框,再把浏览器开启调试模式,清空网络请求拦截列表

    qq好友列表获取
    qq好友列表获取

    现在你应该在发说说的那个界面,点一下说说框下面的 @符号

    qq好友列表获取
    qq好友列表获取

    盯住网络请求那一块,找一下那个像是获取好友列表的,发现一共就6个请求,我一眼就看到了mfriend_list 接口意思很直白啊

    qq好友列表获取
    qq好友列表获取

    qq好友列表已经找到,接下来就是分析参数了,这个过程很痛苦

     

    分析参数来源

    首先点我刚刚说到的那一条请求记录 就是这样子的 我对自己的qq号打了码毕竟这个东西获取到可以直接用cookie登陆的

    qq好友列表获取
    qq好友列表获取

     

    这里可能有人会说,为什么不直接点击拦截列表上面有个可以定位js发出请求的位置,这样找分析请求参数不是更简单吗
    这边呢我只能说我之前也找过,但是找不到获取同行qq好友的软件,因为点击过去找到的是封装类的位置。

    这边参数呢不多 六个 需要分析的就两个
    qzonetoken c2176b5d6f0deff03d0dd0f59f26e51c2b408aa83419d416c737cc1b21d1e913c861ca780ad34ff4293ca5640b69
    g_tk:1760587213
    res_uin:***
    res_type:normal
    format:json
    timestamp 时间戳

    我们现在看一下这个 qzonetoken 使用全局搜索找一下看是不是写在静态页面中的

    qq好友列表获取
    qq好友列表获取

    继续搜索 window.shine0callback

    发现都是一个结果。。。。 后面我试着搜索一下html 里面 发现竟然真的有
    qq好友列表获取

    发现都是一个结果。。。。 后面我试着搜索一下html 里面 发现竟然真的有

    qq好友列表获取
    qq好友列表获取

    window.shine0callback = 自执行函数
    所以呢 qzonetoken 参数直接用 window.shine0callback 就好了

    继续全局搜索 g_tk

    qq好友列表获取

    这边呢有三个方法获取token
    1、userHelper.getPskeyToken()
    2、userHelper.getToken()
    3、user.getToken()

    我们先在控制台执行一下这些方法

    qq好友列表获取
    qq好友列表获取

    发现 user 能执行也和请求的参数对上了,不过我还是想找一下 userHelper 这个东西

    先把ajax.js 这个类给弄到本地来 搜索 userHelper

    qq好友列表获取
    qq好友列表获取

    既然写在里面的那copy到控制台就可以执行了。这个不同微信好友列表获取的方式。
    开始我把 userHelper copy进去发现少了一个getCookie,再把getCookie 也复制到控制台就好了

    qq好友列表获取

    这样子执行就能获取到 token 了

    res_uin qq号码,我在搜索静态html的时候无意间发现了可以从 FrontPage 对象中获取,当然也可以从 user 对象中获取
    res_type 固定normal
    format 固定json
    timestamp 时间戳拿一下系统时间戳就好。

    现在参数都分析完毕,qzone 的接口分析还是蛮简单的,不像某宝网站的程序

    仿照数据请求

    找到 paresHtml 函数 在这里先切换到默认窗口

    def paresHtml(self):
        self.driver.switch_to.default_content()

    获取 qzonetoken 这边直接执行window.shine0callback 就能获取

    qzonetoken = self.driver.execute_script('return window.shine0callback')

    获取 g_tk 上面说到user里面可以直接获取,那我们就偷个懒使用 user.getToken()

    g_tk = self.driver.execute_script('return user.getToken()')

    获取 res_uin 直接从user 里面 getUin()

    res_uin = self.driver.execute_script('return user.getUin()')

    获取时间戳 由于python 中的time.time()是秒,需要乘个1000

    import time
    timestamp = time.time() * 1000

    拼接url

    list = 'https://mobile.qzone.qq.com/friend/mfriend_list?' \
                   'qzonetoken=%s&g_tk=%s&res_uin=%s&res_type=normal&format=json&timestamp=%d' % ( qzonetoken, g_tk, res_uin, timestamp)

    本身我想偷懒的直接用 self.driver.get() 直接执行的 后来想想还是算了,没有一点技术含量的东西怎么好意思写呢
    最后决定使用js中的XMLHttpRequest 来模仿请求

     

      self.driver.execute_script('window.xhr = new XMLHttpRequest;')
        self.driver.execute_script('window.xhr.withCredentials=true;')
        self.driver.execute_script(
            'window.xhr.open(\'GET\',\'%s\',false)' % list)
        self.driver.execute_script('window.xhr.onload = function (e){window.xhrsuccess = window.xhr.responseText}')
        self.driver.execute_script('window.xhr.send()')
        print(self.driver.execute_script('return window.xhrsuccess'))

    请求完成后的结果是这个样子的

    qq好友列表
    qq好友列表

    下面是请求返回的结果

    {
        "code":0,
        "subcode":0,
        "message":"",
        "default":0,
        "data":{
            "gpnames":[//分组列表
                {
                    "gpid":0,//分组id
                    "gpname":"agp"//分组名称
                }
            ],
            "list":[//好友列表
                {
                  "groupid":0,//分组id
                  "isvip":1,//是否是vip 1 是 vip
                  "nick":"消费主张", //昵称
                  "remark":"消费主张",//备注
                  "searchField":"12315 消费主张 消费主张 xiaofeizhuzhang xfzz xiaofeizhuzhang xfzz",//关键字
                  "uin":12315,//qq号码
                  "viplevel":1 //qq等级
                }
            ],
            "mayknow":{
                 "allnum":0,
                  "list":null,
                  "page":1
            },
            "speciallist":null
         }
    }

    最后发一下模仿请求的源码 结合我上一篇文章的源码可以直接执行出结果,也可以获取qq好友ip

    import time
    
    def paresHtml(self):
        # 切换到默认窗口
        self.driver.switch_to.default_content()
        # 请求状态
        shine0callback = self.driver.execute_script('return window.shine0callback')
        # 一定要暂停一下不然 执行user的时候拿不到,因为懒加载
        time.sleep(1)
    
        g_tk = self.driver.execute_script('return window.user.getToken()')
        uin = self.driver.execute_script('return window.user.getUin()')
        timestamp = time.time() * 1000
    
        list = 'https://mobile.qzone.qq.com/friend/mfriend_list?' \
                'qzonetoken=%s&g_tk=%s&res_uin=%s&res_type=normal&format=json&timestamp=%d' % (
                    shine0callback, g_tk, uin, timestamp)
    
        # self.load_cookies()
        # self.driver.get(list)
    
        self.driver.execute_script('window.xhr = new XMLHttpRequest;')
    
        self.driver.execute_script(
                'window.xhr.open(\'GET\',\'%s\',false)' % list)
        self.driver.execute_script('window.xhr.onload = function (e){window.xhrsuccess = window.xhr.responseText}')
        self.driver.execute_script('window.xhr.send()')
        print(self.driver.execute_script('return window.xhrsuccess'))

    总结:

    1、qzone 里面的接口参数都差不多,总归来讲都能搜索出来
    2、qzone 压缩了js提高了分析的难度
    3、好友列表模拟请求时记得把cookie带过去否则t不认
    4、有时候登陆会登不上,拿到的好友列表数据是请先登录,删掉cookie重试即便就好

     

    更多:qq好友列表获取

    展开全文
  • 获取QQ好友列表和群列表,别的地方下载来的,用VS2010打开项目 直接可以用
  • 主要介绍了微信小程序开发之好友列表字母列表跳转对应位置的相关资料,希望通过本文能帮助到大家让大家实现这样的功能,需要的朋友可以参考下
  • ExpandableList类似QQ好友列表

    千次下载 热门讨论 2012-08-20 16:33:33
    ExpandableList类似QQ好友列表
  • 好友列表排序,分组

    2016-11-01 14:00:26
    这是一个好友列表分组,排序的demo,可以完成基本功能。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,686
精华内容 20,274
关键字:

好友列表