maRkの

キャンペーンだとか、Chess.appについてのなにか

Web::ScraperとWWW::MechanizeでHatena::Letから自分のRawコード取得、ファイル保存

Hatena::Let 外で作成済みのbookmarkリポジトリ管理しようかな、とか思って。一つ一つ書き出していくのもなんだし、後学のため作ってみた。

自分(或いはあるユーザー)のbookmarkletを持ってくるのに、cURL wget なり使ってもいいと思うけど、自分の場合だと@privateつきのプライベートモードのbookmarkletも作っているから、一回認証通してないとpublicモードのしか取れないことになる。

参考
WWW::Mechanize - Perlオブジェクト中のハンディWebブラウザ - perldoc.jp
use Web::Scraper; - 今日のCPANモジュール(跡地)

成果物は以下に

Hatena::Let で自分の bookmarklet の Raw Code を取得、ファイル保存する — Bitbucket


作業フォルダを mkdir してカレントディレクトリ移動しておきます。

my $user = 'USER NAME';
my $pass = '?? YOUR PASSWORD ??';

でユーザー名:Passwordを入れ getlet.pl とでもして保存。あとは、ターミナル等で

$ ./getlet.pl 

とか。

Note:

ログインが成功したら、Hatena::Letのユーザーのトップページに移動して、そこから各bookmarkletパーマリンクを配列に格納します。
あとは、Web::Scraperで、ページにあるbookmarkletの分だけページ移動してスクレイピングしていきます。Hatena::Letでは1ページ20件分のbookmarkletで分割されているので、1ページ最大で20件のbookmarkletです。
切り出し部分は、

my $scraper = scraper{
    process 'pre.code-raw', 'rawcode' => 'TEXT';
    process 'title', 'doctitle' => 'TEXT';
    };

な感じにして、Rawコードは pre要素から、各ファイル名として(でっちあげで)指定するのにtitle要素から取得しています。取得しできたら、ファイル出力して、20件分ならば20回繰り返します。
※ 出力するファイルは、text/plain で 拡張子 .txtとなるようにしてあります。

ツールでは、トップページ1ページだけの解析ですが、2ページ目からは、 ?of=20 とかいったリンクをたどることで取得できます(本当はそこまで解析して全自動にすればいいんだけど、何せ突貫工事なもので、本当に自分のページのだけしか想定してないです)。

$mech->follow_link (url => "http://let.hatelabo.jp/".$user."/");
$mech->follow_link (url_regex => qr/of=20$/i);

ついでにですが、以下に、個別bookmarkletページ開いた時実行するとダウンロードになるbookmarkletがあります。

はてブ : エントリーページのユーザーの表示順をリバースするブックマークレット

はてなブックマークは、Delicious と違って、誰が最初にブックマークしたのかはあまり重視されていないみたいですが、表示の順序入れ替えするっぽいスクリプトを作ってみました。


ページが読み込まれてから実行すると、一旦、すべてのブックマークにしてから、逆順にして表示させます。

一部のページしか動作確認してませんので、おかしな挙動するページがあるかもしれません。(Fork して誰か直して。。(^^; )

※ あまり登録数が少ないページは意味がないのと、逆に多すぎる(1000ユーザー以上)ページはパフォーマンスの面で除外してあります。

北陸新幹線に乗りたいので金沢に行ってみたいです

今週のお題「今年こそは」

表題の通りで以上です。上越新幹線営業運転開始の時は、その年で乗ったんで。開通記念のメダルのようなの買った覚えがあります。


⬇︎これは、上越妙高駅まで連絡する、特急しらゆき号のホーム進入です


Shirayuki Limited Express in Kashiwazaki stwww.flickr.com

花火の駅

今週のお題「今年見に行ってよかったもの」

スターウォーズ フォースの覚醒 といいたいところだったのですが、まだ公開前だったし。

新潟県長岡市にある、花火の駅 長岡花火ワールド 悠 です。

「長岡まつり大花火大会」というと、全国的にも有名で、人気花火大会ランキングで上位に入っており、完成度の高い花火大会として好評を得ています。インターネット上でも中継で観たという人もいるのではないでしょうか。

花火の駅というのがあるというのを聞きつけまして、一度行ってみたい、と思いつきだけで行ってきました(花火は観に行ってない)。

f:id:maRk:20150903135335j:plain

www.nct9.ne.jp

場所は、正直地理に詳しくないと難しいです。駐車スペースもそれほどありません(車で行っちゃったけど)。
花火にまつわる資料・写真が展示されていました。
喫茶コーナーがあり、コーヒーは200円でした。