最近想做一个QQ空间点赞的小工具,于是晚上下班回来就开始分析PC版的QQ空间,打开Chrome,切换到Network,然后输入账号密码,然后点击登录。。。

然后,我曹。。。。一堆请求就开始了。。。。搞了半天,还要去分析登录的加密方法。。。。太麻烦了。。。

然而我们写代码的懂不起那些。。。

于是就果断掏出的大杀器Selenium+PhantomJS

说了这么多要不要直接上代码啊???

好吧,直接上代码

        PhantomJSDriverService services = PhantomJSDriverService.CreateDefaultService();
PhantomJSDriver driver = new PhantomJSDriver(services);
driver.Navigate().GoToUrl("https://qzone.qq.com/");
IWindow window = driver.Manage().Window;
window.Maximize();
Thread.Sleep();
Actions actions = new Actions(driver);
IWebDriver login = driver.SwitchTo().Frame(driver.FindElementById("login_frame"));
login.FindElement(By.Id("switcher_plogin")).Click();
login.FindElement(By.Id("u")).SendKeys("账号");
login.FindElement(By.Id("p")).SendKeys("密码");
login.FindElement(By.Id("login_button")).Click();
Thread.Sleep();

解释一下代码的意思:

1-5行代码的意思就是创建一个没有界面的浏览器,然后线程休眠三秒钟,等待浏览器渲染。然后就是创建一个Actions,这里带了一个s,不是C#库里面的Action哈,切记哈!

然后就是切换到iframe,QQ空间里面的登录区域实际上是一个iframe嵌入在里面

找到这个iframe的ID,然后SwitchTo

然后找到这个Iframe里面的

模拟点击一下,就会显示输入账号和密码的输入框。

然后找到输入框和密码的ID,并且SendKeys账号和密码进去,然后就找到登录按钮,Click一下就好了,就进入主页了。

只要进去了,就能做的事情太多了。。。拿到Cookie ,各种点赞什么的,各种自动发说说啊,

忘了说一下,那段代码要是能跑起来,还必须先在Nuget里面引入两个库

谢谢你的阅读,希望能帮到你

C# 13行代码带你模拟登录QQ空间的更多相关文章

  1. 使用Python+Selenium模拟登录QQ空间

    使用Python+Selenium模拟登录QQ空间爬QQ空间之类的页面时大多需要进行登录,研究QQ登录规则的话,得分析大量Javascript的加密解密,这绝对能掉好几斤头发.而现在有了seleniu ...

  2. 参数化登录QQ空间实例

    通过参数化的方式,登录QQ空间 实例源码: # coding:utf-8 from selenium import webdriver import unittest import time clas ...

  3. 模拟登录QQ推断是否须要验证码

    老生常谈的问题了,在模拟登录之前,推断是否须要验证码: https://ssl.ptlogin2.qq.com/check? uin=QQ号码&appid=1003903&js_ver ...

  4. ClientKey实现登录QQ空间,并设置背景音乐

    ClientKey大家都知道的,通过webbrowser登录后取得Cookie并计算出GTK,即可操作空间的POST. 源代码中引用了苏飞的Http类库,自己修改添加了一些拓展方法. 下载地址:htt ...

  5. PHP不到100行代码实现SSO单点登录

    1.点击登录跳转到SSO登录页面并带上当前应用的callback地址2.登录成功后生成COOKIE并将COOKIE传给callback地址3.callback地址接收SSO的COOKIE并设置在当前域 ...

  6. 黄聪:C#带cookie模拟登录百度

    #region 同步通过POST方式发送数据 /// <summary> /// 通过POST方式发送数据 /// </summary> /// <param name= ...

  7. 13行代码实现:Python实时视频采集(附源码)

    一.前言 本文是<人脸识别完整项目实战>系列博文第3部分:程序设计篇(Python版),第1节<Python实时视频采集程序设计>,本章内容系统介绍:基于Python+open ...

  8. 十几行代码带你用Python批量实现txt转xls,方便快捷

    前天看到后台有一兄弟发消息说目前自己有很多txt 文件,领导要转成xls文件,问用python怎么实现,我在后台简单回复了下,其实完成这个需求方法有很多,因为具体的txt格式不清楚,当然如果是有明确分 ...

  9. base64stego 还不懂base64的隐写,详解15行代码带你领略

    网上写了好多关于xctf MISC新手篇的base64Stego隐写的教程,但大都不太清楚,基本上都是讲了一段隐写原理,直接上代码了.但是代码是这道题的关键,代码讲了如何解码这个隐写的完整流程,这次我 ...

随机推荐

  1. DS18B20温度传感器知识点总结

    2018-01-1818:20:48 感觉自己最近有点凌乱,一个很简单的问题都能困扰自己很久.以前能很好使用和调试的DS18B20温度传感器,今天愣是搞了很久,妈卖批. 仅仅一个上拉电阻就困扰了我很久 ...

  2. python3 第二十二章 - 函数式编程之Decorator(装饰器)

    前面我们说了,在python中,一切皆对象.函数也是一个对象,而且函数对象可以被赋值给变量,通过变量也能调用该函数.如: def sayHello(name): print(name + ' hell ...

  3. python3 第十八章 - 迭代器与生成器

    1.迭代器(Iterator) 迭代是访问集合元素的一种方式 迭代器是一个可以记住遍历的位置的对象. 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退. 迭代器 ...

  4. linux_nginx环境配置

    rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-6.noarch.rpm # 安装阿里的epel源 国内使用web站点最多的w ...

  5. CSS选择器的新用法

    前面的话 现在,预处理器(如sass)似乎已经成为开发CSS的标配,正如几年前jQuery是开发JS的标配一样.JS的querySelector借鉴了jQuery的选择器思想,CSS选择器也借鉴了预处 ...

  6. Ceph,TFS,FastDFS,MogileFS,MooseFS,GlusterFS 对比

    系统整体对比 对比说明 /文件系统 TFS FastDFS MogileFS MooseFS GlusterFS Ceph 开发语言 C++ C Perl C C C++ 开源协议 GPL V2 GP ...

  7. MyEclipse中好用的快捷键汇总

    MyEclipse中常用的快捷键有很多,合理的使用其中一些快捷键组合,可以有效提高开发的效率和质量. 1.Ctrl + Shift + R:打开资源.可以查找并打开工作区中任何一个文件,且支持使用通配 ...

  8. 【Java SE】如何安装JDK以及配置Java运行环境

    摘要:不管是作为苦逼的Java码农,还是高端大气的Java系统架构师,如果不会安装JDK以及配置Java运行环境,那就巧妇难为无米之炊,不能进行Java后续的代码编写.当然如果你是Myeclipse编 ...

  9. 【转】命令行浏览器 curl 命令详解,Linux中访问url地址

    CURL --- 命令行浏览器 这东西现在已经是苹果机上内置的命令行工具之一了,可见其魅力之一斑 1)二话不说,先从这里开始吧! curl http://www.yahoo.com 回车之后,www. ...

  10. Android开发——打造简单的Viewpager指示器

    准备工作: 1.两张不同颜色的小圆点图片,可以去阿里巴巴矢量图网站搜索 我把我使用的图片贴出来 2.一个简单的Viewpager的实现 下面是简单的Viewpager实现步骤: 1.布局文件使用Vie ...