pythonではてぶするスクリプト
まずpythonでコマンドライン引数を受け取る方法を調べた
http://www.python.jp/doc/2.5/tut/node12.html
10.3 コマンドライン引数
広く使われているユーティリティスクリプトでは、しばしばコマンドライン 引数の処理を呼び出します。これらの引数は sys モジュールの argv 属性にリストとして記憶されます。例えば、以下の出力は、 "python demo.py one two three" をコマンドライン上で起動した際に 得られるものです:
>>> import sys
>>> print sys.argv
['demo.py', 'one', 'two', 'three']
getopt モジュールは、sys.argv を Unix の getopt() 関数の 慣習に従って処理します。より強力で柔軟性のあるコマンドライン処理機能は、 optparse モジュールで 提供されています。
おし、これで前回のmechanizeの*1とあわせてはてぶに投稿するスクリプトが作れる。
いよいよはてぶに投稿する
hatebu_post.py
# -*- coding: utf-8 -*- import mechanize import sys # モジュール属性 argv を取得するため argvs = sys.argv # コマンドライン引数を格納したリストの取得 argc = len(argvs) # 引数の個数 print argvs print argc [script_file, url, name, password] = argvs entry_url = 'http://b.hatena.ne.jp/entry/' + url.replace('http://', '') print entry_url print name print password br = mechanize.Browser() br.open('http://www.hatena.ne.jp/login') print br.title() br.select_form(nr=0) br['name'] = name br['password'] = password res = br.submit() print br.title() print br.geturl() br.open(entry_url) print br.title() print br.geturl() br.select_form(nr=1) res = br.submit() br.follow_link(url_regex=r'add\.confirm') # 確認ページへのリンクをたどる print br.title() # タイトルを確認 br.select_form(nr=1) # 2つめのフォームを指定する res = br.submit() # 投稿
これで
python hatebu_post.py http://entyrurl.com your_hatena_id your_hatena_pass
こんな感じで投稿できる。
*1:http://d.hatena.ne.jp/suzuki-shin/20110205#1296882397