QQ空间模拟登陆。。。
一般套路:浏览器监控切换到Network,然后输入账号密码,然后点击登录。。。但是加密啊那些很多 很多请求之类的 瞎搞。
太麻烦了。然而我们写代码的懂不起那些。
言归正传,C#控制台来开始:
必须先在Nuget里面引入两个库:
代码如下,简洁明了:
PhantomJSDriverService services = PhantomJSDriverService.CreateDefaultService();PhantomJSDriver driver = new PhantomJSDriver(services);driver.Navigate().GoToUrl("/");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) 一起交流学习进步,进群备注(博客园)
如果你想请我喝瓶水,就微信扫一下,哈哈。我是成都林夕 再会。。。