任意のはてなブログのエントリーにスターをつけるプログラム書いた [python]
こんにちは、イルカです。
今日は会社から帰ってきて何かプログラムを書きたい気分だったので、
「自分のはてなアカウントから、任意のはてなブログのエントリーにスターをつける」 プログラムを書いてみました。
ご利用は自己責任で!
普段お世話になっている、楽しく読ませてもらっているブログ達の最新記事に一気にスターをつけたりする作業自動化に役立つかも。
とりあえず実行してみた
下に置いてあるプログラムの下部にある
# 自分のhatena_id hatena_id = "XXXXX" # 自分のはてなログインパスワード login_password = "XXXXX" # スターをつけたいエントリのURL entry_url = "http://iruca21.hateblo.jp/entry/2017/04/12/232302"
をそれぞれ変更して実行してください。
ためしに面白く読ませてもらったコチラの記事にスターをつけてみます。(笑)
www.cheer-up.info
上記の手順で 自分のはてなID, ログイン用パスワード、
そして entry_url = "http://www.cheer-up.info/entry/2017/04/13/084401"
にプログラムを変更して実行!
[root@hoge add_star]# python add_star_util.py {"color":"yellow","quote":"","name":"iruca21"}
こんな感じの表示になれば成功のはず。
実際にブログを見に行って確認してみる。
おお、ついてるついてる。
満足です。
必要モジュール
pythonモジュール requestsが必要です。pipとかで入れておいてください。
プログラム
add_star_util.py
#!/usr/bin/python #-*- coding:utf-8 -*- import requests import urllib import json """ 任意のはてなブログのエントリーにスターをつける """ def get_rk( hatena_id, password ): """はてなIDとログインパスワードからrkを取得します。 rkが何なのかはよく分からない。 """ target_url = "https://www.hatena.ne.jp/login" payload = {'name': hatena_id, 'password': password} response = requests.post(target_url, data=payload ) rk = response.headers["Set-Cookie"].split("rk=")[1].split(";")[0] return rk def get_rks( entry_url, rk ): """ スターをつけたいエントリーのURLとrkから、rksを取得します。 rksが何なのかはよく分からない。 """ target_url = "http://s.hatena.ne.jp/entries.json?uri="+ urllib.quote( entry_url ) #print target_url headers = {"Cookie" : "rk="+ str(rk) } response = requests.get( target_url, headers=headers ) rks = json.loads( response.content )["rks"] return rks def add_star( entry_url, rk, rks ): """ はてなブログのエントリーにスターをつけます。 """ target_url = "http://s.hatena.ne.jp/star.add.json?rks="+ rks +"&uri="+ urllib.quote( entry_url ) +""e=&location="+ urllib.quote( entry_url ) #print target_url headers = {"Cookie" : "rk="+ str(rk) } response = requests.get( target_url, headers=headers) print response.content if __name__ == "__main__": # 自分のhatena_id hatena_id = "XXXXX" # 自分のはてなログインパスワード login_password = "XXXXX" # スターをつけたいエントリのURL entry_url = "http://www.cheer-up.info/entry/2017/04/13/084401" rk = get_rk( hatena_id, login_password ) rks = get_rks( entry_url, rk ) add_star( entry_url, rk, rks )
ご利用は自己責任で!
はてなのサーバや運営チームに迷惑をかけないようにしましょう。