はてブユーザーをTwitterで見つけられる、かもしれないUWSCスクリプト

前回の記事、まさか1000名を超える方にはてぶしていただけるとは思いませんでした。ありがとうございます。細かいことにほとんど触れていない記事ですが、ちょっとでも役立つのであれば嬉しいです。

手っ取り早く携帯サイトを作成する時のhtmlテンプレート

というわけで今回の内容ですが、このはてぶしてくれた方々をtwitterで探すにはどうしたら良いのか、というもの。

<●><●>


だいぶ前のものですが、こんなブックマークレットもありましたね。

はてブユーザーを Twitter で見つけられる、かもしれないブックマークレット

基本的にこれと同じく、はてなIDをtwitterIDに当てはめるという作業をしよう思ったわけですが、なにぶん件数が多いとたくさんクリックしていられなかったり、実際には存在しないID・プライベートモードなIDも多いと思います。

というわけで、その辺を解決できそうなUWSCというマクロソフトのスクリプトを書いてみました。

前々準備

まずはてぶ一覧ページからIDの一覧リストを作成。ここもスクリプト組めよって話ですが、秀丸ですぐできてしまう作業なので別にいいや、と。

はてなブックマーク - 手っ取り早く携帯サイトを作成する時のhtmlテンプレート - webの人

上記ページのソース開いて秀丸に貼り付けて、正規表現を使ったりしてリストを作ります。下記マクロを利用してソースコードをソートすると、楽かもしれません。

秀まるおのホームページ(サイトー企画)−重複行を削除する簡易マクロ Ver.2.09

そんなこんなで一覧を作成できたら、エクセルを開き、IDの文頭に「http://twitter.com/」をつけたものをA列に貼り付けておきます。

UWSCスクリプト

そしてもう一準備必要ですが、先にスクリプトをぺたり。

//初期設定
EXCEL = GETACTIVEOLEOBJ("EXCEL.Application")

//開始 エクセルのCOUNTA関数で、完了数とURLの総数を、D1・E1に書いておく
start = Excel.ActiveSheet.range("D1").value;
end = Excel.ActiveSheet.range("E1").value;

FOR i= start TO end
	url = "A" + i
	url = Excel.ActiveSheet.range(url).value;

	//ソースから「アカウントが存在しない場合」「プライベートモードな場合」を判断
	Str = GETPAGESOURCE1(url)
	Str1 = pos("Sorry, that page doesn’t exist!",str)
	Str2 = pos("このユーザーはツイートを非公開にしています。",str)
	print "str1:" + Str1
	print "str2:" + Str2

	//結果をB列に書き込む
	write = "B" + i
	ifb str1 > 0
		//存在しない
		excel.range(write).value = "存在しない"
	ELSEIF str2 > 0
		//非公開
		excel.range(write).value = "非公開"
	ELSE
		//存在する
		excel.range(write).value = "存在する"
	endif

	sleep(1)
NEXT


// ウェブページのソース取得
FUNCTION GETPAGESOURCE1(PageURL)
  COM_ERR_IGN  //COMエラー無視
  msXMLhttp = CREATEOLEOBJ("Microsoft.XMLhttp")
  msXMLhttp.open("GET", PageURL, 0) //async=false(=0)
  msXMLhttp.send()
  RESULT=msXMLhttp.responseText
  COM_ERR_RET  //COMエラー無視
FEND

今回、twitterIDの存在チェック結果をエクセルのB列に書いていくスクリプトを書いたわけですが、チェックを何回ループするか(何行目から何行目までのリストをチェックするのか)の指定をエクセルのCOUNTA関数を使って、D1・E1に書いておきます。

D1には存在チェックができているIDの数を、E1にはIDの総数を書くようにします。つまりD1が「=COUNTA(B:B)」で、E1が「=COUNTA(A:A)」です。

結果この段階で、こんなかんじの画面になるはずです。

そしてここまで下準備ができたら、このエクセルを開いたままスクリプトを実行します。すると、B列にIDのチェック結果が書かれていきます。

途中でストップをしても先ほど書いたCOUNTA関数のおかげで途中から再スタートすることができます。ちなみにチェックをしている途中の画面はこんなかんじ。

それでチェックが完了したら、B列基準でソートすればokですね。ちなみに今回のチェック結果は約半分のIDの存在が確認できた、というところです。でも実際アクセスしてみると、外人アカウントだったりで、はてなID=twitterID率は6割ぐらいかなぁという感覚でした。(全部見てないけど。)

複数のURLにまとめてアクセスする方法

本題とはそれますが、備考として。

こうしてたくさんできたURLリストですが、これに一つ一つアクセスするのは手間だったりするかもしれません。その場合は、各URLの文頭に「start 」とつけてコマンドプロンプトにぺたっとすると早いです。

やりすぎるとブラウザが止まりますし、F5アタックのようなものなので、一度に5〜10URL程度が適当だと思います。

UWSCについて

というわけで、こんなことに使えるUWSCのご紹介がてらな記事でした。導入的な使い方はこの書籍に書いてあるので、興味ある方はチェックしてみてください。

Windows マクロテクニック
小林 シンヤ
翔泳社
売り上げランキング: 109305
おすすめ度の平均: 4.0
5 素晴らしい
4 マクロへの扉を開いてくれる本
2 無題
5 読みやすいと思うよ。