2016-09-07 2 views
0

Привет, я хочу спросить, можно ли установить cookie для внешнего домена с помощью PhantomJS? Я попытался ниже код ..Как установить cookie на внешний домен с помощью PhantomJS

var webPage = require('webpage'); 
var page = webPage.create(); 
page.settings.javascriptEnabled = true; 
page.settings.userAgent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'; 


phantom.addCookie({ 
    'name'  : 'ps_idssss', /* required property */ 
    'value' : '123123', /* required property */ 
    'domain' : 'casperjs.org', 
    'path'  : '/',    /* required property */ 
    'expires' : (new Date()).getTime() + (1000 * 60 * 60) /* <-- expires in 1 hour */ 
}); 

page.open('http://casperjs.org', function (status) { 

    console.log(page.cookies[0].name); 
    phantom.exit(); 
}); 

Я выполнил его с помощью PHP

<?php 

$output = shell_exec('phantomjs cookie-js --cookies-file=~/phantomjs/cookies.txt'); 


echo $output   //outputs ps_idssss 

?> 

IT успешно выводит печенье, но когда я посетил http://casperjs.org, он никогда не спасал любое печенье. Пожалуйста, помогите

ответ

2

Это не будет работать из-за неправильного порядка аргументов. Имя скрипта должно быть последним аргументом.

$output = shell_exec('phantomjs --cookies-file=~/phantomjs/cookies.txt cookie-js'); 
+0

Привет, спасибо! Я выполнил вашу инструкцию выше, и файл cookie.txt теперь уже имеет файлы cookie, однако, когда я посетил http://casperjs.org, у него все еще нет файлов cookie, что я делаю. Что мне делать? Пожалуйста, помогите .. –

+0

Я пробовал ваш скрипт в консоли, и он работал правильно. Убедитесь, что команда выполнена. Что такое переменная $ output? Должно быть 'ps_idssss'. – Vaviloff

+0

Вы пробовали посетить casperjs.org и проверить файлы cookie, если они были сохранены? –

Смежные вопросы