2010-06-13 64 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