如何从 Facebook 群组下载文件?

如何从 Facebook 群组下载文件?

我想下载我所属的 Facebook 群组中托管的文件。

我找不到任何相关的API,并且以下Quora 上的问题指向过时的扩展。

第一个挑战是点击查看更多以查看所有文件,然后逐个单击它们。有时在查看更多,AJAX加载卡住了,需要刷新整个页面重新开始。

如何实现这一点?

答案1

以下是我发现的步骤:

  1. 导航文件页面Facebook
  2. 使用开发者工具JS Console 运行以下代码(忽略红色停止符号):

    setInterval(function() { document.getElementsByClassName("uiMorePagerPrimary")[0].click(); }, 20000);
    

    脚本将点击查看更多每 20 秒按一次按钮,即使按钮卡住了。

  3. 当页面完全加载时,将所有链接提取到urls变量中。

    var urls = [];
    for (var i = document.links.length; i --> 0;) if (document.links[i].href.includes("download")) urls.push(document.links[i].href);
    

    来源:如何使用 JavaScript 获取网站中的所有 URL?

  4. console.log(urls)您也可以选择使用或打印链接console.table(urls)

  5. 通过运行将链接复制到剪贴板:copy(urls.join("\n"))然后粘贴到文本文件中。
  6. 来自网络标签开发者工具,选择一个请求并复制为 cURL(不是全部)。
  7. 通过对命令进行以下调整将其转换为wget(按照此邮政):

    • 更改curlwget(左侧第一根弦)。
    • 删除 URL(左边第二个字符串)。
    • 删除--compress参数。
    • 在所有地方都-H改为。--header
    • 添加-nc或者-c不重新下载现有文件。
    • 添加--content-disposition参数。
    • 通过添加以下内容指向包含列表的文本文件:-i list.txt

    注意:如果您是 Vim 用户,请运行set -o vi,键入命令,然后按Esc+ V,在 Vim 中编辑 shell 命令。

  8. 运行上述转换后的命令,开始下载文件。它应该看起来像:

    wget --header '...' --header '...' --content-disposition -c -i list.txt 
    

相关内容