Archive for 2009年 2月

XPath で<li><b>hoge</b>ぼえ</li>で、「ぼえ」だけを取り出す方法

アマゾンの発売日前レビューってのがあまり好きじゃないんですよね。
発売日前のレビューは非表示にできるようにgreasemonkey(初体験)を書いてみようと思い、
とりあえずお知り合いのここを参照して調べる。

まずはアドオンでXpathCheckerをインストール。
ここでXPathつかったのはアマゾンのhtmlがひどかったから。web1.0っていうの?アレ。
<font size=”-2″>とか懐かしくて涙出てきた。

発売日を取得しようとしたんだけど、アマゾンでは発売日付近のhtmlは以下のようになってる。

<ul>
<li><b>なんか:</b>ああああ</li>
<li><b>なんか:</b>いいいい</li>
<li><b>発売日:</b>YYYY-mm-dd</li>
<li><b>なんか:</b>うううう</li>
</ul>

こんなかんじ。発売日の順番が商品によって違うので、
Xpathは
/html/body/table[1]/tbody/tr/td/div/ul[1]/li
でリストを配列で取得して走査。

ただこの状態だと
<b>発売日:</b>YYYY-mm-dd を取ってきてしまう。

YYYY-mm-dd部分のだけ取る方法ねーかなー正規表現で抜くかなーと悩んでたら
こんな感じでとれるよーとotchyさんに教えてもらた。

/html/body/table[1]/tbody/tr/td/div/ul[1]/li/child::node()[2]

child::node()はnode()でもおk

lists = $a(“/html/body/table[1]/tbody/tr/td/div/ul[1]/li/node()[2]“);
for(var i in lists){
var t = Date.parse(lists[i].nodeValue);
if(!isNaN(t)){
releaseDate = t;
}
}


node()[1]で前の部分が取れる。
最初テキストinnerHTMLで取ろうとしたら取れなかった…。(おそらくXMLだから?よくわからんけど。)
nodeNameをみたら#textだったのでnodeValueにしたら取れた。
$a はここの使ってる

なるほどねー。XPath初めて使ったけどコレは便利。
今回は習作として、今後ちょっといろいろ作ってみようと思った次第でした。

Left 4 Dead

[tmkm-amazon]B001KBYQLM[/tmkm-amazon]
1人でやるゲームじゃないねえ。これ。
みんなでわいわいチャットしながらやるべき。

開発者の開発話もあって、
「どんなうまい人がいても1人じゃどうにもできないゲーム」
このコンセプトがいいなあと思った。
1人でおれつええして突っ込むと後ろがついてきてなくて死ぬとかね。

haloとかGoWでcoopするときも相方が強いと後ろからついてくだけでいけちゃうんだよねえ。
GoWは分断されるときはあるけど。
ま、それはそれで。

あとは状況を自動で判断してゲームレベルの調整をしてくれてるっぽいのがすごい。
余裕だなーとか思ってたりするといきなりどかーんとやられたりする。
厳しい!って思ってんのに厳しいままのときもあるがw

対戦はダメージはノーマル、敵思考がエキスパート以上って感じ。そりゃ感染者もプレイヤーだしね。
連携とってくるようになるとこんなにも厳しくなるもんだなあと。

しばらくは飽きなさそうです。

こっちはPC版。スペックあるならPC版かったほうがいいかもね。
[tmkm-amazon]B001K7HX16[/tmkm-amazon]