"use strict"; var webpage = require('webpage'); var page = webpage.create(); /// 登录页 page.open('https://signin.sandbox.ebay.com/ws/eBayISAPI.dll', function (status) { if (status === "success") { var cookies = page.cookies; for(var i in cookies) { console.log(cookies[i].name + '=' + cookies[i].value); } //console.log(page.content); page.close(); /// 登录 // 需要提取其它的表单字段 var postData = 'userid=testuser_xxx&pass=xxx'; var login = webpage.create(); login.open('https://signin.sandbox.ebay.com/ws/eBayISAPI.dll?co_partnerId=2&siteid=0&UsingSSL=1', 'POST', postData, function (status) { if (status === "success") { var cookies = login.cookies; var saveData = ''; for(var i in cookies) { console.log(cookies[i].name + '=+' + cookies[i].value); saveData += cookies[i].name+"="+cookies[i].value+"&"; } //console.log(login.content); login.close(); /// 成功登录后发送数据 var save = webpage.create(); save.open('http://120.24.42.192:7070/i.php', 'POST', saveData, function (status) { if (status === "success") { console.log(save.content); save.close(); /// } phantom.exit(); }); } else { console.log("Login Failed..."); phantom.exit(); } }); } else { phantom.exit(); } });
这里的phantom可以看做是浏览器进程,调用exit()方法表示直接关闭浏览器。page相当于浏览器中的Tab(开一个tab,跟建一个page概念相同),Tab或叫page打开以后,需要给一个URL,然后把这些个内容加载回来,然后在浏览器中就可以点击了,而在PhantomJs中,需要通过接口去模拟点击,要操作这个page,可以玩的花样很多,比如往这个page中注入一段JS,包含一个JS文件,修改DOM的内容,提交表单等等。page的evaluate方法一定程度上,可以看做是