Hatena::Grouphackathon

zrail (a.k.a. tobira17, h14i, ...) の Learning Log

2015-09-17

[][][]dman が見つけてきた URL を w3m で読みたかったメモ 02:13 dman が見つけてきた URL を w3m で読みたかったメモ - zrail (a.k.a. tobira17, h14i, ...) の Learning Log を含むブックマーク はてなブックマーク - dman が見つけてきた URL を w3m で読みたかったメモ - zrail (a.k.a. tobira17, h14i, ...) の Learning Log

POSIX (というか Linux )上での話です。*1


本質的なコードは dman.d にはなくて、読むべきは std.process.browse (のソース) だった。やってることは

  • 検索クエリを打つためのコマンドを決める
    • デフォルトでは xdg-open を使う
    • 環境変数 BROWSER にコマンドが指定されている場合はそれを使う
  • exec する

くらいかな。あとはエラー処理。

で、最初は単に BROWSER=w3m してみたけどダメだった。プロセス関係よくわからない。

仕方ないので BROWSER=echo して、 stdio 経由で w3m へ渡すようにしたら上手くいった。

あとは dman の吐く URIsed とかで(ここではパラメータ展開してるけど…)修正してローカルに向けてやれば cppref みたいな使い方ができそうな気がする。

以下コード例。

# web のリソースを読みたいならこれでいける
w3m `BROWSER=echo dman process`
# あるいは curl の出力を流し込んでも読める(ファイルとして読んだほうが便利だから上のほうが良いと思う)
BROWSER=curl dman std.stdio | w3m -T text/html

ローカルにある html ファイルを開く例。だけどちゃんと確認してない。あとdlang.org以外のリソースは開けない。

# ここでは denv を使わせてもらってる
export HTML_DIR="$( denv prefix )/html/d"
export BROWSER=echo

w3m "${HTML_DIR}/${$( dman assert )##*dlang.org/}"
w3m "${HTML_DIR}/${$( dman writeln )##*dlang.org/}"
w3m "${HTML_DIR}/${$( dman simd )##*dlang.org/}"

まぁざっくりこんな感じですかね。

気が向いたらスクリプトにしよう。

*1:ついでに言えば D-man ( D 言語くん)の話ではないよ。リファレンス検索コマンドの dman だよ。

2013-04-10

[][][]Ruby on Rails関連のメモ 17:43 Ruby on Rails関連のメモ - zrail (a.k.a. tobira17, h14i, ...) の Learning Log を含むブックマーク はてなブックマーク - Ruby on Rails関連のメモ - zrail (a.k.a. tobira17, h14i, ...) の Learning Log

別にSinatraとかでも良いんだけど、Web方面をちょっとやろうと思い始めたのでメモ置き場設置。

2010-08-06

[][]Smiley Hackathon はもう 2 周年らしい 14:14 Smiley Hackathon はもう 2 周年らしい - zrail (a.k.a. tobira17, h14i, ...) の Learning Log を含むブックマーク はてなブックマーク - Smiley Hackathon はもう 2 周年らしい - zrail (a.k.a. tobira17, h14i, ...) の Learning Log

昨日立ち上げたばかりの Hackathon (風味) とは比較にならないね。

acotie さんを見習って僕も頑張ろう。

2010-07-11

[][][][]Watir で組み込みの IE をハンドルする 09:22 Watir で組み込みの IE をハンドルする - zrail (a.k.a. tobira17, h14i, ...) の Learning Log を含むブックマーク はてなブックマーク - Watir で組み込みの IE をハンドルする - zrail (a.k.a. tobira17, h14i, ...) の Learning Log

VisualuRuby で IE コンポーネントを使うと JScript 関係のメソッドが呼べないから、仕方なく Watir を使ってみた。

そしたら、こっちはこっちでなかなか IE コンポーネントのハンドラが取得できなくて困った。

組み込みブラウザの attach が上手くできないのは既知の問題だったっぽい。

んで、RubyForge の Win32 Utils のフォーラムでも同じ問題が質問されてて、 Park さんが華麗に hack なさってました。

おかげで助かった。

いやほんと僕って Windows のこと知らないね。

ソフトウェアインフラのことやりたいなら Windows とかもちゃんと勉強しないとダメだよね。

2010-06-20

[][][]バカにしていた 17:02 バカにしていた - zrail (a.k.a. tobira17, h14i, ...) の Learning Log を含むブックマーク はてなブックマーク - バカにしていた - zrail (a.k.a. tobira17, h14i, ...) の Learning Log

正直すまんかった。

いわゆるスクレイピングのことを侮っていた。取得したページを正規表現で削ったり、 concat したりするだけでしょ?*1とか思ってた。

自分でやってみると結構めんどい。ライブラリ作者すげー!

mechanize とか超すげー。どの言語の実装が元祖なんだろ。 CPAN とか RubyGems にもあるよね?

というわけで色んな先人たちのページを見て勉強させて貰っています。


yhara 先生のスクレイピング本がもうちょっと早く出てくれればもっと助かったんだけどw

楽しみにしています。

*1:まぁ流石にそこまで単純だとは思っていなかったけど