2012-03-07 3 views
2

私はデータマイニングを学ぶ学生です。そして私はトラブルに直面しています。Facebookからのユーザーの関心データをクロールしたい

私の分析では、ユーザーの個人的関心事やお気に入りの映画、音楽などをクロールしようとしましたが、実際の名前や機密データは必要ありませんが、各ユーザーの許可を得る必要があるようですこれらの情報を得ることができる。私はFacebookのサーフィンでアクセスできるので簡単に得ることができると思っていました。

だから私が聞きたいことはある:私は自分の権限を持つことなく、ユーザの関心情報を取得するため

  1. ことは可能ですか?

  2. これらのデータをクロールするのにFQLを使用する必要がありますか?私は正しい方法を考えていますか?私はFacebookによって与えられたマニュアルを読んでいる。しかし、私はそれほど英語の読者ではないので、100%の理解度はありません。

このひどい英語を読んでいただきありがとうございます。私はあなたからいくつかのヒントを得たいと思います。

ありがとうございます! :)

答えて

2

Facebookでは、あなたのアプリケーションとその友人に関するデータ(例:友人の友達ではない)に関するデータにアクセスできます。

ユーザがアプリケーションを承認すると、あなたは、彼が公開して、他のデータ(ID、名前、性別のように)彼の基本的な情報にアクセスすることができます。 これ以上のことがあれば、ユーザーがアクセス権を持つことができれば、ユーザーからのさまざまなアクセス許可を求める必要があります。

また、友だちの許可についてアプリのユーザーから聞いてもらえます。もしあなたがそれらを許可すると、友達のデータについてもfacebookに問い合わせることができます。

あなたがアクセスできるとあなたが依頼する必要がある権限を参照しpermissions documentationをチェックしてください。

FQLを使用してFacebookからデータを抽出できますが、Graph API(または具体的にはUser object)を使用することもできます。あなたはもちろんのことのためにuser_interest許可を取得する必要があります

https://graph.facebook.com/me/interests

..

: たとえば、あなただけにHTTPリクエストを発行してログインしているユーザーの利益を得るために

私は、テストグラフAPI呼び出し(またはイベントFQLのもの)IE用Graph Api Explorerを使用することをお勧め:User Interests Example

+0

感謝!!私が知りたかったのは、ユーザーから許可を得る必要があるかどうかということでした。そして私に必要なことを知らせるあなたの答え。ご回答有難うございます。しかし、ユーザーの許可なく情報を得るために他の方法を知っている人がいる場合は、私は彼の考えを分かち合うなら、私は喜ぶでしょう。 – FoolyCooly

+0

あなたは* privacy *についての話を知っていますか?あなたがFacebookのグラフAPIを通じてユーザーに関する情報にアクセスできるのであれば、プライバシーはありません。 [here](https://developers.facebook.com/docs/reference/api/)を読むことができます:「Graph APIを使用すると、オブジェクトに関するすべての公開情報に簡単にアクセスできます。ユーザーに関する追加情報を取得するには最初に彼らの許可を得なければなりません。 - だから、あなたが誰かが来るのを待って、別のことを言うことができますが、それは起こりません。 –

+0

私は「プライバシー」の概念を知っています。しかし、私はFacebookブローワーを通じてこれらの情報に簡単にアクセスできるので、それが可能であると思っていました。 ご協力いただきありがとうございます! – FoolyCooly

1

理論的にはできますが、難しいです。たとえば、ブラウザー(例えば、Pythonで機械化)を使用して閲覧活動をシミュレートしたり、訪問しているウェブページを保存することができます。次に、いくつかのスクレイピングコードを使用して、必要な情報を抽出する必要があります。

次のmechanize(python)コードは、使い始めるのに役立ちます。あなたの答えのための

import mechanize 

br = mechanize.Browser(); 
br.addheaders = [('User-Agent', 'Firefox')]#Googlebot 
br.set_handle_equiv(False) 
br.set_handle_redirect(True) 
br.set_handle_robots(False) 
br._factory.is_html = True 

br.open('https://login.facebook.com/login.php') 
br.select_form(nr=0) 
br['email']='<your_email>' 
br['pass']='<your_password>' 
r = br.submit(); 

if r == None: 
    print 'Error logging into facebook. ' 
    sys.exit(); 

# Save the document to file. 
import os 
uid = '<your_user_id>' # for example abc.xyz 
dir = 'htmls/' 
try: 
    os.mkdir(dir); 
except: 
    pass 

timeline = open(dir + 'timeline.html', 'w') 
htmldoc = ''.join(br.open('https://www.facebook.com/' + uid).read()); 
timeline.write(htmldoc); 
# timeline.write(htmldoc.decode('utf-8', 'replace')) 
timeline.close() 

HTH、 Shumin

+0

これを大規模に行うと、私たちが掻き集めていることに気づき、ブロックするでしょうか? – Ja8zyjits

関連する問題