Facebook下载总结
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下载总结的更多相关文章
- 微软、谷歌、亚马逊、Facebook等硅谷大厂91个开源软件盘点(附下载地址)
开源软件中有大量专家构建的代码,大大节省了开发人员的时间和成本,热衷于开源的大厂们总是能够带给我们新的惊喜.2016年9月GitHub报告显示,GitHub已经有超过 520 万的用户和超 30 万的 ...
- PayPal高级工程总监:读完这100篇论文 就能成大数据高手(附论文下载)
100 open source Big Data architecture papers for data professionals. 读完这100篇论文 就能成大数据高手 作者 白宁超 2016年 ...
- DarkTrack 4 Alien Version Released RAT 下载地址&视频教程
不废话,点我下载. 官方论坛:https://forum.darktrack.net 作者脸书:https://www.facebook.com/darktrackrat E安全报道:https:// ...
- SDK接入(1)之Android Facebook SDK接入
SDK接入(1)之Android Facebook SDK接入 由于游戏已上线,且处于维护阶段,所以有空写写各种SDK接入过程和遇到的问题,也当作一种工作总结.SDK接入主流分为这么几类,登录.支付. ...
- 如何访问facebook (转)
对于普通大众,访问facebook需要两个条件:1)使用代理 2)翻译网页内容.本文将介绍怎样安全高速地访问诸如facebook之类的国外网站,并提供相关软件下载. 工具/原料 chromeGAE软件 ...
- SDWebImage下载图片有时候无法成功显示出来
之前用下面的方法现在图片,有时候会出现图片没有下载成功显示: - (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)p ...
- Facebook 网络模拟工具 ATC部署及使用
废话引用: Facebook此前开源了增强网络流量控制工具 ATC,能利用WiFi网络模拟各种移动网络,测试智能手机和APP在不同国家地区和应用环境下的性能表现.ATC能够模拟2G.2.5G(Edge ...
- facebook darkforest围棋ai测试
0.darkforest说明 darkforest是facebook田渊栋博士开发的深度学习围棋程序,2016的uec cup得了第二名(http://jsb.cs.uec.ac.jp/~igo/en ...
- 浅谈 facebook .net sdk 应用
今天看了一篇非常好的文章,就放在这里与大家分享一下,顺便也给自己留一份.这段时间一直在学习MVC,另外如果大家有什么好的建议或者学习的地方,也请告知一下,谢谢. 这篇主要介绍如何应用facebook ...
随机推荐
- codevs1281 矩阵乘法 快速幂 !!!手写乘法取模!!! 练习struct的构造函数和成员函数
对于这道题目以及我的快速幂以及我的一节半晚自习我表示无力吐槽,, 首先矩阵乘法和快速幂没必要太多说吧,,嗯没必要,,我相信没必要,,实在做不出来写两个矩阵手推一下也就能理解矩阵的顺序了,要格外注意一些 ...
- Redis Java调用
Redis Java调用 package com.stono.redis; import redis.clients.jedis.Jedis; public class RedisJava { pub ...
- 一、奇妙插件Tampermonkey的简单安装教程
奇妙插件Tampermonkey的简单安装教程 1.下载 对于浏览器而言,一般的功能并不能满足"特殊用户的需求".这时候就须要插件来帮忙了.那么讲到插件的支持多又常见的浏览器必定要 ...
- mysql-高级语言语法
一.注释 从#字符到行尾 从'-- '序列到行尾.两个破折号之后至少要有一个空格符或制表符. 二.设置变量 用户变量的形式为@var_name,其中变量名varname可以有当前字符集的文字数字字符. ...
- Android5.0以上系统的移动网络开关
笔者近期遇到一个非常有意思的bug,贴出来和大家分享下. 那是一个温暖的早晨,阳光晒得人非常舒服.一封bug邮件像一片叶子飘到我的邮箱. 一番交流.笔者确认负责的Widget开关在Android5.0 ...
- IP address could not be resolved: Temporary failure in name resolution
今早发现mysql日志中有非常多例如以下的警告: 140724 18:41:25 [Warning] IP address '172.16.18.217' could not be resolved: ...
- vim 插件之supertab
supertab.vim 这个插件是用来把tab键作为只能补全的映射,当然,具体更能肯定不仅仅只是如此,等待以后发现吧 地址 http://github.com/ervandew/supertab h ...
- hdoj--2282--Chocolate(最小费用)
Chocolate Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- Automation testing tool comparison - UFT & CodedUITest
Ease of Use - Recording and Playback Functionality UFT provides 4 models to record a new test. Norma ...
- ui5 call view or method from another view
// call view or method from another view //# view call // var view2=sap.ui.jsview("ui5d.popup01 ...