【发布时间】:2010-08-28 20:54:26
【问题描述】:
我正在从 facebook 页面抓取墙上帖子的数据,这是网址:
http://www.facebook.com/GMHTheBook?v=wall&ref=ts#!/GMHTheBook?v=wall&ref=ts
我使用 CURL 成功刮掉了所有可见的墙贴。
问题:
在可见墙帖的末尾,有一个旧帖链接,一旦您点击该链接,就会显示更多墙帖。现在,我该如何手动单击该链接以显示更多墙帖并同时删除这些帖子?
使用任何方法的任何解决方案?虽然我正在使用 CURL,但我希望有任何解决方案来处理这种情况?
更新:
现在我正在使用此代码获取所有数据,找到下一个链接并获取该 url 的数据等等,这里是代码:
ini_set('display_errors', true);
error_reporting(E_ALL);
$data = json_decode(file_get_contents(($url)), true);
$names = array();
$stories = array();
foreach($data['data'] as $post)
{
$names[] = $post['from']['name'];
$stories[] = $post['message'];
}
$url = $data['paging']['next'];
// this is meant to scrap data recurssively from the next links
while($url !== '')
{
$url = $data['paging']['next'];
$data = json_decode(file_get_contents(($url)), true);
foreach($data['data'] as $post)
{
$names[] = $post['from']['name'];
$stories[] = $post['message'];
}
$url = urldecode($data['paging']['next']);
echo $url . '<br />';
}
for($j = 0; $j < count($names); $j++)
{
$data .= $names[$j] . '|' . $stories[$j] . "\n";
}
$h = fopen("data.txt", "a+");
fwrite($h, $data);
fclose($h);
但问题是脚本继续运行,根本没有输出,也没有创建文件。我也将脚本时间设置设置为更高的值。 allow_url_fopen 也设置为开启。脚本中是否有任何问题,或者我可能没有以正确的方式进行递归?任何解决方案/替代方案?
【问题讨论】:
-
不使用fb api有什么原因吗?
-
Facebook 没有 API 吗?
标签: php facebook screen-scraping web-scraping