月別アーカイブ: 2014年3月

HAPでAmazonデータ取得

HTML Agility Pack (HAP) を使ってAmazonのデータを取り出してみた

ここのところうれまっせシリーズに変わる新たなアプリ開発を構想中。
ラーメンが好きなので近くにある自分の好みのラーメン屋を教えてくれるラーメン専用サーチエンジンが
あってもいいかと思い、何か作ってみるかと試行錯誤している。

まずは食べログから星の数とか店舗の位置情報、口コミの情報のもろもろを取得する処理が必要なんだけど
食べログはデータ取得のためのAPIを提供しておらず、HTMLからデータを取り出す必要がある。

HTMLから力技でデータを抽出するのは過去にやったことがあるがとても骨がおれる作業だったので、
もう二度とやりたくない。何かいい方法ないんかいなと探していたら素晴らしいパーサ(解析ツール)を発見した。

「HTML Agility Pack (HAP)」というツールで、こいつを使うとXMLをパースするかのごとく
HTMLからデータをひょいっと取ってこれる。

具体的な取得方法は下記サイトに詳しくて、サンプルを流用すればHTMLからデータ取り放題。
Webに散らばるデータを集めるツールの作成もかなり楽になるだろう。

.NET 用HTMLパーサ「HTML Agility Pack」 はなかなかイケテる。

ちなみに上記の参考サイトにおいては
「HTMLのエンコードがUTF-8以外の場合、日本語が文字化けしてしまいます・・・。」
と記載されており、UTF-8以外のエンコードの対応方法が記載されていなかった。

ところがである、AmazonのWebサイトはエンコードがS-JISなのである。
(テストではまずAmazonのデータ取得にチャレンジしていた)
サンプルをそのまま動かしても日本語が化けてしまい、このままでは使い物にならない。

これは困った、なんとかせねばと
エンコードを指定しているっぽい箇所を書き換えてみた。

(修正前)
Encoding enc = Encoding.GetEncoding(“utf-8”);

(修正後)
Encoding enc = Encoding.GetEncoding(“shift_jis”);

この状態でリビルドして、再実行してみると・・・おおお、Amazonの情報を文字化けなしで
取得できるようになったではないか!
(この投稿のアイキャッチ画像はAmazonの価格を取得した時の画像。
 一見しょぼいWindowsフォームだが¥3,300はAmazonからHAP経由で取得している)

このツールはかなり使えそうだ。素晴らしいツールとの出会いに乾杯!

E130メモリ増設

ThinkPad E130 メモリ増設しました

WindowsXPサポート切れに備えて購入したThinkPad E130。
Windows8搭載でOSは一気に最新になったのですが、
搭載されているメモリが2GBでは物足りないことが判明。
XP時代なら2GB積んでいれば問題なく大抵のことは出来たのですが
8になると何もしなくても常時1.6GBほどメモリが使用されています。

バックグラウンドで無駄なプロセスが沢山動いていると
思うのですが、変にプロセスを殺して不都合が出るのも嫌なので
おとなしくメモリ増設を行うことにした。
それにしても初期状態でいきなりメモリが不足するハードウエアの
設計って何なんだYO!

↓このメモリを購入しました。
さすがに4GB増設すれば快適だろうと。
価格も5470円なので許容範囲。

メモリ交換の手順をさっと記述しておく

1.PCを裏返しバッテリーを外す

2.裏面前方にある3箇所のねじを外す

3.ねじが外れると蓋がういてくるので、浮いている部分を
 上へ持ち上げる。
 この蓋が結構堅くて、どうやったら外れるのかが
 わからなくて四苦八苦した。
 レノボのサポートのビデオなんかでは簡単に持ち上がっている
 のだが、ウチの場合そう簡単にいかなかった。
 バキッと音がするぐらいまでじわじわと持ち上げると良い。
 (ここでレノボのサポートのサイトを紹介したいが、
  発見できなくなってしまった)

4.蓋を外すと、右下にメモリを刺す端子が見える。
 メモリを差込み、押し倒すとメモリ増設完了。

さて、メモリ増設してみて、さっそく動作確認をしてみる。
E130を起動して、タスクマネージャを起動すると・・・
おお、メモリが5.8GBに増えている。
メモリ使用量も10%~20%の範囲に収まるようになり、
ブラウザを起動しても固まったりしなくなった。
これは本当に買ってよかった。5470円の価値はあるわ。

これでようやく最低限の環境は整備できたかな。