Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php&;在facebook页面上获取元素;卷曲_Php_Curl - Fatal编程技术网

使用php&;在facebook页面上获取元素;卷曲

使用php&;在facebook页面上获取元素;卷曲,php,curl,Php,Curl,我尝试过从一个名为proxy.php的文件中的公共facebook事件页面获取html元素: <?php header('Content-Type: text/html'); $ch = curl_init('http://www.facebook.com/pages/Revive/137584936302228?sk=events'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); echo curl_exec($ch); ?&

我尝试过从一个名为proxy.php的文件中的公共facebook事件页面获取html元素:

<?php
  header('Content-Type: text/html');
  $ch = curl_init('http://www.facebook.com/pages/Revive/137584936302228?sk=events');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  echo curl_exec($ch);
?>
但出于某种原因,这是行不通的。我怎样才能让它工作

谢谢


更新:这让我更接近了,但看看proxy.php的代码,页面上加载的不仅仅是一个div#pagelet_事件。不确定这是否有意义。我能找到的引用pagelet_事件的唯一方法是:

<script>big_pipe.onPageletArrive({"phase":3,"id":"pagelet_events","is_last":true,"css":["AJXaB","3cT\/s"],"resource_map":{"AJXaB":{"type":"css","src":"http:\/\/f.static.ak.fbcdn.net\/rsrc.php\/v1\/yO\/r\/qjFDIQwXiny.css"}},"content":{"pagelet_events":"\u003cdiv class=\"UIImageBlock clearfix fbxNullState\">\u003cimg class=\"UIImageBlock_Image UIImageBlock_SMALL_Image img\" src=\"http:\/\/c.static.ak.fbcdn.net\/rsrc.php\/v1\/y9\/r\/56JC9tUWl0q.png\" alt=\"\" width=\"32\" height=\"32\" \/>\u003cdiv class=\"UIImageBlock_Content UIImageBlock_SMALL_Content\">\u003cp>You have no upcoming events.\u003c\/p>\u003c\/div>\u003c\/div>"},"tti_phase":3});</script>   
big\u pipe.onpageletarrival({“阶段”:3,“id”:“pagelet\u事件”,“is\u last”:true,“css”:[“AJXaB”,“3cT\/s”],“resource\u映射”:{“AJXaB”:“{”type:“css”,“src”:“http:\/\/f.static.ak.fbcdn.net\/rsrc.php\/v1\/yO\/r\/qjfdiqwqwqnxin.css”}”,内容:{“pagelet\cdu事件”:“\u003cdiv class=“ui003state=”clearxfix=“fix”UIImageBlock\u Image UIImageBlock\u SMALL\u Image img\'src=\'http:\/\/c.static.ak.fbcdn.net\/rsrc.php\/v1\/y9\/r\/56JC9tUWl0q.png\'alt=\'“width=\'32\”height=\\\/>\u003cdiv class=\'UIImageBlock内容UIImageBlock\u SMALL内容\>\ucp>您没有即将发生的事件。\u003c\/p>\u003c\/div003c\/div003c\\”\u003c>\u0033);
你知道我是否可以提取这个脚本生成的内容吗


再次感谢

我认为Facebook会阻止任何来自(或看起来像来自)脚本/机器人的请求。您需要添加一个用户代理字符串,使其看起来像是一个真正的请求

我将您的代理脚本修改为这个,它可以工作(返回结果)


我认为Facebook会阻止任何来自(或看起来像来自)脚本/机器人的请求。您需要添加一个用户代理字符串,使其看起来像是一个真正的请求

我将您的代理脚本修改为这个,它可以工作(返回结果)


<script>big_pipe.onPageletArrive({"phase":3,"id":"pagelet_events","is_last":true,"css":["AJXaB","3cT\/s"],"resource_map":{"AJXaB":{"type":"css","src":"http:\/\/f.static.ak.fbcdn.net\/rsrc.php\/v1\/yO\/r\/qjFDIQwXiny.css"}},"content":{"pagelet_events":"\u003cdiv class=\"UIImageBlock clearfix fbxNullState\">\u003cimg class=\"UIImageBlock_Image UIImageBlock_SMALL_Image img\" src=\"http:\/\/c.static.ak.fbcdn.net\/rsrc.php\/v1\/y9\/r\/56JC9tUWl0q.png\" alt=\"\" width=\"32\" height=\"32\" \/>\u003cdiv class=\"UIImageBlock_Content UIImageBlock_SMALL_Content\">\u003cp>You have no upcoming events.\u003c\/p>\u003c\/div>\u003c\/div>"},"tti_phase":3});</script>   
<?php
  header('Content-Type: text/html');
  $ch = curl_init('http://www.facebook.com/pages/Revive/137584936302228?sk=events');
  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.1) Gecko/20061204 Firefox/2.0.0.1');
  echo curl_exec($ch);
?>