Spidering Hacks

―ウェブ情報ラクラク取得テクニック101選

[cover photo]
TOPICS
Hacks , Web , Perl
発行年月日
PRINT LENGTH
544
ISBN
4-87311-187-0
原書
Spidering Hacks
FORMAT
Print
3,850円
この商品は品切れ再入荷未定です

毎日欠かさずチェックしているウェブページがありますか?ウェブ上のデータを二次利用したくありませんか?ウェブサービスを駆使してみたくないですか?そう思ったことがあるのなら、この本を読むべきです。本書は、ウェブを横断して情報を自動収集するプログラム、スパイダを自由自在に操り、目的の情報を取り出す方法を詳しく解説しています。また、各Hackを積極的に日本語化し、訳書版独自のHackや日本語処理の注意点(付録)を収録するなど、至れり尽くせりの内容です。スパイダ通のテクニックが満載!

関連ファイル

正誤表

ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日をご確認の上、ご利用ください。

正誤表1


2005年3月9日、2刷で修正済みです。

■p68 11行目
【誤】このHackでは前者のHTML::Bruilerを取り扱っています。
【正】このHackでは前者のHTML::Builderを取り扱っています。

■p402 下から13-4行目
【誤】
function getBlock( $pStart, $pStop, $pSource, $pPrefix = true ) {
$_data = null;
$_start = strpos( strtolower( $pSource ), strtolower( $pStart ), 0 );
$_start = ( $pPrefix == false ) ? $_start + strlen( $pStart ) : $_start;
$_stop = strpos( strtolower( $pSource ), strtolower( $pStop ), $_start );
if( $_start > strlen( $pElement ) && $_stop > $_start ) {
$_data = trim( substr( $pSource, $_start, $_stop - $_start ) );
}
return( $_data );
}
【正】
function getBlock( $pStart, $pStop, $pSource, $pPrefix = true ) {
$_data = null;
$_start = strpos( strtolower( $pSource ), strtolower( $pStart ), 0 );
if ($_start === false) {
return ( $_data );
}
$_start = ( $pPrefix == false ) ? $_start + strlen( $pStart ) : $_start;
$_stop = strpos( strtolower( $pSource ), strtolower( $pStop ), $_start );
if( $_stop > $_start ) {
$_data = trim( substr( $pSource, $_start, $_stop - $_start ) );
}
return( $_data );

■p442 ページ中央
【誤】# ユリウス暦の操作
【正】# ユリウス日の操作

■p482 下から3行目
【誤】print "貸借対象表"
【正】print "貸借対照表"

目次

訳者まえがき
クレジット
まえがき

1章 ウォーミングアップ
        1.      スパイダリングとスクレーピング早わかり
        2.      あなたとスパイダの心得集
        3.      HTMLページの構造
        4.      スパイダの登録
        5.      照会前に自己紹介
        6.      厄介な状況に陥らないようにする
        7.      識別コードを見つける

2章 道具を揃える
        8.      Perlモジュールのインストール
        9.      LWP::Simpleを用いた簡単なデータ取得
        10.     LWP::UserAgentを用いたより複雑なリクエスト
        11.     リクエストにHTTPヘッダを追加する
        12.     LWPを用いたフォーム情報の送信
        13.     認証、クッキー、プロキシ
        14.     相対URLと絶対URLの取り扱い
        15.     SSLとブラウザ属性の設定
        16.     スクレーピング対象の作業負荷を軽減する
        17.     robots.txtを尊重する
        18.     スクリプトにプログレスバーを追加する
        19.     HTML::TreeBuilderを用いたスクレーピング
        20.     HTML::TokeParserを用いた解析
        21.     WWW::Mechanizeの基本
        22.     WWW::Mechanizeを用いたスクレーピング
        23.     正規表現礼賛
        24.     Template::Extractを用いてRSSを作成する
        25.     XPath早わかり
        26.     curlやwgetを用いたダウンロード
        27.     wget応用編
        28.     コマンドの連鎖実行にパイプを使用する
        29.     複数のユーティリティを一度に実行する
        30.     Web Scraping Proxyの利用
        31.     異常の検出
        32.     サイトの模様替えに備える

3章 メディアファイルの収集
        33.     調査の事例:Newgrounds
        34.     調査の事例:iFilm
        35.     米国議会図書館から動画をダウンロードする
        36.     Webshotsから画像をダウンロードする
        37.     dailystripsを用いてコミックをダウンロードする
        38.     お気に入りのウェブカムをアーカイブする
        39.     あなたのサイトに写真ニュースを
        40.     POP3サーバから電子メールの添付ファイルだけを保存する
        41.     プレイリストからMP3ファイルをダウンロードする
        42.     ngetを用いてニューズグループからダウンロードする

4章 データベースからのデータ収集
        43.     yahoo2mboxを用いて米Yahoo! Groupsのメッセージをアーカイブする
        44.     WWW::Yahoo::Groupsを用いて米Yahoo! Groupsのメッセージをアーカイブする
        45.     @nifty瞬!ワードからデータを取得する
        46.     Yahoo!全体のスパイダリング
        47.     Yahoo! JAPANの新着情報を追跡する
        48.     米Yahoo!とGoogleを組み合わせた拡散検索
        49.     Yahoo! JAPANカテゴリ内のマインドシェアをGoogleで調べる
        50.     Googleの検索結果からblog絡みのものを除去する
        51.     Googleを用いて特定のサイト群を検索する
        52.     Yahoo!テレビを使って番組の検索を行う
        53.     Yahoo!ブックスから、自分の好みにあった新刊書籍情報を取得する
        54.     Yahoo!ショッピングから売上ランキングの高い商品の情報を調べる
        55.     気象庁サイトから月間気象情報を取得する
        56.     国土交通省サイトから自動車のリコール情報を取得する
        57.     Googleの検索結果をAlexaのトラフィックランク順に表示する
        58.     Javaを用いてAlexaから情報をスクレーピングする
        59.     FreeDBとAmazon.comを用いてアルバム情報を検索する
        60.     流行の先端を行く音楽を見つける
        61.     毎日のホロスコープをiPodに保存する
        62.     RRDTOOLを用いたデータのグラフ化
        63.     株価情報の収集
        64.     スーパー著者検索
        65.     O'Reillyのベストセラーと図書館の蔵書状況を比較する
        66.     All Consumingのサイトから書籍一覧を入手する
        67.     FedExを利用した荷物の配送状況を追跡する
        68.     blogの新規コメントを確認する
        69.     RSSの集約と更新の通知
        70.     TechnoratiのLink Cosmosを使用する
        71.     関連のあるRSSフィードの検索
        72.     blogの自動検索
        73.     国立国会図書館から明治時代の書籍をダウンロードする
        74.     お客さんのいる場所のお天気は?
        75.     ジオターゲティングを用いたトレンドの予測
        76.     ヨーロッパを走る鉄道の最適ルートを調べる
        77.     住所から2点間の距離を求める
        78.     スーパー単語検索
        79.     Lexical Freenetを用いて英単語の関係を調べる
        80.     Bugtraqレポートの整形
        81.     ウェブの更新を電子メールで通知する
        82.     Internet Explorerのお気に入りをウェブサイトで公開する
        83.     気になるニュースをケータイに送信する
        84.     PHPを用いたスパイダリング
        85.     複数の検索エンジンからの結果を集積する
        86.     ロボットカラオケ
        87.     Yahoo!オークションの検索
        88.     レストランクーポン情報の取得
        89.     お下劣サイトの判定

5章 コレクションを維持管理する
        90.     作業の自動化にcronを使用する
        91.     cronを使用せずに作業をスケジューリングする
        92.     wgetとrsyncを用いたウェブサイトのミラーリング
        93.     検索結果数の長期的な変化を追跡する

6章 世の中に還元する
        94.     XML::RSSを用いたデータの再利用
        95.     あなたのサイトにRSSのヘッドラインを表示させる
        96.     リソースをスクレーピングしやすい形で公開する
        97.     RESTインタフェースによるリソースの公開
        98.     XML-RPCによるリソースの公開
        99.     AIMインタフェースを使用する
        100.    本書を読んだ後は

付録 日本語処理[訳者補]
        101.    Perlと日本語処理


索引