此处的目标是,给定用户的Facebook个人资料网址,访问并打开个人资料页面。一些简单的python代码:
from urllib2 import urlopen
url = "http://www.facebook.com/username"
page = urlopen(url)
问题是,对于某些“用户名”,这会导致HTTP ERROR 404.我注意到只有在路径包含名称而不是“profile.php?id = XXX”格式时才会发生此错误。
请注意,我们这里只有url而不是用户ID。
更新: 对于一些“profile.php?id = XXX”和其他用户名格式也发生了这种情况。
答案 0 :(得分:1)
这是Facebook的隐私功能。用户可以隐藏其个人资料页面,以便只有登录的用户才能查看他们的页面。使用/profile.php?id=XXX
或/username
访问该网页没有任何区别。您必须登录才能查看HTML页面。
在您的上下文中,您必须首先登录有效的Facebook帐户才能请求该页面,并且您不应再收到404。
检查这一点的一种方法是在图API上,graph.facebook.com/USERNAME
如果它们有公共页面,将在生成的JSON中返回link
属性,并且在私有页面上将省略它。
答案 1 :(得分:0)
您是尝试在Web浏览器中打开页面还是访问页面生成的HTML源代码?
如果是后者,您是否考虑过使用Facebook Graph API来实现您正在做的任何事情?这将更快,API全部记录在案。此外,页面的HTML源可能会随时更改,而Graph API则不会。
修改强>
您可以使用Graph API而无需创建应用程序来获取用户ID,而是转到http://graph.facebook.com/username并解析JSON响应。然后,您可以使用http://www.facebook.com/profile.php?id=userId
访问配置文件HTML答案 2 :(得分:0)
并非每个Facebook帐户都可以作为FIRST.LAST访问,因此您无法可靠地执行此操作。
目前无法保证可以使用虚荣名称访问帐户。
答案 3 :(得分:0)
只要用户名存在,就可以正常工作。