python爬虫類はいつもデータに登れないので、反爬虫類を解決する必要があります.


爬虫類が一番嫌いなのは反爬虫類ですが、反爬虫類が存在しなければ、みんな勝手に爬虫類を作ることができますが、サーバーはどのように支えられますか?
だから反爬虫は1つの敷居で、この敷居を越えて簡単に爬虫の技術を掌握することができて、越えられないならばあなたはずっと起点にいます.
現在よく見られる反爬虫類はそのいくつかにほかならない(爬虫類のリクエストヘッダ、リクエスト頻度、検証コードを見る......)
第1の処理要求ヘッダ
リクエストヘッダの処理は非常に簡単なことであり、ブラウザのリクエストヘッダを直接使用することができます.
headers = {"User-Agent":'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}
#                        

pythonのサードパーティライブラリfake-useragentを使用して設定することもできます.pythonのサードパーティライブラリを使用すると、モジュールにすべてのブラウザのリクエストヘッダが統合されており、直接インポートできるとともに、リクエストヘッダ情報を自由に切り替えることができます.
from fake_useragent import UserAgent

ua = UserAgent()        #                  

header = {'User-Agent':ua.random}       #          

第2の要求頻度の処理
サーバがIPアドレスを要求する回数の制限に対して、同一のIPが一定時間内に要求する回数が速すぎると、そのIPアドレスが閉鎖される.この場合、最も簡単で直接的なのは、要求の頻度を低下させるために遅延を追加することである.もう一つの方法はエージェントIPアドレスを交換し、エージェントIPアドレスを使用して、一定回数の要求を開始するたびにIPアドレスを交換することであり、これは非常に完璧な爬虫類である.どのようにエージェントIPを交換するかと自分のエージェントIPプールを構築するかについては、私の前のいくつかの文章で詳しく紹介しましたが、ここでは説明しません.いくつかの無料の高匿代理サイトを紹介します:(西祠代理、速代理、雲代理......)
第3の検証コードの処理は,検証コード市場において多様な形式の検証コードが存在するが,まずいくつかの簡単な検証コード形式を紹介する.グラフィック検証コード:このような検証コードの多くはコンピュータがランダムに文字列を生成し、文字列をノイズ、干渉線、変形、重なり、異なる色、ねじれを1枚の画像に増やして識別の難しさを増加させる.(解決方法:orcモジュールを用いて画像を二値化し、画像検証コードを抽出する)
スライド検証コード:行為検証コードとも呼ばれ、比較的流行している検証コードであり、ユーザーの操作行為を通じて検証を完了し、その中で最も有名なのは極検である.(ソリューション:開発者ツールにより、元のピクチャとスライドするピクチャを取得し、プログラムを使用して2枚のピクチャのRGBを比較し、アクティブな距離を求め、その後自動化ツール(selenium)を使用してスライド登録する)
スライド検証コードの原理は,機械学習における深さ学習技術を用いて,いくつかの特徴に基づいて正常なユーザであるか否かを区別することである.ユーザのスライド速度と,時間毎の瞬時速度,ユーザのマウスクリック状況,スライド後のマッチング度合いを記録することによって識別する.また,正しい位置にスライドすることが検証通過であるというのではなく,特徴認識に基づいて真のユーザであるか否かを区別し,正しい位置にスライドすることは必要条件である.
点触検証コード:クリッククラス検証コードはすべて1枚の文字を含む画像を与えて、文字を通じてユーザーに図の中の同じ字の位置をクリックすることを注意して検証します.(解決策:認証コードピクチャとクリックする認証ワードの順序を取得し、その後ピクチャを識別し、各検証ワードの位置を取得し、自動化ツールを使用してクリック対応の位置を行う)
第4種類のJavaScriptフロントエンドはデータをレンダリングして、ホームページに対して1をレンダリングして、開発者のツールの中でデータの出所を探すことを試みて、データのインタフェースを探し当てて、データのインタフェースを使って呼び出して、データを取得して、簡単で直接です;2、複雑なウェブページに対して、データインタフェースが見つからない場合、seleniumモジュールを使用して、内蔵ブラウザを使用してウェブページが正常に開いたことをシミュレートし、ソースコードデータを取得することができる.