人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

mixiのコミュニティから一括で退会したいです。数百のコミュニティに入っているので1回1回退会ボタンを押すのが大変です。どんな手段でもいいので全てのコミュニティから一括で退会する方法を教えてください。プログラムの場合、それが動作するようであれば、それなりのポイントは支払わせていただきます。UWSC、FirefoxのiMacro、WSHなんでもいいです。

●質問者: popattack
●カテゴリ:コンピュータ インターネット
✍キーワード:firefox mixi UWSC WSH いただきます
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● Chiether
●60ポイント

では、bash と wget と perl で。

#!/usr/bin/bash

opt_cookie='--load-cookies ./cookie --save-cookies ./cookie --keep-session-cookies'

opt_common='--user-agent=autoleave_batch --output-document=./wgetfile';

email='hogehoge@hogehoge.net'

password='passwd'

# ログインする

wget ${opt_cookie} ${opt_common} --post-data "next_url=/home.pl&email=${email}&password=${passwd}&sticky=off" http://mixi.jp/login.pl

wget ${opt_cookie} ${opt_common} http://mixi.jp/check.pl

# コミュニティリストを取得する

wget ${opt_cookie} ${opt_common} http://mixi.jp/list_community.pl

mv wgetfile list_community.html

# コミュニティIDを取得する

egrep view_community.pl list_community.html | perl -pe 's/.+view_community.pl\?id=([0-9]+).+/\1/' > cid

# 全コミュニティを対象とするループ

# たぶんforで大丈夫だと思うが引数超過といわれたら while read に切替

for cid in ` cat cid `

do

# 退会ページを開いて、post_key値を取得する

wget ${opt_cookie} ${opt_common} http://mixi.jp/leave_community.pl?id=${cid}

mv wgetfile leave_community.html

pk=` egrep "post_key" leave_community.html | egrep "hidden" | perl -pe 's/.+value="([^"]+)".+/\1/' `

if [[ -z $pk ]]; then

# post_keyが見つからなければ処理を思いとどまる。

echo "get postkey failed. ${pk}"

exit 1;

fi

# 実際に退会する

wget ${opt_cookie} ${opt_common} --post-data "submit=confirm&post_key=${pk}" http://mixi.jp/leave_community.pl?id=${cid}

# 念のため、退会完了ページを leave_<ID>.html として保存しておく

mv wgetfile leave_${cid}.html

done


自分のIDとPWを使って、

for cid in の後に、直接コミュニティIDを指定する形で退会されたところまで確認しました。

このままだと大量のリクエストが立て続けに流されますので

opt_common値に、--wait=(秒) や --random-wait オプションをつけてやってください。

◎質問者からの返答

ありがたいのですが、unix環境がないので実行できません・・・Windows XPなもので・・・RubyとかPerlとかWindowsで完結できるものであればありがたいないです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