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) 一起交流学习进步,进群备注(博客园)
如果你想请我喝瓶水,就微信扫一下,哈哈。我是成都林夕 再会。。。
版权声明:本文标题:Selenium+PhantomJS QQ空间模拟登陆 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1726252142a1062591.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论