ホームページ  >  記事  >  バックエンド開発  >  Python クローラーのエントリーレベルの識別検証コード

Python クローラーのエントリーレベルの識別検証コード

PHPz
PHPzオリジナル
2017-03-05 13:48:382312ブラウズ

前回の話: この記事で言及した内容は、昨年の夏休み中にブロガーが行ったもので、私はまだ自分の気持ちを紙に書き出すほど落ち着いていません。どれくらい書けるか、それがこの記事です。

認証コード?私も割ってみようかな?

認証コードの導入については多くは言いません。ブロガーはノースイースタン大学の学生として、学務部の認証システムに最も頻繁に接しています。 . コード化されています。
東達大学の認証コードは入力するのが難しすぎると批判されています。大文字と小文字が区別されるだけでなく、この時点でエラーメッセージが表示されることがあります。ポップアップ。 禁止你的左键复制(ただし、人間が操作しやすいように、201Python クローラーのエントリーレベルの識別検証コード-17年度に教務室が認証コードの内容を変更しました。)

Office は非常に規則的で、各文字や数字の大きさ、位置、形状などがすべて固定されており、確認コードを識別する基礎のない初心者に適しています。

識別方法

シミュレートされたログインには複雑な手順がありますが、ここでは、他の操作とは関係なく、入力された確認コードの画像に基づいて応答文字列を返すだけです。

検証コードが干渉を生み出すために画像をカラフルにすることはわかっていますが、このステップでは画像の色を強調したり、コントラストを高めたりすることが必要です。

写真をさまざまに加工した後、最終的に干渉を除去するためのより完璧な解決策を見つけました。干渉を除去した後、最適な環境下では、非常に純粋な白黒のキャラクター画像が得られることがわかります。画像内に 4 つの文字が含まれているため、4 つの文字すべてを一度に認識することはできません。各小さな画像に 1 つの文字のみが含まれるように画像を切り取ってから、各画像を個別に認識する必要があります。

次のステップでは、まず、取得した小さな画像を 01 で表される行列に変換します。各行列は文字を表します。

例えば、数字のPython クローラーのエントリーレベルの識別検証コードの行列

num_Python クローラーのエントリーレベルの識別検証コードPython クローラーのエントリーレベルの識別検証コード[
0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,1,1,0,0,0,0,0,0,
0,0,0,0,1,1,1,0,0,0,0,0,0,
0,0,0,1,1,1,0,0,0,0,0,0,0,
0,0,0,1,1,0,0,0,0,0,0,0,0,
0,0,1,1,0,0,0,0,0,0,0,0,0,
0,0,1,1,0,0,0,0,0,0,0,0,0,
0,1,1,1,1,1,1,1,0,0,0,0,0,
0,1,1,1,1,1,1,1,1,0,0,0,0,
0,1,1,0,0,0,0,1,1,1,0,0,0,
0,1,1,0,0,0,0,0,1,1,0,0,0,
0,1,1,0,0,0,0,0,1,1,0,0,0,
0,1,1,1,0,0,0,1,1,1,0,0,0,
0,0,1,1,1,1,1,1,1,0,0,0,0,
0,0,0,1,1,1,1,1,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,
]
遠くから見ても、目を細めればまだ区別できます。

東達大学学務局の認証コードは非常に規則的であり、各番号の位置が固定されているため、機械学習アルゴリズムを使用する必要はなく、単純な行列比較だけです。用意された行列の中で最も類似度が高い行列 ここではさまざまな比較方法があり、とにかく簡単で正確にデータを識別できます。

この時点で、確認コードの識別作業は終了です。

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