webスクレイピングの方法と注意点

Webスクレイピングとは

サイトにアクセスし、HTMLを取得する技術のこと。
サイトの情報を取得し、データを抜き取り、自社サイトへ表示するなどの手法が用いられる。
ただし、著作権や、相手サイトへ損害を与えた場合など、訴えられることもあるので注意が必要。

ライブラリ

  • Goutte
  • Simple HTML DOM Parser
    • こっちがメジャー?

注意

  • 相手側サーバに負荷をかけてはいけない
    • 頻度を減らさなければ?
    • サーバアクセスの間隔を1秒以上空ける?
  • Pragma:No-cacheメタタグが設定されているページはダウンロードしない。
  • rel=”nofollow”が設定されているリンクはクローラーで辿らない
  • アクセスのたびにスクレイピングをすると、相手サイトが仕様変更した際にページが正しく表示できなくなる
  • 著作権の問題
    • スクレイピングする情報はダウンロードしてもいいものなのか
  • その他
    • スクレイピングはグレーなので、やるなら私的利用
    • 会社によってはスクレイピングを禁止しているところもある
      また、スクレイピングによって、会社に損益を与えると、損害賠償などの話にもなり得ますので、ご注意。

著作権法でスクレイピングは許可されている

  • 制限付きだけど
    • Web検索サービス提供目的ならOK
    • 情報解析目的ならOK
  • 著作権?
    • 私的利用ならOKだけど、外部に公開するとだめ
  • 引用すればOK?
    • 公表された著作物は、引用して利用することができる
    • 自分のオリジナルの文章が多くを占め、自分の文章の説明や補強として、他人の文章を利用する(引いてくる)というのが引用
  • 引用の条件は?
    • 公表された著作物
    • 引用するものとの区別ができている
    • どこから引用されたのかが明確
    • 利用サイトが主、引用されたものが従の関係ができている
  • 引用の条件2
    • 利用目的
    • 利用方法、形態
    • 著作物の種類、性質
    • 著作権者への影響

Fatal error: Uncaught Error: Call to undefined function set_post_views() in /home/jszk/desnote.com/public_html/wpjs/wp-content/themes/the-thor-child/single.php:658 Stack trace: #0 /home/jszk/desnote.com/public_html/wpjs/wp-includes/template-loader.php(78): include() #1 /home/jszk/desnote.com/public_html/wpjs/wp-blog-header.php(19): require_once('/home/jszk/desn...') #2 /home/jszk/desnote.com/public_html/index.php(17): require('/home/jszk/desn...') #3 {main} thrown in /home/jszk/desnote.com/public_html/wpjs/wp-content/themes/the-thor-child/single.php on line 658