【Python】URLのFacebookでのいいね!数を返す
説明
“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を返すようにしている。
参考にしたサイト
関連記事
-
-
【さくらのレンタルサーバ】さくらのレンタルサーバにpipをインストール
必要な環境 ・スタンダード以上のプラン 前提 ・サーバーにSSH接続出来ている →SS
- PREV
- 【Excel】VBAの雑多なTips
- NEXT
- 【IE】タイトルバーが文字化けしている時の対処法
Comment
記事ありがとうございます。
pythonはじめて一ヶ月たちました。
私は現在likes数を取得するプログラミングをかいています。
記事の通りにやってみました。エラーは起きませんでしたが、イイね数も表示されず、困っております。
どのようにしたら表示されるのでしょうか
あひるさん
コードを確認した訳ではないのではっきりとは分かりませんが、恐らく何も表示されないのは、
print facebookLikes(“http://www.google.com”)
の様な記述がmainに無いからでは無いでしょうか?
また、改めて私自身でコードを実行してみたところ、facebook側の仕様が変更になったのか不明ですがエラーとなってしまったので、コードを修正しました(^_^;)