参考資料:Pythonクローラー、本当にわかりますか? :[https://www.bilibili.com/read/cv4144658](https://www.bilibili.com/read/cv4144658)
クローラー:人件費を節約するためにコンピューターから情報を取得します。節約しない場合は、使用する必要はありません。
究極のアンチクローラー:コンピューターと人を区別して、コンピューターへのアクセスを排除し、人がアクセスできるようにします。
最終的な結論:爬虫類と反爬虫類には終わりがあります。
クローラーの終わりは、極端なユーザーシミュレーション(自動化)です。
反爬虫類の終わりは、機械では認識できないが人間では認識できる検証コードです。
だから、トラブルを救うために、自動化するための1つのトリックを学んでみませんか?少し遅いですが、大丈夫そうです。自動化して重要な情報を取得してから、同時リクエストに移動します。
一般的な爬虫類対策:
1、 訪問頻度
頻繁にアクセスすると、IPに対して一定期間Webサイトがブロックされる場合があります。これは、アンチDDoSの原則と同じです。クローラーの場合、このようなタスクの頻度を制限するだけで十分です。
クローラーに人間のように頻繁にWebページにアクセスさせ、5秒と10秒間スリープさせます。
2、 ログイン制限
情報を公開するウェブサイトには一般的にこの制限がないため、ユーザーは面倒です。これは、Cookieを追加して、シミュレートされたログインによって回避されます。
3、 ヘッダーをブロックする
ヘッダーを追加するだけで、偽造者がリクエストヘッダーをランダムに生成できます。
4、 Webサイトデータを動的に取得するJavaScriptスクリプト(アップグレード)
一部のWebサイト(特に単一ページのWebサイト)のコンテンツはサーバーから直接返されませんが、サーバーはクライアントJSプログラムのみを返し、JSがコンテンツを取得します。より高度な
つまり、jsはローカルでトークンを計算し、このトークンをajaxに使用してコンテンツに移動します。ローカルjsはコードが難読化および暗号化されているため、リクエストの解析が難しくなります。
ただし、ブラウザの操作を直接シミュレートすることで簡単に解読できます。
5、 検証コード(究極の武器)
確認コードは、人とコンピューターを区別するために特別に使用される手段です。クライミング防止のためには、検証コードの問題を解決できる必要があります。一般的な検証コードであるGoogleのreCAPTCHAは、非常に証明されています。
6、 ip制限
ウェブサイトで識別される可能性のあるIPは永久にブロックされます。この方法は多くの人的資源を必要とし、誤ってユーザーを殺すコストが高くなります。クラッキングの方法は、プロキシプールを使用することです。
7、 アンチクロールウェブサイトのコンテンツ
一部のWebサイトでは、コンテンツを写真の形式で表示するなど、Webサイトのコンテンツを人間だけが受信できる形式で表示します。画像認識はocrを使用できます。例:単一のリンク要求によって返されるデータ
これは画像のエンコードの一部にすぎず、複数のURL戻り結果を組み合わせた後、完全な画像を取得できます。
Recommended Posts