毎日欠かさずチェックしているウェブページがありますか?ウェブ上のデータを二次利用したくありませんか?ウェブサービスを駆使してみたくないですか?そう思ったことがあるのなら、この本を読むべきです。本書は、ウェブを横断して情報を自動収集するプログラム、スパイダを自由自在に操り、目的の情報を取り出す方法を詳しく解説しています。また、各Hackを積極的に日本語化し、訳書版独自のHackや日本語処理の注意点(付録)を収録するなど、至れり尽くせりの内容です。スパイダ通のテクニックが満載!
Spidering Hacks
―ウェブ情報ラクラク取得テクニック101選
Kevin Hemenway, Tara Calishain 著、村上 雅章 訳
- TOPICS
- Hacks , Web , Perl
- 発行年月日
- 2004年05月
- PRINT LENGTH
- 544
- ISBN
- 4-87311-187-0
- 原書
- Spidering Hacks
- FORMAT
関連ファイル
正誤表
ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日をご確認の上、ご利用ください。
正誤表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と日本語処理 索引