这次的QQ登录我研究了好久惹,今天终于可以和大家分享啦!

大家都知道,QQ登录有很多方法,例如使用账号密码登录,手机版企鹅扫码登录等等(这些方法只能验证QQ是否成功登录,并没有聊天等功能)

首先就来使用账号密码登录吧(略简单)

一、准备工作

我们需要一只WebBrowser和登录API http://ui.ptlogin2.qq.com/cgi-bin/login?appid=1006102&s_url=http://id.qq.com/index.html&hide_close_icon=1

此外,还需要用于解析数据的Newtonsoft.Json

这其实是QQ中心的登录界面,我们需要使用WebBrowser进行模拟登录,也就是自动填表

界面设计大概是酱紫(略丑)

二、编码工作

首先实例化一只WebBrowser,然后将他转到登录界面(如没有WebBrowser请引用程序集System.Windows.Forms)

 System.Windows.Forms.WebBrowser wb = new System.Windows.Forms.WebBrowser();
wb.Navigate("http://ui.ptlogin2.qq.com/cgi-bin/login?appid=1006102&s_url=http://id.qq.com/index.html&hide_close_icon=1");

接下来就可以填表单啦

                 System.Windows.Forms.HtmlDocument doc = wb.Document;
doc.GetElementById("switcher_plogin").InvokeMember("click");
await Task.Delay();
doc.GetElementById("u").InnerText = "QQ";
await Task.Delay();
doc.GetElementById("p").InnerText = "Password"; await Task.Delay();
doc.GetElementById("login_button").InvokeMember("click");

再此之前需要注册Navigated事件,以在登录成功时抓取数据

  if (wb.DocumentTitle == "我的QQ中心")
{
var qq = Text(wb.Document.Cookie, "uin=o", ";", );//获取QQ号
var sl = Text(await Uuuhh.GetWebAsync("http://r.pengyou.com/fcg-bin/cgi_get_portrait.fcg?uins=" + qq, Encoding.Default), "portraitCallBack(", ")", );//获取QQ名称
JObject o = JObject.Parse(sl);
var image=$"http://q2.qlogo.cn/headimg_dl?bs=qq&dst_uin={qq}&spec=100";//获取QQ头像
var qqname = o[qq][].ToString();//QQ名称
}

这样就完成了账号密码的登录

三、运行测试

运行成功!o(* ̄▽ ̄*)ブ

源码下载:http://git.oschina.net/TwilightLemon/Updata/raw/master/QQLogin.zip

本次教程到这里就结束啦,希望大家多多关注我哦!o(* ̄▽ ̄*)ブ

最新文章

  1. [Javascript] 爬虫 模拟新浪微博登陆
  2. BZOJ 1041
  3. javascript单例模式的理解
  4. [杂谈]交通工具orca card
  5. Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
  6. Xcode6模拟器时BUG导致键盘无法弹出
  7. Kafka 0.8: 多日志文件夹机制
  8. Windows下命令行直接编译程序
  9. 老oj1965:polygon半平面交
  10. 七、Spring Boot Servlet 使用
  11. java~lambda表达式让查询更优雅
  12. python基础之作业3----三级菜单小练习
  13. yml使用
  14. 关于Mysql表InnoDB下插入速度慢的解决方案
  15. 深入浅出JAVA线程池使用原理1
  16. mysql 查询优化~ 分页优化讲解
  17. LeetCode(58): 最后一个单词的长度
  18. GPUImage中对比度调整的实现——GPUImageContrastFilter
  19. Ubuntu 查看CPU温度
  20. 【Spring】SpringMVC之异常处理

热门文章

  1. [翻译]成为顶尖程序员应当学什么?Python、C还是Ruby?
  2. MySQL实例
  3. 使用Cain&Abel进行网络嗅探
  4. JavaScript第三课 (循环)
  5. Mysql连接出错问题
  6. Java Web使用Html5 FormData实现多文件上传
  7. mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)
  8. Linux 学习记录 四(Bash 和 Shell scirpt)
  9. linux中grep命令的用法
  10. Android handler 可能会造成内存泄露