2011-03-04 4 views
0

すべてのCookieを取得するにはどうすればよいですか?cURLは、FireFoxより少ないクッキーを取得します!それを修正するには?

Firefoxがページを読み込んだときに別のCookieを取得するとか、ページが読み込まれた後にCookieが設定されているJavaScriptが組み込まれているか、他のページにリダイレクトされたり、カールが同じことをする方法を知っている。私はリダイレクトに従うようにカールを設定しましたが、まだ成功しません。カールはいくつかのクッキーを設定しますが、すべてを設定するわけではありません。

は、私はPHPで使うコードです:

$url = 'https://www.example.com'; 
$handle = curl_init($url); 
curl_setopt($handle, CURLOPT_COOKIESESSION, true); 
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($handle, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($handle, CURLOPT_COOKIEJAR, "cookies.txt"); 
curl_setopt($handle, CURLOPT_COOKIEFILE, "cookies.txt"); 
curl_setopt($handle, CURLOPT_AUTOREFERER, true); 
curl_setopt($handle, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)'); 
$htmlContent = curl_exec($handle); 

後FirefoxでライブHTTPヘッダーからである

https://www.example.com

GET /index.ext HTTP/1.1

ホスト:www.example.comユーザエージェント: Mozilla/5.0(Macintosh; U; Intel Mac OS X 10.6; en-US; RV:1.9.2.10) のGecko/20100914 Firefoxの/ 3.6.10

受け入れ: テキスト/ HTML、アプリケーション/ XHTML + xmlの、アプリケーション/ XML、Q = 0.9、/; Q = 0.8

受け入れ言語:EN-US、EN; Q = 0.5

受け入れエンコード:gzipで、収縮

のAccept-文字セットを: ISO-8859-1、UTF-8、Q = 0.7、*。 q = 0.7

キープアライブ: 115

接続:キープアライブ

クッキー: JSESSIONID = 3E85C5D0436D160D0623C085F68DC50E.catalog2。 __utma = 137925942.1883663033.1299196810.1299196810.1299198374.2; __utmz = 137925942.1299196810.1.1.utmcsr =(直接)| utmccn =(直接)| utmcmd =(なし); citrix_ns_id = 0pQdumY48kxToPcBPS/QQC + w2vAA1; __utmc = 137925942

HTTP/1.1 200 OK

日:金、2011年3月4日1時20分30秒GMT

サーバー:Apacheの/ 2.2.15

キープアライブ:タイムアウト= 5、最大= 100

接続:キープアライブ

転送 - エンコード:

チャンク

のContent-Type:text/htmlの;のcharset = UTF-8

私はカール

でJSESSIONIDを得る助けてください!

答えて

0

おそらくあなたがロードしているページには、実際にはクッキーを設定するいくつかの他のコンテンツがあり、あなたはそれらを取得しないか、またはJavaScriptを使用してクッキーを設定します。

0

CURLでFirefoxユーザーエージェントを使用して、同じ量のCookieがあるかどうかを確認してください。あなたがすべき。

+0

私はユーザーエージェントを設定しましたが、まだ動作します!私が使用するコードを表示するために質問を編集しました。 –

0

ネットワークスニファまたはプロキシを使用してリクエストとレスポンスを比較すると、違いがあります。見つからない場合は、ここにリクエストと回答を投稿してください。

ユーザエージェントをカール側で偽装してもうまくいかない場合は、ユーザエージェントを偽装するfirefox拡張機能をインストールし、反対にcurlが使用するものに設定してください。それがうまくいくならば、ネットワークのタイミングに依存するパッシブブラウザの指紋(lcamt​​ufのような)があるかもしれませんし、回避するのは難しいかもしれません。しかし、非常に驚​​くべきことでしょう!

0

私はそれを理解しました。実際にページがロードされた後にクッキーを設定するのはJavaScriptでした:) ありがとうございました

関連する問題