Affamative Way

前向きにグダグダいいながらコード書く

HTTPアクセスしてスクレイピングしてみた。

最近、仕事はテスターなので
引きこもってコードが書いてみた。

HTTP Class使ってみた。

PHP用、外部接続にcURLかfsockopenが選べるHTTPクラス:phpspot開発日誌 で紹介されてた便利そうなHTTP Classを使ってみた。


しょっちゅう見るUIのひどい携帯サイトのラッパーサイトを作るのに使ってみたけどとっても使いやすい。

<?php
$http = new Http();
$http->setMethod('POST');
$http->setUseragent(REQUEST_USERAGENT);
$http->setReferrer( $referer );
$http->followRedirects(true);
$http->setMaxredirect(3);

$http->addParam( 'id', $id);
$http->execute(REQUEST_URL .'class.asp' );

echo ($http->error) ? $http->error : $http->result;

cURL使わないでアクセスしたり、ベーシック認証突破できたり。
結構、使い道が多いと思う。たいした量じゃないからソース読んでもいいけど、ドキュメントもある。


PEAR::HTTP_Client使ったことないからどっちがいいかはわかんないけど。。。


不完全はHTMLのスクレイピング

取得した正規表現から正規表現で抜き出すのも面倒になっていろいろと調べていたら
「不完全なHTMLをDOMDocumentにしてSimpleXMLから簡単にスクレイピング」ができることを発見

はまりポイント

KoshigoeBLOG: PHPのDOMDocumentの文字化けなど

loadHTMLするHTMLについては、metaタグで文字コードを指定していれば正しいエンコーディングで処理してくれるようです。metaタグで文字コードを指定していないHTMLについて(一部を切り抜いたHTMLなど)は補完などの処理が必要になるのでしょうか?

パースする不完全なHTMLにmetaタグで文字コードを追加してあげたら文字化けせずに出力できたー。

<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\" />

Xpathってとっても便利

PHP: SimpleXMLElement->xpath()を使ってる参考ソースを見つけて、XPath知らなかったから調べて使って見たら便利さに感動。。

参考


リリースまではタイムリーに知ってたけどJavaScript-XPath - CodeRepos::Share - Tracってすげー便利ということが良くわかった。




TODO

  • 家でも怠けずに定期的にコードを書く。
  • 買った本読む

RESTful Webサービス Ajaxアプリケーション & Webセキュリティ ウェブ時代 5つの定理―この言葉が未来を切り開く!

いろいろと効率化してやるぞー(自戒)


今夜はこれからCakeをいじろう。