Home> programming > 久々にBookmarklet書いたら、すげぇ楽になってた
久々にBookmarklet書いたら、すげぇ楽になってた
- April 27, 2011 1:45 AM
- programming
同僚のSkypeステータスに「某サイトからデータスクレイピングするの大変」的な話が出ていたので、話を聞いてみると、「それJavaScriptで処理できるんじゃない?」という感じがしたので申し出てみた。
ということでまぁ本業では範疇外だけど、昼とか定時後に片手間ながら久々にBookmarklet書いてみたわけです。
で、処理元のHTML文書は、2000年代前半を彷彿とさせる大文字コーディングスタイルでスラッシュなしBRタグやHRタグ、全く構造化されていない。
(ここで昔のYahoo!オークションサイトをスクレイピングしようとした時のことを思い出して陰鬱な気分になった)
しかし時代は2011年。高速なJSエンジンを積んだブラウザも転がっているし、当時よりも多少JavaScriptにも慣れている。
何より手元にはjQueryもある...あれ? BookmarkletでjQuery使えたよね...?
jQueryでブックマークレットを書く 3 | ethertank diary
コメントを除き237byte。
jQuerifyという選択肢もあるけど、今回は人に渡すものだし、なるべく1クリックで動くやつを作りたいのでパス。
いくつかある亜流の中から、上記サイトのものを採用して感謝しつつコーディング開始。
幸いにもBRタグや記号を使用して几帳面なレイアウトがなされていたので、方針としては、
- 腐ったタグを正規表現で置換、構造化文書に書き換える
- jQueryで文書内のデータからid、classを生成(ここまでが下準備)
- 必要なデータだけ抽出してテーブルやテキストエリアにコピペ用データ書き出し
という感じ。
置換は、こんな感じで。
var d = document;
d.body.innerHTML = d.body.innerHTML.replace(/置換する文字列/g, '置換後の文字列');
あとは、適当にセレクタでデータ選択して処理。無名関数とか昔使えなかったなぁ、とか思いながら。
$('セレクタ').each(function(){
何か処理
});
まぁ、実例出せないのであまり書いても意味ないんだけど、思い出すきっかけくらいにはなるだろう、ってことで記事書いておく。
ところで、今回は富豪的プログラミングだったわけだけど、デバグにOperaとFirefox使ってて「どこまで書いても文字数制限で怒られないな-。何でだろ」と思ってたら、いつの間にか文字数制限がえらい緩くなってたらしい。
各ブラウザのブックマークレット限界文字数 最新版 - MediaLab Love
各ブラウザのブックマークレット限界文字数 最新版 - MediaLab Love
10000字とか誰が使うんだよ!...と思いながら超えてんじゃねぇかなーと思いながら書いてたけど数えてみたら、3000文字くらいだった。
一応引き渡しの時に「Opera使ってね」と布教しておいたり。
Trackbacks:0
- TrackBack URL for this entry
- https://w3neu.net/mt/mt-tb.cgi/252
- Listed below are links to weblogs that reference
- 久々にBookmarklet書いたら、すげぇ楽になってた from Sequentially Altered Days
Home> programming > 久々にBookmarklet書いたら、すげぇ楽になってた
- Categories
- Archives
- Syndication
Comments:0