【質問】Webクローラーをやったことがありますか?どうやってやるの?何を登るのか、何を登らないのかはどうやって決めるのですか?

ベンチャー企業の面接の際、面接官からこんな質問をされて少し愕然としました。

「彼は何を望んでいるのですか?私に爬虫類になってほしいのですか?今、爬虫類になるのは非常に危険です。」と私は心の中で思いました。

私:「はい、同様の作業をしたことがありますが、クロールはすべて公開データであり、法的に問題はありません。」

インタビュアー: 「では、クロールしたデータに法的な危険性がないことはどうやってわかるのですか?」

私: 「ええと...このプロジェクトを開始する前に会社の法務チームに相談し、関連する調査を行っており、コードはサードパーティのコード監査に合格しているため、データの問題はありません。」

その後、面接官は沈黙した。

正直に言うと、当時私はこの質問をした目的が分かりませんでした (解決策を立てたかったのかもしれません。あるいは、この問題をどのように解決したかを調査したかったのかもしれません) が、おそらく彼は私にそんなことを期待していなかったと思います。とても丸く過ぎます。何年も経った今、この質問にもう一度答えることができるはずだと思います。

まず、何をすればいいでしょうか?

さて、Web クローラーを作るとなると、すぐに Python で作ろうと思いますが、やはりこの部分の Python のライブラリは非常に使いやすいです。ただし、私は自分のことを「まともにビジネスをしていないJava実践者」だと思っているので、Javaをベースに簡単にお話します。

最初のステップは間違いなく、プロキシ出力用の IP プールを計画することです (大きな穴、利用可能な IP を継続的に見つけるには他のツールと連携する必要があります)、次にマルチスレッドの動的制御 (大きな穴、繊細すぎて詳しく説明できません)。次に、PhantomJS (HtmlUtil) + Selenium のブラウザレス ページ構造の抽出 (大きな穴。ページの非同期レンダリング シーンに対処するには調整が必要です)、次にページ データが Jsoup を通じて解析され、データ クリーニング (大きな問題) が行われます。ピット、データ構造適応)、ストレージ...これは基本的な Web クローラーのニーズを満たすことができるはずだと思います。

したがって、最も重要なことは、どのデータをクロールできるかということです。登れないのはどれ?

答えを知るには「過去の教訓」を参照する必要があり、公式審判員を見つけるには、中国判決文書ネットワーク ( https://wenshu.court.gov.cn/ ) を選択します。アカウント登録すれば無料でチェックできます。

広範なデータ収集と分析の結果、次の結論が導き出されました。

行動 要約する
Web クローリング犯罪には次のものがあります。 1. 他人のWebサイトデータを営利目的でクローリングする行為(自社アプリの無料小説読み上げサービスの提供に利用すること、相手Webサイトの認証コードを解読して自社Webサイトで使用するデータを取得すること、営利を目的としてデータを取得すること)等 これらはすべて、著作権およびデータ所有権の侵害です;
2. 他の Web サイトのクローリング防止メカニズムをクラックするテクノロジーの使用や、パケット キャプチャや逆コンパイルなどの技術的手段を通じて Web サイト インターフェイス データを取得するなど、違法な手段によるデータの取得。コンピュータ情報システムのデータを不正に取得する行為
3. 大量の個人情報をクローリングしたり、ウェブサイトが麻痺するほど大量のトラフィックをクローリングしたりするなど、クローリングされるデータ量が大量であるか、他のウェブサイトの機能に重大な支障をきたす場合。これらは合理的な使用の範囲を著しく超えており、相応の法的責任が発生するものとします;
4. ターゲット Web サイトのクローリング防止対策を回避するクローラー プログラムの提供など、コンピュータ情報システムへの不法侵入に特別に使用されるプログラムまたはツールの提供5. ウェブサイトの
コードに隠された商業データのマイニングなど、商業秘密の漏洩につながる機密保持措置を講じないことは、商業秘密保護の違反となります。
ルールに従う 1. クロールしたい場合は、クライミング防止メカニズムを破壊したり回避したりすることなく、完全に公開されている情報をクロールできます; 2.
クロールされたデータは、商業目的ではなく、正当な学術研究目的にのみ使用されます;
3.クロール時のターゲット サーバーの負荷が高すぎるため、クロール頻度を制限する必要がある;
4. ロボット プロトコルに準拠し、Web サイト所有者のクロール ルールを尊重する;
5. クロールされたデータを合理的に使用し、範囲を超えないこと使用の;
絶対違う 1. 商業目的での不正使用
2. Web サイトのクローラー対策技術的手段の破壊または回避
3. 個人のプライバシーや企業秘密などの機密データのクロール 4.
コンピューター情報システムに侵入または破壊するプログラムまたはツールの提供 5. コンピューター情報システムに侵入または破壊するプログラムまたはツールの提供
5. 頻繁にデータをクローリングするとサーバーに大きな負荷がかかる
6. 機密保持対策を怠るとデータ漏洩につながる 6.

したがって、技術的な観点から、次の 7 つの点を遵守する必要があります。

  1. ロボットプロトコルを識別して遵守し、クローリングオブジェクトの要件に従ってクローリング頻度、パスなどを合理的に設定します。
  2. コンピューター情報システムへの不正アクセスであるアンチクライミング技術を回避するために、認証コードのクラッキングや模擬ログインなどの方法を使用しないでください。
  3. ソフトウェアを逆コンパイルしたり、ネットワーク データ トラフィックを監視したりせずにインターフェイス データを取得することは、違法なデータ取得です。
  4. アンチクライミングやコンピュータ情報システムへの不正侵入をクラッキングするためのツールやサービスを提供しないでください。
  5. 個人のプライバシー情報、商業秘密、国防建設、国政関連データ、先端科学技術関連データなどは、断固としてクロールしません。
  6. 分散技術、非同期技術、その他の技術を使用してクロールの頻度を制御し、ターゲット サーバーの過負荷を回避します。
  7. サイトのクローリングが禁止されているという通知を受け取った場合は、直ちに停止してください。

基本的には上記のすべてです。皆さんに思い出していただきたいのですが、法律の根幹に触れるようなことや国家安全保障を危険にさらすようなことはしないでください惨事を引き起こさないように、理解するまでは Web クローラー関連のビジネスに安易に触れないことをお勧めします。本当に何かが起こった場合でも、自分で考えずに、専門の法務チームに相談してアドバイスを得る必要があります。

おすすめ

転載: blog.csdn.net/kida_yuan/article/details/132504209