使用php&;在facebook页面上获取元素;卷曲
我尝试过从一个名为proxy.php的文件中的公共facebook事件页面获取html元素:使用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); ?&
<?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);
?>