2007-02-21(水) [長年日記]
■ 高速HTMLパーサー「Hpricot」を使ってみる
2000個以上ある手作りHTMLファイルの一部分を全自動で書き換える、という楽し〜いお仕事(棒読み)をもらったので、エンジンがCで書かれていて速いと評判のHpricotを使ってみることにした。
……その前に、(いい加減逃げてばかりもいられないので)とうとうRubygemsを導入したわけだが、そのへんは割愛。$HOME配下に入れてあるruby 1.8.5-p12の環境に入れようとしたのに、コマンドファイルのshebangが「#!/usr/bin/env ruby」のままだったというのが唯一のハマりポイント。
Rubygemsさえあれば、インストールは簡単:
% gem install hpricot
ライブラリの使い方はHpricot Showcase-Jaを参考にした。つっても、狙ったdiv要素を探して別の何かに置き換える、なんてコードは、この程度だ:
require 'rubygems' require 'hpricot' doc = open( ARGV.shift ){|f| Hpricot( f ) } elem = doc / 'div.foo' # この「/」メソッドがキモい elem.remove elem.before( '<!-- bar -->' ) print doc.to_html
実は、Elements#beforeやafterの挙動がおかしくて……というか親要素とのからみでおれが期待する動作にならないので……、wrapメソッドを使ってゴミ要素を挿入したのち、別途正規表現を使って変換するという美しくないコードになっちゃったけどまぁいいや。
評判どおりかなり速くて、2000個のHTMLファイルを処理するのに、数分で済んだ。年中メモリ不足であえいでいるウチのcoLinux環境にしてはかなりの速度である。ValidでないHTMLでもエラー吐いて死んだりせず、それどころか正しい要素を補ってくれたりするのは良し悪しだが、今回はOKとした。
2007-02-19(月) [長年日記]
■ やっとマスクを買った
銘柄はいつもの、ええと……「スーパーふつう」ってなんやねん!
◆ ただただし [ちなみに、隣にあったのは「スーパーやや小さめ」だったような。どっちかはっきりしろって感じ。]
◆ tokoya [チョコベビー・ジャンボって製品に思わずツッコミを入れてしまった事を思い出しました(笑)。]
◆ げいる [「ふつう」というのは「普通」ではなく「不通」だったのでは…。 このマスクは花粉も不通だが、スーパーなだけに空気出す..]
◆ やぢを [空気読めてないかもしれませんが、粒子の透過特性(スーパー)とマスク全体のサイズ(ふつう・やや小さめ)という、二つのパ..]
◆ big_gear [三菱東京UFJ銀行にスーパー普通預金ってのがありますね。]
◆ ただただし [やぢをさん: かんっっっぺきに空気読めてませんよ、それ:-)]
2007-02-18(日) [長年日記]
■ 百度(Baidu)のbotを受け入れてみる
Baiduのbotである「Baiduspider」が、少しおとなしくなったらしい(via SEMサーチ)。
なにを契機にやったのか忘れたが、いままではBaiduspiderを拒絶していた。そういうことなら受け入れてみてもいいか、ということでいったん制限を解除。もっとも、まだ問題があるようならまた拒否するけど。それ以前に、EUC-JPな日本語ばかりのサイトがBaiduにとって意味があるのかわからんが。
それにしても、ツッコミどころの多いリリースだなぁ。
今後はこの問題について会社全体が真摯に受け止め、日本のインターネット業界におけるルールに従い、このようなことが二度とないように努めていく所存でございます。
「日本の」インターネット業界にローカルルールがあったんだ? 苦情を言ってきたのは日本だけってこと?
各サイトの規模とIP負荷に対し、それぞれ対応できるクローラー対策を設定し、中小のサイトに対し、クローラー頻度は20秒/回以内にコントロールしています。
IP負荷ってなんだ? レスポンスかなんかのことか?
絨毯爆撃型のbotにありがちな実装として、ホスト名が異なる場合にはIPアドレスが同一でも別サイトと見なして、同時に無数のアクセスをしてくるというのがあるが、それを同一視してくれるようになるんだろうか。ウチみたいに同一サーバでたくさんの仮想的なホストを見せているサービスだと、そうしてくれないとたまらんのだが。
■ メールとXMLRPCのゲイトウェイサービス
tDiary-users掲示板の投稿で知ったんだが、メールとXMLRPCのゲイトウェイを提供するubicast Mail Bloggerなんてサービスがあるんだ。ぜんぜん知らんかった。
tDiaryのXMLRPCプラグインは、つい最近まで最新版に追従していなくて動かなかったんだけど、やっと今年になってから追従した(らしい)ので、使えるようになっているはず。設置環境の制約でposttdiary.rbを使えなかった人にはいいかも。ちゃんと動けば、だけど(←なにしろXMLRPCプラグインを使ったことがない)。
Before...
◆ 中川 [> キモい crazy とか insane で感じが出てるんじゃないかな。]
◆ ただただし [>crazy とか insane 人物に対してならいいけど、ライブラリのAPIに対してはちょっと雰囲気違くないですか..]
◆ 中川 [> キモい weird がいいかも。odd だとちと固い感じかな。 まあ、「キモい」という語感はなくなるけど、単に ..]
◆ ただただし [あー、意味的にはまさに「does not fit」ですねぇ。weirdもそれっぽい。 >crazy は人物じゃない..]
◆ 本当にただのとおりすがり [すいません。 日本語でキモイっていわれる側の人種(変態ヲタクなど)によってとは肯定的な意味にとるのかと思っていました..]
◆ ただただし [「キモい」と発言する側とされる側、それぞれに肯定的・否定的立場があって、マトリックスにすると4通りの状況があるという..]