PhantomJS はCookieをサポートしていますか? はいの場合、API の詳細はどこで確認できますか?
しばらく検索してもわかりません。
PhantomJS はCookieをサポートしていますか? はいの場合、API の詳細はどこで確認できますか?
しばらく検索してもわかりません。
はい、1.7以降、 Phantom には完全な Cookie 処理があり、デフォルトで有効になっています。Cookie は、プロセスの存続期間中保持されます。
Phantom の実行中に Cookie を保持したい場合は、永続的な Cookie を保存する場所を指定できるコマンドライン オプションがあります。cookies-file
--cookies-file=/path/to/cookies.txt
永続的な Cookie を保存するファイル名を指定します。
ページ スクリプトでは、通常のプロパティを使用できdocument.cookie
ます。Cookie:
ブラウザーと同様に、このプロパティはHTTP ヘッダーで送信されるものと同様の文字列を返します。
Phantom スクリプトでは、 objectpage.cookies
を返す経由でページの Cookie にアクセスできます (通常のオリジンの制限に従います) 。
を使用して、(すべてのドメインからの)すべてのCookieにアクセスすることもできますphantom.cookies
。
var page = require('webpage').create();
page.open('http://example.com', function (status) {
page.evaluate(function() {
document.cookie; // => "test=test-value;"
});
page.cookies; // => [{
// domain: "example.com",
// expires: "Wed, 08 Jan 2014 00:00:00 GMT"
// httponly: false,
// name: "test",
// path: "/",
// secure: false,
// value: "test-value"
// }]
phantom.cookies; // contains ALL cookies in Phantom's jar
});
Cookieを追加/編集/削除するには、オブジェクトまたは オブジェクトのaddCookie
、deleteCookie
、およびclearCookies
メソッドを使用します。WebPage
phantom
オブジェクトのメソッドを使用する場合WebPage
、ページに表示される Cookie のみを変更します。他のドメインへのアクセスはブロックされています。
ただし、phantom
の Cookie メソッドを使用すると、すべてのCookie にアクセスできます。 phantom.addCookie
ドメインを必要とし (ドメインWebPage.addCookie
を指定しない場合は現在のドメインと見なされます)、指定された名前に一致するすべてのCookieをphantom.deleteCookie
削除します。
それは、WebPage.addCookie()を介して行われます-ちなみに、これは私にも他の誰かにも機能しません。
代わりにこれを使用できます:
phantom.addCookie({
'name': 'mycookie',
'value': 'something really important',
'domain': 'example.com'
})
page.open('http://example.com/url/path/', function() {
console.log(page.cookies);
})
最近、セッション内で情報を採点しました。以下のように、ページ オブジェクトに Cookie を設定する必要があります (coffeescript):
@page.clearCookies()
@page.addCookie
'name' : "JSESSIONID"
'value' : "0000rN3YAlVAU0xdHkKc6BEzWj9:-1"
'domain' : 'some.domain.com'
'path' : '/'
まだ試していませんが、うまくいきません--cookies-file=/path/to/cookies.txt
か?
APIリファレンスの最初の項目です...