首页 > 代码库 > 利用phantomjs模拟QQ自动登录
利用phantomjs模拟QQ自动登录
之前为了抓取兴趣部落里的数据,研究了下QQ自动登录。
当时搜索了一番,发现大部分方法都已经失效了,于是准备自己开搞。
第一个想到的就是参考网上已有方案的做法,梳理登陆js的实现,通过其他语言重写。
考虑到js可能会更新,放弃了此方案。
第二个想到的是能不能直接调用QQ自己的js方法,模拟进行提交呢。
搜索一番后发现神器 ———— "phantomjs".
PhantomJS is a headless WebKit scriptable with a JavaScript API. It has fast and native support for various web standards: DOM handling, CSS selector, JSON, Canvas, and SVG.
于是开搞,代码实现如下。
var page = require(‘webpage‘).create(); var fs = require("fs"); page.settings.userAgent = ‘Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.3 (KHTML, like Gecko) Version/8.0 Mobile/12A4345d Safari/600.1.4‘; page.open(‘http://ui.ptlogin2.qq.com/cgi-bin/login?pt_no_onekey=1&style=9&appid=1006102&s_url=http%3A%2F%2Fxiaoqu.qq.com%2Fmobile%2Fbarindex.html%3F_lv%3D29313%26_bid%3D128%26_wv%3D1027%26from%3Dshare_link%23bid%3D37469%26type%3D%26source%3Dindex%26scene%3Drecent%26from%3Ddongtai%26webview%3D1&low_login=0&hln_css=http%3A%2F%2Fpub.idqqimg.com%2Fqqun%2Fxiaoqu%2Fmobile%2Fimg%2Fnopack%2Flogin-logo.png‘, function(status){ if (status == ‘success‘) { page.render(‘index.png‘); setTimeout(function() { page.evaluate(function() { document.getElementById(‘u‘).value = http://www.mamicode.com/‘QQ号码‘; document.getElementById(‘p‘).value = http://www.mamicode.com/‘QQ密码‘; pt.check(false); }); setTimeout(function() { file = fs.open("cookie.log", ‘w‘); file.write(JSON.stringify(page.cookies)); file.close(); phantom.exit(); }, 2000); }, 1000); } });
cookie会写入到当前目录下的cookie.log文件,有了cookie接下来的事情就简单多了。使用php或js将cookie种到浏览器下即可。
附:
下载phantomjs的Windows版本:http://phantomjs.org/download.html
在当前文件夹下运行cmd命令:
1. 在桌面上先按住Shift键,然后鼠标右键,出现选项“在此处打开命令窗口(W)”也可以打开命令行。
2. 点击“在此处打开命令窗口(W)”,进入CMD命令行界面。
参考文章:
利用phantomjs模拟QQ自动登录:https://www.liudon.org/1327.html
QQ模拟登录实现之四两拨千斤(基于V8引擎):http://ju.outofmemory.cn/entry/246396
PhantomJS在Windows7下实现网站自动下载截图(包含PhantomJS在Windows7下的安装):http://www.cnblogs.com/huangcong/archive/2013/04/18/3027654.html
利用phantomjs模拟QQ自动登录
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。