Facebook是美国的一个社交网络服务网站,至今注册用户已超越20亿,月活用户更是惊人的突破3亿。

这样庞大的一个社交类网站,每日产生的社交数据当然也是非常可观,而这些社交数据,更接近口语,所以是比较好的一些英文语料数据。

然而,面对这样好的一个语料来源,它的下载难度也是超越了我的预期。

起初,因为使用facebook需要FQ的原因,我们放弃了从app端解析数据的方式。

因为这种方式需要手机app端和电脑连接在同一个网络下,并且手机端需要设置代理为电脑ip。然而经过测试,这样设置以后手机端不能正常FQ,这个问题有待进一步解决。

除了app端,这边便打算通过网页端直接去获取数据。

分析发现,通过https://www.facebook.com/profile.php?id=5这种形式的链接可以直接跳转到用户的主页,https://www.facebook.com/ChrisHughes

主页下面有以下信息

点击左边框内的链接,可以获得以下语料数据,右边框内则是该用户的一些关联用户。

这样一来,我们便有了第一个版本的下载策略。

通过遍历用户id的方式,访问到用户的主页下,然后根据用户的一些关联信息获取一些名人和营销帐号下的帖子信息以及该用户关联的用户信息。

这样一来,就能形成一个循环下载,循环中我们能够不断的扩充自己的facebook用户数据和帖子数据。

于是,通过这种方式,我们编写好了初步的下载程序,实际一下载,傻眼了。

facebook会封ip,就是出现验证码来需要输入,类似以下这样的:

显然,这样的验证码,我们这边暂时还解决不了。

既然解决不了验证码,那只能选择放弃被封ip,启用新的ip方法。

这边估算是平均一个ip只能下载1Mb左右的语料数据,然后就会被封,这样一来,如果需要每天下载1g数据的话就需要1000多个ip。

虽然目前我们这边有代理ip库,但因为是免费的,所以稳定性和可用性都还是比较差的。

再加上Facebook需要FQ的缘故,经过测试,实际可用的代理ip只有不到5个,显然,这样肯定行不通。

经过讨论,这边想通过使用付费代理的方式来提高ip的可用性,想着付费的ip应该会好很多把。

然后,经过两天的查找,得到的回答几乎是一样的,能够FQ的ip是没有的。

好奇,自己这边使用的免费收集的代理都有能用的,收费的怎么会没有呢。

经过考虑,认为国外的ip应该是可以实现FQ的,但是估计实际的FQ可用率不太高。

于是这边购买了一些网站的代理ip来实际测试,发现果然如此,实际的可用率比我们这边的免费代理高的不多,也就维持在10个左右,但是稳定性确实比我们的高。

这样一来,每天的下载速度也就10Mb左右,这样肯定是不行的。

