6

我正在尝试使用“wget”获取用户的个人资料页面,但不断获得一个名为“browser.php”的非个人资料页面,该页面与该特定用户无关。我在浏览器中看到的个人资料页面的 URL 恰好是以下格式:

http://www.facebook.com/user-name

这就是我一直使用的 wget 命令的参数:

wget http://www.facebook.com/user-name

我也有兴趣使用 wget 来获取用户的朋友列表,但即使这样也给了我同样无益的结果(“browser.php”):

wget http://www.facebook.com/user-name?sk=friends&v=friends

有人可以告诉我我在这里做错了什么吗?换句话说,我是否错过了 wget 命令的一些关键选项,或者 wget 根本不适合这种情况?

任何帮助将不胜感激。

要为这个查询添加上下文,我需要弄清楚如何使用 wget 从 Facebook 获取这些页面,因为它会帮助我编写一个脚本/程序来从 HTML 源代码中查找朋友的个人资料 URL,然后查找其他一些关键字等。我基本上希望这将有助于我对我没有联系的人进行某种选择性抓取(当然是在 Facebook 的许可下)。

4

6 回答 6

2

首先,Facebook 可能创造了一个条件,即某些用户代理(例如 wget)无法抓取页面。所以他们将某些用户代理重定向到一个不同的页面,这可能会说“你的浏览器不受支持” 他们这样做是为了保护人们不做你正在做的事情。但是,您可以使用 wget 的参数告诉 wget 将自己标识为不同的代理-U(阅读 wget 手册页)。例如wget -U Mozilla http://....

其次,Facebook 的隐私设置很少允许您阅读任何/大量信息,除非您以用户身份登录,并且可能仅作为您尝试抓取的个人资料的朋友的用户登录。

第三,您需要使用Facebook API从 Facebook 抓取和提取信息——如果您尝试以任何其他方式获取信息,则可能违反了可接受使用政策。

于 2011-07-25T20:15:26.113 回答
1

如果您想保存登录页面,您可以使用 Firefox 登录并选择“让我保持登录”,然后将这些 cookie 复制到一个文件并与 cookiejar 选项一起使用。您仍然会有很多 WGET 不会保存的动态脚本加载内容。

有很多方法可以给这只猫剥皮。如果您需要提取特定项目,请查看 API。如果您只是想存档页面快照,就像它在 Web 浏览器中显示的那样,请尝试 CutyCapt。它很像 wget,除了它像网络浏览器那样解析整个文档并存储页面的图像。

于 2013-01-11T11:53:34.193 回答
1

我不知道您为什么要使用 wget ..facebook 提供了出色的 API。

wget --user-agent=Firefox http://www.facebook.com/markzuckerberg

会将公开可用的内容保存到文件中。

你应该考虑使用他们的 API。

脸书开发者

于 2011-07-25T20:18:05.107 回答
1

检查以下开源项目:

  • facebook-cli,它是一个与 Facebook API 交互的命令行实用程序。
  • facebook-friends它可以生成您所有 Facebook 朋友的 HTML 页面。
于 2019-01-15T17:28:21.707 回答
0

您可以轻松地重复使用 Firefox cookie 来登录,请参阅:

谁可以看到您的朋友列表是可配置的,因此如果有人将其配置为仅朋友,您将无法提取该信息。

我还建议使用移动网站,它使用分页而不是 AJAX 加载,并且 HTML 更简单、更小:https ://m.facebook.com/USER/friends?startindex=24

以下是(非常严格的)抓取条款:https ://www.facebook.com/apps/site_scraping_tos_terms.php

于 2016-05-26T13:41:35.783 回答
0

要使用 下载 Facebook 页面wget,您可以在 Web 浏览器中使用Chrome DevTools(也可以在 Firefox、Opera 和其他浏览器中使用)。

首先,您需要curl通过转到网络选项卡(如有必要,刷新页面或勾选保留日志)将其转换为命令,找到您感兴趣的页面(您可以过滤列表),右键单击请求/页面,然后选择复制作为卷曲。然后将命令粘贴到终端。

要从curlformat 转换为wget,请执行以下转换:

  • 删除--compress参数,
  • 在所有地方更改-H为。--header

还可以考虑添加以下wget参数:

  • -k或者--convert-links,转换文档中的链接,使其适合本地查看。
  • -p或者--page-requisites,下载正确显示页面所需的所有文件。

也可以看看:

于 2019-01-15T17:33:42.750 回答