35

PhantomJS はCookieをサポートしていますか? はいの場合、API の詳細はどこで確認できますか?

しばらく検索してもわかりません。

4

5 に答える 5

45

はい、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を追加/編集/削除するには、オブジェクトまたは オブジェクトのaddCookiedeleteCookie、およびclearCookiesメソッドを使用します。WebPagephantom

オブジェクトのメソッドを使用する場合WebPage、ページに表示される Cookie のみを変更します。他のドメインへのアクセスはブロックされています。

ただし、phantomの Cookie メソッドを使用すると、すべてのCookie にアクセスできます。 phantom.addCookieドメインを必要とし (ドメインWebPage.addCookieを指定しない場合は現在のドメインと見なされます)、指定された名前に一致するすべてのCookieをphantom.deleteCookie削除します。

于 2012-02-29T18:47:29.030 に答える
13

それは、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);
})
于 2013-09-13T11:49:19.390 に答える
0

最近、セッション内で情報を採点しました。以下のように、ページ オブジェクトに Cookie を設定する必要があります (coffeescript):

@page.clearCookies()
@page.addCookie
  'name'     : "JSESSIONID"
  'value'    : "0000rN3YAlVAU0xdHkKc6BEzWj9:-1"
  'domain'   : 'some.domain.com'
  'path'     : '/'
于 2014-07-23T06:22:25.427 に答える
0

まだ試していませんが、うまくいきません--cookies-file=/path/to/cookies.txtか?

APIリファレンスの最初の項目です...

于 2012-02-29T18:49:35.763 に答える