(备注:这里发现并不是贵的代理质量就比较好,测试发现http://www.66ip.cn/和http://www.daxiangdaili.com/这两家还是比较好用的,也比较便宜。当然这边测试的是能够用来FQ的ip,可能具体使用时需要具体分析把)

通过网页直接获取数据的方式行不通,因此,这种方式只能选择放弃。

因此,现在只剩下最后一种方式,通过facebook官方提供的api来获取。

这种方式其实之前也尝试过,但是发现api需要一些用户信息,而且只能看关注的用户信息,所以当时就没有继续深究下去。

但是现在一想,比起其他的方式一天只能获取10MB左右的数据,api的方式肯定会多一点(因为实在是没什么别的办法了)。

花了一天时间,好好的看了一下facebook的api,https://developers.facebook.com/docs/graph-api/reference/

找到了一些可用的api接口:

https://graph.facebook.com/v2.9/{用户id}/feed?access_token={开发者access_token}   获取用户发的帖子,通过此接口得到语料数据

https://graph.facebook.com/v2.9/{用户id}/likes?access_token={开发者access_token}   获取用户感兴趣的人,通过此接口得到关联用户

https://graph.facebook.com/v2.9/{用户id}/comments?access_token={开发者access_token}   获取用户帖子的评论,通过此接口得到具体某一个帖子的评论,也就是语料数据

想到的下载策略是:先找一个用户,然后通过关联用户接口获取第一批用户,再通过用户id循环获取用户的帖子和关联的用户即可实现下载。

因此这里的重点就是开发者access_token,这个可以通过注册开发者来获取,因此这里就不在赘述了。

以上,就是此次facebook下载的一些总结和记录。

Facebook下载总结的更多相关文章

  1. 微软、谷歌、亚马逊、Facebook等硅谷大厂91个开源软件盘点(附下载地址)

    开源软件中有大量专家构建的代码,大大节省了开发人员的时间和成本,热衷于开源的大厂们总是能够带给我们新的惊喜.2016年9月GitHub报告显示,GitHub已经有超过 520 万的用户和超 30 万的 ...

  2. PayPal高级工程总监:读完这100篇论文 就能成大数据高手(附论文下载)

    100 open source Big Data architecture papers for data professionals. 读完这100篇论文 就能成大数据高手 作者 白宁超 2016年 ...

  3. DarkTrack 4 Alien Version Released RAT 下载地址&视频教程

    不废话,点我下载. 官方论坛:https://forum.darktrack.net 作者脸书:https://www.facebook.com/darktrackrat E安全报道:https:// ...

  4. SDK接入(1)之Android Facebook SDK接入

    SDK接入(1)之Android Facebook SDK接入 由于游戏已上线,且处于维护阶段,所以有空写写各种SDK接入过程和遇到的问题,也当作一种工作总结.SDK接入主流分为这么几类,登录.支付. ...

  5. 如何访问facebook (转)

    对于普通大众,访问facebook需要两个条件:1)使用代理 2)翻译网页内容.本文将介绍怎样安全高速地访问诸如facebook之类的国外网站,并提供相关软件下载. 工具/原料 chromeGAE软件 ...

  6. SDWebImage下载图片有时候无法成功显示出来

    之前用下面的方法现在图片,有时候会出现图片没有下载成功显示: - (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)p ...

  7. Facebook 网络模拟工具 ATC部署及使用

    废话引用: Facebook此前开源了增强网络流量控制工具 ATC,能利用WiFi网络模拟各种移动网络,测试智能手机和APP在不同国家地区和应用环境下的性能表现.ATC能够模拟2G.2.5G(Edge ...

  8. facebook darkforest围棋ai测试

    0.darkforest说明 darkforest是facebook田渊栋博士开发的深度学习围棋程序,2016的uec cup得了第二名(http://jsb.cs.uec.ac.jp/~igo/en ...

  9. 浅谈 facebook .net sdk 应用

    今天看了一篇非常好的文章,就放在这里与大家分享一下,顺便也给自己留一份.这段时间一直在学习MVC,另外如果大家有什么好的建议或者学习的地方,也请告知一下,谢谢. 这篇主要介绍如何应用facebook ...

随机推荐

  1. [PYTHON]一个简单的单元測试框架

    近期尝试了一下TDD(測试驱动)的模式.感觉效果不错.在此总结一下,同学们假设有更好的办法,一定要告诉我:) 1. 每一个功能模块(文件),配一个单元測试模块. 以手头这个项目为样例:有LogCat. ...

  2. bzoj1050【HAOI2006】旅行comf

    1050: [HAOI2006]旅行comf Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 2205  Solved: 1174 [Submit][ ...

  3. android自己定义圆盘时钟

    自己定义圆盘时钟的大概流程:由于圆盘时钟的圆盘是不须要动的,所以不必要加在自己定义的view里面,在view里面仅仅须要绘制秒针和分针时针并控其转动就可以. 下面就是自己定义view的主要代码: pa ...

  4. Web端本地存储

    1.需求背景:当用户在页面上添加一行一行的数据时,突然发现网络断掉了,页面上编辑的数据没法保存进数据库,所以需要一个本地端的临时保存功能,以便在网络通畅后重新加载出来! 2.解决方案: 结合网上搜刮, ...

  5. hdu_2871

    #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #i ...

  6. vim 插件之vim-trailing-whitespace

    vim-trailing-whitespace 这个插件是快速去掉文章行末的空格 地址 http://github.com/bronson/vim-trailing-whitespace 如果你想要使 ...

  7. bzoj1211: [HNOI2004]树的计数(prufer序列+组合数学)

    1211: [HNOI2004]树的计数 题目:传送门 题解: 今天刚学prufer序列,先打几道简单题 首先我们知道prufer序列和一颗无根树是一一对应的,那么对于任意一个节点,假设这个节点的度数 ...

  8. 一站式学习WireShark

    一 基础 http://blog.sina.com.cn/s/blog_987e00020102x5k1.html 选中一个数据包,右键选中某一个数据包,然后follow-->Tcp Strea ...

  9. 18.查询效率最高的unordered_map

    #include <string> #include <iostream> //查询性能最高 //增删查改与map是一样的,但是本质区别就是unordered_map底层是ha ...

  10. word/excel/ppt 2 PDF

    PHP 实现 word/excel/ppt 转换为 PDF 一般最常见的就是利用OpenOffice来转换,来看看实现的核心代码: class PDFConverter { private $com; ...