我想知道是否可以查询以下内容:
如果可能的话,基本上希望生成喜欢我的Facebook页面的用户的详细营销统计数据。欢迎任何建议或替代方案。
谢谢。
答案 0 :(得分:30)
我担心这可能不,请按此bug获取更多信息。
另一个证据是page_fan
表,您会注意到只有uid
字段是可编入索引的,因此您需要知道要搜索的用户ID,而不是{{ 1}},如您所知,如果用户“喜欢”一个页面,这意味着他是该页面的“粉丝”。
在积极使用Facebook API一段时间后,按照公告和API发布(以及弃用)以及政策的介绍和更改,我可以了解Facebook只会通过让他们明确这样做来共享有关其用户的信息(也称为交互/授权您的应用)。
因此,在没有这种功能的情况下,最好的办法是:
答案 1 :(得分:11)
好吧,没有人愿意打破Facebook的TOS,但他们已经将我们的手绑定在我们自己的基本数据上。因此,抓取是非法的,但不保存页面。我做了什么(并注意到我需要这个用于离线目的): 转到https://www.facebook.com/browse/?type=page_fans&page_id= {FAN PAGE ID} 向下滚动,直到你拥有所有粉丝。将此页面保存在本地计算机上,比如Facebook.html。 现在,使用ruby和nokogiri:
require 'nokogiri'
>true
f = File.open('/your_path/Facebook.html')
doc = Nokogiri::HTML.parse(f.read)
doc.xpath('//div[@class="fsl fwb fcb"]/a').each {|link| puts link.content}
答案 2 :(得分:6)
图搜索是否喜欢这样:“喜欢[您的粉丝名称]的人”。你将全部结果。
然后使用此javascripts代码在浏览器上创建快捷方式,它将点击查看更多链接并滚动,直到所有结果显示在页面中:
javascript: i = 0;minutes = 30;counter = minutes * 60;function repeatScroll() {
if (i < counter) {window.scrollTo(0, document.body.scrollHeight);i++;}
setTimeout(repeatScroll, 1000);}repeatScroll();
之后,创建其他快捷方式并运行此js代码以从搜索结果中检索所有UID:
javascript:var txt="";e=document.getElementsByClassName("FriendRequestOutgoing");
for(var i=0; i<e.length; i++) {v=e[i].getAttribute("data-profileid");
if(v) txt+=v+"\n"}document.body.innerHTML="<textarea>"+txt+"</textarea>";
屏幕上会出现一个textarea框,里面有所有uid。只需将其复制到您的记事本中,然后导入Facebook广告管理系统中的自定义受众群体。
我每天创建并使用此代码来获取所有需要的标准UID。 您可以启动所需的任何图表搜索。 这是自制代码,因此使用它而不负责:)
享受他们。
答案 3 :(得分:5)
这是可能的,只是不再使用FQL了。
执行https://www.facebook.com/browse/?type=page_fans&page_id= {FAN PAGE ID}的GET并清除用户。
中提琴。
答案 4 :(得分:2)
现在,您可以使用此链接获取您网页上的人,或者点击“设置”按钮,而不是左侧边栏上的人员。 https://www.facebook.com/[PAGENAME]/settings/?tab=people_and_other_pages
如果您想获取用户的所有照片,请按F12并将这些代码添加到控制台:
javascript:i=0;minutes=30;counter=minutes*60;function repeatScroll(){if(i<counter){window.scrollTo(0, document.body.scrollHeight);i++;}setTimeout(repeatScroll,1000);}repeatScroll();
,当你到达页面底部时:
javascript:var txt="";e=document.getElementsByClassName("img"); for(var i=0; i<e.length; i++) {v=e[i].getAttribute("src"); if(v) txt+="<img src='"+v+"'>\n"}document.body.innerHTML="<textarea>"+txt+"</textarea>";
要显示照片:创建HTML页面并首先将这些行插入该文件中:
<meta charset="utf-8">
<style>img { width:21px; margin:-1px; }</style>
<div style="width:851px; height:315px;background-color:white;">
<!-- PASTE HERE PHOTOS' CODE YOU GET -->
<span style="color:#3B5998;font-weight:bold;font-size:20px;margin-bottom:4px;">600 like, thank you!</span>
<!-- PASTE HERE PHOTOS' CODE YOU GET -->
</div>
答案 5 :(得分:0)
然后使用此javascript代码在浏览器上创建快捷方式,它将点击查看更多链接并滚动,直到所有结果显示在页面中:
i = 0;
minutes = 30;
counter = minutes * 60;
function repeatScroll() {
if (i < counter) {
window.scrollTo(0, document.body.scrollHeight);
i++;
}
setTimeout(repeatScroll, 1000);
}
repeatScroll();
之后,创建其他快捷方式并运行此js代码以从搜索结果中检索所有UID:
var e=document.getElementsByClassName("fsl fwb fcb");
var ids = [];
for(var i = 0 ; i < e.length; i++){
ids.push(JSON.parse(e[i].childNodes[0].getAttribute("data-gt")).engagement.eng_tid);
}
console.log(ids);
答案 6 :(得分:0)
加载所有列表
i = 0;
minutes = 30;
counter = minutes * 60;
function repeatScroll() {
if (i < counter) {
window.scrollTo(0, document.body.scrollHeight);
i++;
}
setTimeout(repeatScroll, 1000);
}
repeatScroll();
获取ID
var e=document.getElementsByClassName("_3cb8");
var ids = [];
for(var i = 0 ; i < e.length; i++){
ids.push(e[i].getAttribute("href"));
}
console.log(ids);
答案 7 :(得分:-8)
你可以使用facebook开放图表来获取它。
https://graph.facebook.com/<your-page-name-or-page-id>/likes
例如:
https://graph.facebook.com/chickfila/likes
您需要使用“id”发送图形api调用,以获取有关您喜欢页面的用户的更多详细信息。
但是,此调用将检索该页面(Chickfila)喜欢的其他Facebook对象,而不是那些喜欢Chickfila页面的用户。