ここ最近というか結構前からhtmlスクレイピングすることが多いのでメモ。
最初はいろいろ試してたんだけど、今使ってるのは2パターン。
ベンチマークとって最速だったからとかじゃなく、単に慣れかも。

scrape_func.php

このオライリーの本のサンプルコードに含まれているファイル。
http://www.oreilly.co.jp/books/4873111870/download.html
始点と終点書いて直感的に取ってこれる。
$_rawData = getURL($url);
$_rawData = mb_convert_encoding($_rawData, "UTF-8", "auto");
$_rawData = cleanString( $_rawData );

$headline = getBlock("<div id=\"headline\">","</div>",$_rawData,false);

$title = getElement("h1", $_rawData);

XPATH

xpath使うのが一般的だとは思うけど、ちっちゃい処理だと上に挙げたライブラリの方が早いんだよね。
でも言語に限らず使えるから便利。
このブログのタイトル取る例。
$res = file_get_contents($url);
$dom = @DOMDocument::loadHTML($res);
$xml = simplexml_import_dom($dom);

//最新記事のタイトル
$title = $xml->xpath("//div[@class='hentry']/h2/a/text()");
echo (string) current($title);

//3番目の記事のタイトル
$title = $xml->xpath("//div[@class='hentry'][3]/h2/a/text()");
echo (string) current($title);
//3番目の記事のリンク
$link = $xml->xpath("//div[@class='hentry'][3]/h2/a/@href")

スクレイピングって地道な作業だよね。
各サイトごとにほぼ手動対応。。