先思考,如果我要挖掘一个qq获取好友列表的接口,那么必须找到一个网页在哪里会调用读取用户的好友列表。

然后这里要你从好友列表里面选择,那么这里肯定会出现一个ajax异步读取,这个jajx请求的响应也许就是你的好友列表。

接着在右边开发者工具里面会抓到很多请求包,那么你能一眼从众多的请求包中发现friend_show_qqfriends是显示QQ好友。

然后返回的json里面uin是QQ,groupid是分组id,remark是备注之类的。

QQ空间的,获取好友接口:http://user.qzone.qq.com/p/r/cgi-bin/tfriend/friend_show_qqfriends.cgi?uin=867597730&follow_flag=1&groupface_flag=0&fupdate=1&g_tk=20372033
返回

_Callback({
“code”:0,
“subcode”:0,
“message”:””,
“default”:0,
“data”:
{“items”:[{“uin”:79620,
“groupid”:15,
“name”:”蔓越莓味哒曲奇”,
“remark”:”曲奇”,
“img”:”http://qlogo1.store.qq.com/qzone/79620/79620/30″,
“yellow”:-1,
“online”:0,
“v6”:1},

这个接口返回格式是callback的回调函数也就是意味着可以跨域获取?但是别忘记了这个接口请求需要带上一个参数也就是g_tk,这个g_tk是要用skey和QQ来计算的,并且需要验证cookie,所以意味着你也无法通过穷举g_tk来获取他人的好友列表,因此这个接口的安全性是不容置疑的。

package org.myJsoup;import java.io.IOException;
import java.util.List;
import java.util.Map;import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;import com.fasterxml.jackson.databind.ObjectMapper;
import com.testmail.MailUtilByYock;public class QZoneCrawlFriends {public static void main(String[] args) throws IOException {CloseableHttpClient client = HttpClientBuilder.create().build();HttpGet get = new HttpGet("https://h5.qzone.qq.com/proxy/domain/r.qzone.qq.com/cgi-bin/tfriend/friend_show_qqfriends.cgi?uin=1968568204&follow_flag=1&groupface_flag=0&fupdate=1&g_tk=1618527651");get.addHeader("Accept","*/*");get.addHeader("Accept-Encoding", "gzip,deflate,sdch");get.addHeader("Accept-Language", "zh-CN,zh;q=0.8");get.addHeader("referer", "http://user.qzone.qq.com/1968568204");get.addHeader("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36");get.addHeader("Cookie","pgv_pvid=9819136700; pgv_info=ssid=s6397738714; rv2=80EE89992BE55328CF8338C99CFAEE34CBBC055C4F5ECF894A; property20=A7B48B66A2D072B8FF5247EDB8EDE20A6C9898B2079E2E522E2A57D73C545AFBB41C103681E2A7E5; __Q_w_s_hat_seed=1; __Q_w_s__QZN_TodoMsgCnt=1; pgv_pvi=9889131520; pgv_si=s7529074688; RK=p8ULeKXiGJ; ptui_loginuin=1968568204; ptisp=cnc; ptcz=deee8e0b7cc45b3e11aed27680441216e0f1de716869ceff0772f5c5dd54cf18; pt2gguin=o1968568204; uin=o1968568204; skey=@GmTwovsnK; p_uin=o1968568204; p_skey=g5EU8BU5M50Eg1Ry4*xxDFaBgCOLo2liCSUgI2VIIYg_; pt4_token=PZ9V0DRBiVLhaupZk*KSn3XXK7TZaYVpkZBzxaD08i8_; Loading=Yes; qzspeedup=sdch; blabla=dynamic; QZ_FE_WEBP_SUPPORT=1; cpu_performance_v8=1");try {CloseableHttpResponse response = client.execute(get);String bodyAsString = EntityUtils.toString(response.getEntity());bodyAsString = bodyAsString.substring(10,bodyAsString.length()-2);ObjectMapper objectMapper = new ObjectMapper();StringBuffer sb = new StringBuffer();sb.append("<html><head></head><body>");Map map = objectMapper.readValue(bodyAsString, Map.class);Map map2 = (Map) map.get("data");List<Map> map3 = (List<Map>) map2.get("items");for (int i = 0; i < map3.size(); i++) {sb.append("<p><img src="+map3.get(i).get("img")+"/>"+map3.get(i).get("uin") + "\n"+ "昵称:"+map3.get(i).get("name")+"("+map3.get(i).get("remark")+")"+"\n</P>");}sb.append("</body></html>");String receiveEmail = "1968568204@qq.com";String receiveNick = "longyi";String subject = "Your QQ friends:";String contents = sb.toString();MailUtilByYock.sendMail(receiveEmail, receiveNick, subject, contents);response.close();client.close();} catch (ClientProtocolException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}
}

最后利用QQ好友列表获取接口实现了:qq好友列表获取 
还有微信好友列表获取了解更多可Q群:675172950  交流学习。

QQ获取好友列表接口 -相关推荐

  1. python模拟登录qq获取好友信息_使用Python模拟登录QQ邮箱获取QQ好友列表

    最近因开发项目的需要,有一个需求,就是很多SNS网站都有的通过 Email地址 导入好友列表,不过这次要导入的不是Email 列表,而是QQ的好友列表. 实现方式: 通过google一搜,实现的方式大 ...

  2. html模仿微信好友列表,微信的模拟登陆及获取好友列表

    最近没事写了个微信模拟登陆的代码,测试可以到今天2013年11月4日为止是可以登陆的 登陆是用的jsoup实现的,一个简单又强大的工具.不懂的可以@红薯站长去 Connection.Response ...

  3. python clicknium 微信发送消息以及获取好友列表

    需求说明 给指定微信好友发消息 获取所有微信好友的微信号 环境准备 Windows 10 Visual Studio Code 1.69.2 Clicknium 0.1.2 Python 3.10.5 ...

  4. 03环信好友管理 - 获取好友列表

    获取好友列表,环信提供了4种方法. 从本地获取:该方法比较特殊,只有在您之前获取过好友列表的情况下才会有值,且不能保证最新. NSArray *buddyList = [[EaseMob shared ...

  5. PC微信逆向:使用HOOK获取好友列表和群列表

    文章目录 获取好友列表的切入点 定位查询好友信息的函数 定位微信号的地址 一次错误的尝试 再次查找目标函数 成功定位获取好友信息的函数 定位获取好友列表的函数 示例代码 实际效果 预告 获取好友列表目 ...

  6. 为什么新版手机 QQ 2013 好友列表不再区分在线状态?

    对于最近新版手机 QQ 2013 好友列表不再区分在线状态这个问题,大家讨论都很激烈,也同时看了QQ产品总监的解释,本想一笑了之,但还是忍不住说几句! 以下蓝色为QQ产品方的解释: 首先得解释,201 ...

  7. 微信聊天小程序——(三、获取好友列表)

    三.获取好友列表 步骤一.展示所有好友的推荐列表(friends页面) 具体效果: 实现思路: 我们有我们的用户数据库表即:uers 循环我们的数据库用户表,达到所有的用户信息,即:userList ...

  8. taobao.products.get( 获取产品列表 )接口,淘宝店铺商品列表官方接口,淘宝R2店铺上传接口,淘宝oAuth2.0接口

    大家都知道,目前淘宝开放平台的店铺订单和店铺商品接口权限已经不支持申请应用,有好多做店群业务,店铺订单同步,店铺订单消息推送,店铺订单插旗,店铺上传商品,店铺修改商品属性,店铺上货等操作均不能操作了, ...

  9. android listview qq,Android中使用listview实现qq/微信好友列表

    首先附上运行结果: 如果你没有学过listview请你先看一看基本知识.不想再说的那么细了 太多了. 首先是listview布局 android:id="@+id/lv_view" ...

  10. android 即时聊天工具 yq,Android 开发即时聊天工具 YQ :(四) 获取好友列表

    实现聊天之前还有一个重要的东西,?没错,就是好友列表,没的好友你和谁聊呀,是吧, 嘿嘿,一切从简,早点实现基本的聊天目标的说,所以代码很懒(or 烂?),为什么呢?看完就知道了, 在服务器端当登陆成功 ...

最新文章

  1. 【译】Angular 5 新特性
  2. wxWidgets:wxBusyInfo类用法
  3. 请MM吃饭之工厂模式实现
  4. 【多线程】并发执行指定数量的线程
  5. Ceph (3) - 安装Ceph集群方法3:使用 ceph-ansible 离线安装 Red Hat Ceph Storage 4.1 集群
  6. 常用HDFS java API
  7. Java编程思想阅读收获
  8. Android开发环境搭建(基于Android Studio)
  9. Windows 应用商店无法打开解决办法
  10. 电商数据库详细设计说明书
  11. pmp中ram和raci的区别_【PMP考前冲刺】知识点大全(六)
  12. 书论92 侯仁朔《侯氏书品》
  13. Java 实现图片裁剪(附代码) | Java工具类
  14. ffmpegguitool下载不了_FFmpeg GUI Tool下载|FFmpeg GUI Tool(视频处理)下载v1.2.4 安卓版
  15. 对称加密和非对称加密的特点
  16. 令人细思极恐的小故事_“&”号的令人惊讶的故事
  17. [系列] - go-gin-api 规划目录和参数验证(二)
  18. python 通达信数据_[python]沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上...
  19. 免费DSP开发板,你想要吗?
  20. [Unity2D]Tilemap Collider2D只给部分地图瓦片加上Collider的方法

热门文章

  1. 「Java代码审计」Java代码审计基础知识「一」
  2. 用批处理共享打印机电脑设置
  3. 苹果背后的拼多多双11“农产品狂想曲”
  4. Python识别同构数
  5. m126a linux驱动下载,hpm126a驱动下载
  6. PhotoShop简介
  7. 【CDAS峰会】吴喜之:数据科学的未来发展
  8. PHPStorm安装UML绘图工具插件
  9. STK 12.5.0发布
  10. 如何在linux上下载各种常用安卓应用