【问题标题】:Extract fan database from Facebook page从 Facebook 页面提取粉丝数据库
【发布时间】:2010-11-09 17:32:01
【问题描述】:

我正在尝试导出 Facebook 主页粉丝。

我找到的最近的是this article

它说:

从 Facebook 页面获取粉丝是 Facebook API 尚不支持。 幸运的是,Facebook Web 界面 使用简单的 AJAX/JSON 调用来提供 查看页面时的数据。查看页面时的数据。

他这样解释他的所作所为:

我释放这些数据的策略是 嗅探网络流量 Wireshark 工具,然后重放 HTTP 使用 ruby​​ 脚本调用。使用 ruby​​ 脚本调用。

我对 ruby​​ 一无所知,所以我开始尝试在其中一个 cmets 中留下一个 PHP 脚本,即:"Etienne Bley"

脚本类似于this

脚本说你可以下载Charles Proxy来找到这个变量:

$cookie
$node_id
$post_form_id
$fb_dtsg

当我使用 Charles Proxy Soft 并以管理员身份登录时,我得到以下信息:

从那里我猜到了 cookie 变量:

顺便说一句,共享整个 cookie 是否安全?有帮助吗? (如果是我会尽快编辑)

脚本还说:

// set settings in these 4 lines from results of charles when getting the 2nd page of "Get All Fans" in FB ( you need to be admin of fan page to do this )

我无法理解他的意思:getting the 2nd page

所以,我的问题:

1) 这个变量是什么?

2) 他们的价值观是什么?我应该/如何获得它们?

3) 正确设置此脚本是该脚本正常工作唯一需要的吗?

我希望问题足够清楚,如果没有,请提出您需要的任何问题!

提前致谢!

【问题讨论】:

    标签: php facebook csv extract facebook-page


    【解决方案1】:

    我不知道 Charles Proxy Soft,但我使用 Chrome 优秀的 Inspector 来跟踪请求。

    步骤:

    1. 使用 Chrome 导航到您感兴趣的 Facebook 主页
    2. 打开检查器(在 Windows 上为 CTRL+Shift+J),转到“资源”选项卡和“启用资源跟踪”。
    3. 在 Facebook 页面上,点击页面左侧粉丝框中的“查看全部”。
    4. 滚动到粉丝列表底部,点击“下一步”
    5. 在“资源”选项卡中,您将收到对/ajax/social_graph/fetch.php 的请求。单击它,然后在“标题”选项卡中,您将看到所需的内容。在我的例子中:

    我相信你可以用一百种不同的程序做到这一点,我发现使用 Chrome 更容易,因为它已经存在 :)

    【讨论】:

    • 我一定会试一试的!!接缝够简单!谢谢!!
    • 谢谢,我可以看到除了“Cookie:”之外的所有内容,只是不存在。我将它与我可以获得的 cookie 一起使用(使用其他软件)并得到了这个:警告:fopen(posh_fb_output.txt)[function.fopen]:无法打开流:/home/pimod/public_html/fanlist/fanlist 中的权限被拒绝.php 在第 61 行
    • @Trufa 这是您的网络服务器上的权限问题。您需要确保 php 可以写入您所在的目录(在这种情况下为fanlist)。如果您使用的是 FTP 客户端,请查找该文件夹的权限并为“组”和“其他”添加“写入”(如果权限为数字,则为 777)。如果您有控制台访问权限,请运行 chmod 777 /home/pimod/public_html/fanlist
    • 哦,没看到你评论,这就是我最终想通的,就是这样!非常感谢!像魅力一样工作!
    【解决方案2】:

    好吧,看来这一切都很简单。我建议您获取一份Fiddler 的副本以亲自检查此计划。

    我打开了一个粉丝页面,去查看粉丝,然后点击下一页。我看到了http://www.facebook.com/ajax/social_graph/fetch.php?__a=1 的 POST 请求。我得到的是一个非常好的 JSON 数组,包含所有的粉丝。

    如果我们检查发布的变量,就会发现......

    edge_type = fan
    page = 1
    limit = 100
    node_id = 123123123123123123123 (ID of the fan page I'm assuming)
    class = FanManager
    post_form_id = 97823498723498 (No idea, but I bet you can get this from the dialog)
    fb_dtsg = a1s3d5f (No idea)
    lsd = 
    post_form_id_source = AsyncRequest
    

    无论如何,您感兴趣的是页面和限制。我敢打赌,如果您将 page 设置为 0 并限制为 500 或其他任何内容,您将获得所需的内容。如果您无法可靠地更改限制,只需将其保留为 100 并保持递增页面。另外,我的 cookie 里面还有会话信息。我不知道您将如何从 PHP 中获取这些内容并进行发布,但我希望这能给您一些帮助。

    再次获取Fiddler,检查浏览页面时发生的情况。

    【讨论】:

      猜你喜欢
      • 2011-04-05
      • 2011-04-03
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 2013-04-26
      • 2011-11-25
      • 1970-01-01
      • 2012-01-25
      相关资源
      最近更新 更多