PHP:获取facebook喜欢的url
我正在尝试获取页面上喜欢的信息,因为我想按喜欢的人来排序我网站上的帖子。我决定通过抓取页面来完成,并将每个帖子id的类似内容存储在db中,然后我就可以使用db进行订购了。(我可以每小时或类似的时间运行这个“刮板”来更新结果) 我正在做以下工作:PHP:获取facebook喜欢的url,php,Php,我正在尝试获取页面上喜欢的信息,因为我想按喜欢的人来排序我网站上的帖子。我决定通过抓取页面来完成,并将每个帖子id的类似内容存储在db中,然后我就可以使用db进行订购了。(我可以每小时或类似的时间运行这个“刮板”来更新结果) 我正在做以下工作: $url = "http://www.mydomain.com"; $html = file_get_contents($url); $dom= new domDocument; $dom->loadHTML($html); 我得到了以下
$url = "http://www.mydomain.com";
$html = file_get_contents($url);
$dom= new domDocument;
$dom->loadHTML($html);
我得到了以下错误:
Notice: DOMDocument::loadHTML() [domdocument.loadhtml]: Namespace prefix fb is not defined in Entity, line: 36 in C:\xampp\htdocs\page.php on line 13
Warning: DOMDocument::loadHTML() [domdocument.loadhtml]: Tag fb:like invalid in Entity, line: 36 in C:\xampp\htdocs\page.php on line 13
不知怎的,喜欢的东西没有显示出来?如果我这样做:
$url = "http://www.mydomain.com";
$html = file_get_contents($url);
echo $html;
preg_match_all(
'/<div id="LikePluginPagelet".*?>.*?<\/div>/s',
$html,
$posts,
PREG_SET_ORDER
);
print_r($posts)
https://graph.facebook.com/?ids=<URL>
$url=”http://www.mydomain.com";
$html=文件内容($url);
echo$html;
预赛(
“/.*?/s”,
$html,
$posts,
预设定顺序
);
打印(员额)
第一个“echo”实际上显示了整个页面,但随后的打印只显示Array()
有没有可能有些东西不能通过php抓取?以下是一个示例页面:
您可以看到,在like所在的位置和like的数量,div的id为'LikePluginPagelet',但PHP无法获取其中的内容
更新:
你能通过抓取页面来编写代码,从这里获得500万个喜欢的人吗?或者任何其他包含许多类似内容的页面,如果我可以得到,我也可以在代码中使用它
谢谢 我认为您应该签出我认为您应该签出您在通过文件内容获取的html副本中找不到这些元素(如框),因为这些元素是用javascript创建的。因此,您需要页面的最终DOM才能以这种方式获得计数。不幸的是,对于PHP,这是不可能的 不过,你可以做的是收集所有有问题的URL,并根据Facebook API运行它们——你会很容易得到喜欢的东西,即使不需要任何访问令牌/等等。 请求如下所示:
$url = "http://www.mydomain.com";
$html = file_get_contents($url);
echo $html;
preg_match_all(
'/<div id="LikePluginPagelet".*?>.*?<\/div>/s',
$html,
$posts,
PREG_SET_ORDER
);
print_r($posts)
https://graph.facebook.com/?ids=<URL>
https://graph.facebook.com/?ids=
在使用文件内容获取的html副本中找不到这些元素(如框),因为这些元素是用javascript创建的。因此,您需要页面的最终DOM才能以这种方式获得计数。不幸的是,对于PHP,这是不可能的
不过,你可以做的是收集所有有问题的URL,并根据Facebook API运行它们——你会很容易得到喜欢的东西,即使不需要任何访问令牌/等等。
请求如下所示:
$url = "http://www.mydomain.com";
$html = file_get_contents($url);
echo $html;
preg_match_all(
'/<div id="LikePluginPagelet".*?>.*?<\/div>/s',
$html,
$posts,
PREG_SET_ORDER
);
print_r($posts)
https://graph.facebook.com/?ids=<URL>
https://graph.facebook.com/?ids=