Python-web-scraping-legality-of-python-web-scraping
Webスクレイピングの合法性
Pythonを使用すると、WebサイトまたはWebページの特定の要素をスクレイピングできますが、合法かどうかはわかりますか? Webスクレイピングの前に、Webスクレイピングの合法性について知る必要があります。 この章では、Webスクレイピングの合法性に関連する概念について説明します。
前書き
一般に、スクレイピングされたデータを個人的な使用に使用する場合、問題はない可能性があります。 ただし、そのデータを再公開する場合は、同じことを行う前に、所有者にダウンロードリクエストを行うか、スクレイピングするデータに関するポリシーやバックグラウンド調査を行う必要があります。
スクレイピングの前に必要な調査
データをスクレイピングするためにWebサイトをターゲットにしている場合、その規模と構造を理解する必要があります。 以下は、Webスクレイピングを開始する前に分析する必要があるファイルの一部です。
robots.txtの分析
実際、ほとんどの出版社はプログラマーがある程度自分のウェブサイトをクロールすることを許可しています。 他の意味では、出版社はウェブサイトの特定の部分をクロールすることを望んでいます。 これを定義するには、Webサイトは、クロールできる部分とできない部分を示すためのいくつかのルールを設定する必要があります。 このようなルールは、 robots.txt というファイルに定義されています。
ウェブサイトのrobots.txtファイルで定義されている最も一般的なルールのいくつかは次のとおりです-
上記のルールは、robots.txtファイルが BadCrawler ユーザーエージェントを持つクローラーにウェブサイトをクロールしないように要求することを意味します。
上記のルールは、サーバーの過負荷を回避するために、すべてのユーザーエージェントのダウンロード要求の間にrobots.txtファイルがクローラーを5秒間遅延させることを意味します。 /trap リンクは、許可されていないリンクをたどる悪意のあるクローラーをブロックしようとします。 Webサイトの発行者は、要件に応じてさらに多くのルールを定義できます。 それらのいくつかはここで議論されています-
サイトマップファイルの分析
更新された情報を求めてWebサイトをクロールする場合はどうするべきですか? 更新された情報を取得するためにすべてのWebページをクロールしますが、これにより特定のWebサイトのサーバートラフィックが増加します。 ウェブサイトがサイトマップファイルを提供している理由は、クローラーがすべてのウェブページをクロールすることなく更新コンテンツを見つけるのを支援するためです。 サイトマップ標準はhttp://www.sitemaps.org/protocollで定義されています。
サイトマップファイルのコンテンツ
以下は、robot.txtファイルで発見されたhttps://www.microsoft.com/robots.txtのサイトマップファイルの内容です-
上記のコンテンツは、サイトマップがウェブサイト上のURLをリストし、さらにウェブマスターが最終更新日、コンテンツの変更、他との関係におけるURLの重要性などの追加情報を指定できることを示しています。 各URLについて。
ウェブサイトのサイズは?
ウェブサイトのサイズ、つまり WebサイトのWebページの数は、クロールの方法に影響しますか? もちろんそうです。 クロールするWebページの数が少ない場合、効率は深刻な問題にはなりませんが、Microsoft.comなどのWebページに数百万のWebページがある場合、各Webページを連続してダウンロードするには数か月かかり、効率性は深刻な問題になります。
ウェブサイトのサイズを確認する
Googleのクローラーの結果のサイズを確認することで、ウェブサイトのサイズを推定できます。 Google検索の実行中にキーワード site を使用して、結果をフィルタリングできます。 たとえば、https://authoraditiagarwal.com/のサイズの見積もりは以下のとおりです-
約60の結果があることがわかります。これは、大きなWebサイトではなく、クロールしても効率の問題が発生しないことを意味します。
ウェブサイトで使用されているテクノロジーはどれですか?
もう1つの重要な質問は、Webサイトで使用されているテクノロジーがクロール方法に影響するかどうかです。 はい、影響します。 しかし、ウェブサイトで使用されているテクノロジーについてはどうすれば確認できますか? builtwith という名前のPythonライブラリがあり、その助けを借りてWebサイトで使用されているテクノロジーについて調べることができます。
例
この例では、https://authoraditiagarwal.comというWebサイトで使用されているテクノロジーを、Pythonライブラリ builtwith を使用して確認します。 しかし、このライブラリを使用する前に、次のようにインストールする必要があります-
今、次の簡単なコード行の助けを借りて、特定のウェブサイトで使用されている技術を確認できます-
ウェブサイトの所有者は誰ですか?
Webサイトの所有者も重要です。所有者がクローラーをブロックすることで知られている場合、クローラーはWebサイトからデータをスクレイピングする際に注意する必要があるためです。 Whois という名前のプロトコルがあり、これを使用してWebサイトの所有者を確認できます。
例
この例では、Whoisの助けを借りて、https://www.microsoft.com/en-in/[microsoft.com]と言うWebサイトの所有者を確認します。 しかし、このライブラリを使用する前に、次のようにインストールする必要があります-
今、次の簡単なコード行の助けを借りて、特定のウェブサイトで使用されている技術を確認できます-