ホームページ  >  記事  >  バックエンド開発  >  Python クローラーを識別する方法

Python クローラーを識別する方法

silencement
silencementオリジナル
2019-05-22 18:03:225077ブラウズ

Python クローラーを識別する方法

1. 検証コードの入力

この種の検証コードは主に次の方法で渡されます。ユーザー 画像内の文字、数字、漢字などを入力して確認します。以下に示すように

Python クローラーを識別する方法


##解決策のアイデア: これは、次のことを特定する限り、最も単純な方法です。入力ボックス内の内容を入力します。この認識技術は OCR と呼ばれますが、ここでは Python のサードパーティ ライブラリである tesserocr を使用することをお勧めします。図 2 に示すように、バックグラウンドの影響を受けない検証コードの場合は、このライブラリを通じて直接識別できます。ただし、ノイズの多い背景を持つ検証コードの場合、直接認識率は非常に低くなります。このような状況に遭遇した場合、最初に画像を処理し、最初に画像をグレースケール化し、次にそれを 2 値化してから認識する必要があります。認識率が大幅に向上します。

2. スライド検証コード

Python クローラーを識別する方法

##解決策: この種の確認コードは少し複雑ですが、対応するメソッドがあります。私たちが直接考えているのは、人間が検証コードをドラッグし、ボタンをクリックしてギャップの位置を確認し、最後にパズルをギャップの位置にドラッグして検証を完了するという動作をシミュレートすることです。

ステップ 1: ボタンをクリックします。すると、ボタンをクリックしないと隙間やパズルが表示されず、ボタンをクリックすると表示されることがわかり、隙間の位置を見つけるヒントになりました。

ステップ 2: ギャップ位置までドラッグします。パズルを隙間までドラッグする必要があることはわかっていますが、この距離を数値で表すとどうでしょうか。最初のステップで観察した現象により、ギャップの位置がわかります。ここでは 2 つの写真のピクセルを比較し、ベンチマーク値を設定できます。特定の位置での差がベンチマーク値を超えていれば、2 つの写真の異なる位置が見つかりました。もちろん、右側から開始します。パズルです。横から開始して左から右に移動し、最初の異なる位置を見つけたら終了します。この位置はギャップの左側である必要があるため、セレンを使用してこの位置までドラッグできます。ここでのもう 1 つの質問は、これら 2 つの写真を自動的に保存する方法です。ここでは、まずラベルを検索し、次にその位置とサイズを取得します。次に、上、下、左、右 = location['y'], location['y'] size['height'] location['x'] size ['width'] 、次にスクリーンショットを撮り、最後に画像を切り取ってこれらの 4 つの位置を塗りつぶします。具体的な使用方法については、Selenium のドキュメントを参照してください。ボタンをクリックする前に画像を切り出し、ボタンをクリックした後に画像を切り出します。最後にドラッグするときは、最初に加速し、次に減速するという人間の動作をシミュレートする必要があります。この種の検証コードには動作特性検出機能があるため、人間が一定の速度を維持することは不可能であり、そうでない場合は機械の引きずりであると判断され、検証に合格しません。

関連する学習に関する推奨事項: Python チュートリアル

以上がPython クローラーを識別する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。