2009-11-03 75 views
-1

我正在構建一個web機器人登錄到我的網站上的一些帳戶,但其中一個網址正在從javascript發送cookie,而curl無法存儲它們。任何建議?捲曲不存儲餅乾

+0

自己解析javascript的缺點,我沒有看到有很多你可以做的事情。請記住,curl在PHP中運行,不會在返回的頁面中插入JavaScript。這聽起來像你已經進入了一個網站,無論是設計還是機會都不允許網絡機器人訪問。 – Tom 2009-11-03 18:08:51

回答

-1

curl不解析Javascript,因此cookies不會被設置。

+3

你的簡單性打擊了我。我知道,因爲我在這裏。如果可能,我要求提供解決方案。也許調用exec並從命令執行IE來存儲cookie並抓取它們。如果有人以前做過這個,請回復。 – 2009-11-03 18:11:05

1

您可以使用您使用的任何語言解析JavaScript文件,並查找document.cookie語句。然後,您可以使用此數據以curl手動設置cookie。 (CURLOPT_COOKIE)

如果你希望這可以與許多網站一起工作,這並不是最好的主意,但是既然你聲明你知道該網站,你需要加載它的可能性,我會對Javascript的外觀有所瞭解。

1

如果你有你的手自由幾個月的時間,你可以編譯webkitits javascript engine和修改cookie的設置功能,使其出口的餅乾stdout(然後用PHP的exec抓住他們)。祝你好運。考慮到你問這個問題與cURL的關係,我不認爲這是相當你的衚衕...

如果你絕望,我會去與克利的答案。您應該能夠對JavaScript進行反向工程,並查看Web應用程序如何設置Cookie的邏輯。如果它使用XHR進行身份驗證並返回登錄結果,請查看瀏覽器發送和接收的內容(使用Firebug)。在document.cookie行上添加斷點並觀察正在設置的cookie(以及它們設置的是什麼)。一旦您知道了身份驗證背後的準確邏輯,就可以使用cURL執行必要的幕後請求,以便在網站上攔截會話。