Python-web-scraping-processing-captcha
Python Webスクレイピング-CAPTCHAの処理
この章では、人間またはロボットのユーザーをテストするために使用されるCAPTCHAをWebスクレイピングおよび処理する方法を理解しましょう。
CAPTCHAとは何ですか?
CAPTCHAの完全な形式は、Computers and Humans Apartに伝えるための*完全に自動化されたパブリックチューリングテスト*です。これは、ユーザーが人間かどうかを判断するテストであることを明確に示唆しています。
CAPTCHAは歪んだ画像であり、通常はコンピュータープログラムで検出するのは簡単ではありませんが、人間はなんとかして理解することができます。 ほとんどのWebサイトはCAPTCHAを使用して、ボットの相互作用を防ぎます。
PythonでのCAPTCHAの読み込み
Webサイトで登録を行い、CAPTCHAにフォームがあるとします。CAPTCHAイメージを読み込む前に、フォームに必要な特定の情報を知る必要があります。 次のPythonスクリプトの助けを借りて、http://example.webscrapping.com [[[1]]]という名前のWebサイトの登録フォームのフォーム要件を理解できます。
上記のPythonスクリプトでは、最初にlxml pythonモジュールを使用してフォームを解析する関数を定義し、次にフォーム要件を次のように出力します-
上記の出力から、 recpatcha_response_field を除くすべての情報が理解可能で簡単であることを確認できます。 ここで、この複雑な情報をどのように処理し、CAPTCHAをダウンロードできるかという疑問が生じます。 これは、次のようにPillow Pythonライブラリを使用して実行できます。
Pillow Pythonパッケージ
Pillowは、画像を操作するための便利な機能を備えたPython Imageライブラリのフォークです。 次のコマンドの助けを借りてインストールすることができます-
次の例では、CAPTCHAをロードするためにそれを使用します-
上記のpythonスクリプトは、 pillow pythonパッケージを使用し、CAPTCHAイメージをロードするための関数を定義しています。 登録フォームに関する情報を取得するために、前のスクリプトで定義されている* form_parser()*という名前の関数と共に使用する必要があります。 このスクリプトは、CAPTCHAイメージを有用な形式で保存し、さらに文字列として抽出できます。
OCR:Pythonを使用して画像からテキストを抽出する
CAPTCHAを有用な形式で読み込んだ後、画像からテキストを抽出するプロセスである光学式文字認識(OCR)を使用して、CAPTCHAを抽出できます。 この目的のために、オープンソースのTesseract OCRエンジンを使用します。 次のコマンドの助けを借りてインストールすることができます-
例
ここで、次のようにPillow Python Packageを使用してCAPTCHAをロードした上記のPythonスクリプトを拡張します-
上記のPythonスクリプトは、白黒モードでCAPTCHAを読み取ります。これは、次のようにtesseractに簡単に渡すことができます-
上記のスクリプトを実行した後、出力として登録フォームのCAPTCHAを取得します。