这是一个关于如何将cookie从一个casperjs页面持久存储到另一个页面的问题.
所以基本上我得到一个nodejs文件,它生成casperjs作为工作人员来完成某些任务..一个是登录,一旦登录我将cookie存储在一个文件中.
当我产生下一个casper worker时..我希望它使用cookie而不必再次登录..这两种方法都失败了:
第一:当我产生工人capserjs时,我添加了--cookies-file =./ cookiefilename ie
var child = spawn('casperjs',['scrape.js','--cookies-file=./'+cookieFileName]);
第二:在casperjs工作文件中..我让它读取并从文件中设置cookie即
var casper = require('casper').create();
var cookieFileName = 'monsterCookie.txt';
// grab cookies from file
var fs = require('fs');
var utils = require('utils');
var cookies = fs.read(cookieFileName);
casper.page.setCookies(cookies);
casper.start('domain/page.html', function() {
//FAIL! cookies aren't used here
this.debugHTML();
});
casper.run();
Run Code Online (Sandbox Code Playgroud)
笔记:
start从页面删除cookies吗?如果是这样我该怎么做呢?[一般]饼干="@变体(\ 0\0\0\0x7F部分\ 0\0\0\x16QList\0\0\0\0\X1\0\0\0 \n\0\0\0YCNTR = LB; expires = Tue,09-Apr-2013 17:12:05 GMT; domain = …
以下是我拥有的登录表单的hlml
<div class="login_area_user">
<form method="post" action="https://www.tradus.com/login?dest_url=https://www.tradus.com/cart/select-address" id="user-login">
<input type="hidden" value="1" name="form_submit">
<h3 style="display:inline-block;">Already a Member</h3>
<p id="login-main-center-right-descp">You can use tradus login id and password</p>
<div class="login-row">
<label class="colorBlack">Email / Login*</label>
<input class="login-field" type="text" name="name" id="edit-namepopup">
</div> <!-- [/login-row] -->
<div class="login-row">
<label>Password</label>
<input class="login-field" type="password" id="edit-passpopup" name="pass">
</div> <!-- [/login-row] -->
<div class="login-row">
<a class="forgotPassword" href="/forgot_password">Forgot your password?</a>
<!--input type="checkbox" name="remember" /><span>Remember me</span-->
</div>
<div class="login-row">
<input class="login-button" value="Login" type="submit">
</div>
<input type="hidden" name="op" value="Log in">
</form>
</div>
Run Code Online (Sandbox Code Playgroud)
我使用以下代码登录:
this.fill('form#user-login', …Run Code Online (Sandbox Code Playgroud) 我是phantomjs,Java脚本和WebScraping的新手.我想要做的是基本的http身份验证,然后访问另一个URL以获取一些信息.这就是我现在所拥有的.请告诉我我做错了什么.
var page = require('webpage').create();
var system = require('system');
page.onConsoleMessage = function(msg) {
console.log(msg);
};
page.onAlert = function(msg) {
console.log('alert!!>' + msg);
};
page.settings.userName = "foo";
page.settings.password = "bar";
page.open("http://localhost/login", function(status) {
console.log(status);
var retval = page.evaluate(function() {
return "test";
});
console.log(retval);
page.open("http://localhost/ticket/" + system.args[1], function(status) {
if ( status === "success" ) {
page.injectJs("jquery.min.js");
var k = page.evaluate(function () {
var a = $("div.description > h3 + p");
if (a.length == 2) {
console.log(a.slice(-1).text())
}
else {
console.log(a.slice(-2).text())
} …Run Code Online (Sandbox Code Playgroud) phantomjs ×3
casperjs ×2
javascript ×2
cookies ×1
fill ×1
jquery ×1
node.js ×1
session ×1
web-scraping ×1