*

【Python】URLのFacebookでのいいね!数を返す

公開日: : 最終更新日:2014/10/09 Python , , ,

説明

“http://graph.facebook.com/?id=”の後に、いいね!の数を調べたいurlを入れるとJSON形式で結果が帰ってくる。

例:
google.comのいいね!を調べてみる。
http://graph.facebook.com/?id=http://www.google.comをアドレスバーに入れて実行すると、

{
   "id": "http://www.google.com",
   "shares": 7170203,
   "comments": 752
}

と返ってくる。
この中の、”shares”がいいね!の数。
このいいね!を返す関数をpythonで組んでみた。

コード

import urllib, urllib2, json
def facebookLikes(url):
	# Facebookのいいね!の数をJSON形式で取得
	url = "http://graph.facebook.com/?id=" + url
	# UserAgentの情報を設定
	req = urllib2.Request(url, headers={'User-Agent' : "Magic Browser"})
	con = urllib2.urlopen(req)
	jsonload = con.read()
	facebookJson = json.loads(jsonload)
	# いいね!の数が0の場合、sharesのキーが無くなってしまい、エラーになるので、キーエラーの場合は0を返す
	try:
		return facebookJson["shares"]
	except KeyError:
		return 0

注意するのは、コメントにも書いてあるが、いいね!の数が0の場合、”shares”のキーが無くなってしまうので、KeyErrorになった場合は0を返すようにしている。

参考にしたサイト

  • http://hello-apis.blogspot.jp/2013/02/facebookapi.html
  • http://stackoverflow.com/questions/3336549/pythons-urllib2-why-do-i-get-error-403-when-i-urlopen-a-wikipedia-page
  • 関連記事

    python_logo_without_textsvg

    【さくらのレンタルサーバ】さくらのレンタルサーバにpipをインストール

    必要な環境 ・スタンダード以上のプラン 前提 ・サーバーにSSH接続出来ている  →SS

    記事を読む

    Comment

    1. あひる より:

      記事ありがとうございます。
      pythonはじめて一ヶ月たちました。
      私は現在likes数を取得するプログラミングをかいています。
      記事の通りにやってみました。エラーは起きませんでしたが、イイね数も表示されず、困っております。
      どのようにしたら表示されるのでしょうか

      • Zimb. より:

        あひるさん

        コードを確認した訳ではないのではっきりとは分かりませんが、恐らく何も表示されないのは、

        print facebookLikes(“http://www.google.com”)

        の様な記述がmainに無いからでは無いでしょうか?

        また、改めて私自身でコードを実行してみたところ、facebook側の仕様が変更になったのか不明ですがエラーとなってしまったので、コードを修正しました(^_^;)

    Message

    メールアドレスが公開されることはありません。

    次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

    small-icon.hover
    【機械学習】Stanford University Machine Learning / Week4【学習メモ】

    0.何の学習メモ? ・スタンフォード大学がCourseraをプラ

    small-icon.hover
    【機械学習】Stanford University Machine Learning / Week3【学習メモ】

    0.何の学習メモ? ・スタンフォード大学がCourseraをプラ

    small-icon.hover
    【機械学習】Stanford University Machine Learning / Week2【学習メモ】

    0.何の学習メモ? ・スタンフォード大学がCourseraをプラ

    small-icon.hover
    【機械学習】Stanford University Machine Learning / Week1【学習メモ】

    0.何の学習メモ? ・スタンフォード大学がCourseraをプラ

    ダウンロード
    【WebSocket】Safariからlocalhostに対してハンドシェイクする際の注意点

    この記事の対象者 とりあえずlocalhostで色々と試したい

    →もっと見る

    PAGE TOP ↑