我正在从facebook页面上抓取数据,查看墙上的帖子,这是网址:
http://www.facebook.com/GMHTheBook?v=wall&ref=ts#!/GMHTheBook?v=wall&ref=ts
我成功地用卷发刮了所有可见的墙柱。
问题:
在可见墙帖子的末尾,有旧的Posts链接,一旦单击该链接,就会显示更多的墙壁帖子。现在,我如何手动单击链接的,以显示更多的墙壁帖子,以及废弃这些帖子呢?
有什么解决办法吗?我使用卷发,但我希望有什么解决办法来处理这种情况吗?
更新:
现在我使用这段代码获取所有数据,查找下一个链接并获取该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也被设置为on。脚本中有什么问题吗?或者我可能没有以正确的方式进行递归?有什么解决办法/替代办法吗?
发布于 2010-08-28 21:44:37
您应该使用Graph。您正在抓取的数据可用JSON格式在
并包含用于获取上一页或下一页的链接,例如分页。
示例:
$data = json_decode(file_get_contents(($url)));
foreach($data->data as $post) {
echo $post->from->name, ': ',
$post->message,
PHP_EOL;
}以上将输出墙上的所有帖子。用于分页操作
echo $data->paging->previous;
echo $data->paging->next;这将输出两个URL。你要做的就是再装一次。
发布于 2010-08-28 20:57:50
按钮/链接可能启动一个XMLHttpRequest,所以查看您的浏览器中的firebug/developer控制台/您使用的是什么,查看它请求的是什么url,以及使用什么headers等等。那么使用cURL执行相同的请求就可以了吗?
发布于 2010-08-29 01:22:40
http://www.facebook.com/ajax/stream/profile.php?__a=1&profile_id=139878432710216&viewer_id=(your facebook id)&filter=1&max_time=1283023194&_log_clicktype=Filter%20Stories%20or%20Pagination&ajax_log=1它是通过ajax加载的。还需要计算出这些变量。最大的时间可能是从哪一点来展示帖子。
好的,上面的链接可以更短(相同的输出).
http://www.facebook.com/ajax/stream/profile.php?__a=1&profile_id=139878432710216&max_time=1283023194https://stackoverflow.com/questions/3592421
复制相似问题