2010-06-13 65 views
2

我有一個腳本,從Facebook頁面中提取信息。使用opengraph不可用的信息,但這是我的客戶爲其頁面請求的內容。cURL Cookies和Facebook

無論如何,有什麼辦法可以在cURL腳本中使用瀏覽器中的cookies?

此刻,當你運行它要求你登錄腳本,但我已經登錄到Facebook上的那一刻和腳本仍然要求我登錄。

有沒有辦法使用來自瀏覽器的cookies?

謝謝

回答

1

沒有,因爲從技術上講,你不應該能夠抓住他們。但是,您可以創建餅乾捲曲請求(這是我的一箇舊腳本的一個片段,它可能無法與Facebook的近期工作,100%的變量可能已經改變等)

$ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL, 'https://login.facebook.com/login.php'); 
     curl_setopt($ch, CURLOPT_POSTFIELDS,'email='.urlencode($email).'&pass='.urlencode($password)); 
     curl_setopt($ch, CURLOPT_POST, 1); 
     curl_setopt($ch, CURLOPT_HEADER, 0); 
     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
     curl_setopt($ch, CURLOPT_COOKIEJAR, "/app/my_cookies.txt"); 
     curl_setopt($ch, CURLOPT_COOKIEFILE, "/app/my_cookies.txt"); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3"); 
     curl_exec($ch); 

一旦儲存餅乾,你可以改變網址並從那裏開始。

+0

因此,它是不可能做我想要做什麼? – 2010-06-13 15:24:03

+0

沒有強迫用戶通過腳本再次登錄並自己獲取cookie,是的。 無論您是否可以保持足夠的數據安全來存儲cookie,即使是臨時存儲在您的服務器上,我也會向您保證。 – 2010-06-13 15:26:57

2

嘗試使用:

curl_setopt($ch, CURLOPT_COOKIE, 'COOKIENAME=COOKIEVALUE;COOKINAME2=COOKIEVALUE2'); 

你得到的cookie名稱和值的方法是給你。

有關選項CURLOPT_COOKIE這是什麼PHP.NET說一下:

CURLOPT_COOKIE的 的內容「的Cookie:」頭在 HTTP請求中被使用。請注意,多個 cookie與後面加一個空格分號分隔 (例如, 「水果=蘋果;的color = red」)

+0

如果他只是發送隨機cookies,那會起作用,但他想要做的是通過瀏覽器從另一個網站獲取cookie的值。 這是不允許的,除非他利用安全漏洞。 – 2010-06-13 15:45:25