admin管理员组

文章数量:1530085

QQ空间模拟登陆。。。

一般套路:浏览器监控切换到Network,然后输入账号密码,然后点击登录。。。但是加密啊那些很多 很多请求之类的 瞎搞。

太麻烦了。然而我们写代码的懂不起那些。


言归正传,C#控制台来开始:

必须先在Nuget里面引入两个库:

代码如下,简洁明了:

PhantomJSDriverService services = PhantomJSDriverService.CreateDefaultService();
            PhantomJSDriver driver = new PhantomJSDriver(services);
            driver.Navigate().GoToUrl("https://qzone.qq/");
            IWindow window = driver.Manage().Window;
            window.Maximize();
            Thread.Sleep(3000);
            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(5000);

解释一下代码的意思:

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

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


找到这个iframe的ID,然后SwitchTo

然后找到这个Iframe里面的


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


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

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

切记:必须先在Nuget里面引入那两个库

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

有问题的大兄弟们,欢迎加群:80669150(.Net) 一起交流学习进步,进群备注(博客园)

如果你想请我喝瓶水,就微信扫一下,哈哈。我是成都林夕 再会。。。


本文标签: 空间seleniumPhantomJSqq