pythonアンチステーキ機構の5つの解決方法
前言
アンチ爬虫剤はウェブサイトが自分の核心の安全を守るために採用した爬虫類を抑制する手段で、アンチ爬虫剤の手段はいろいろあります。普通はBaiduなどのウェブサイトを除いて、反撃メカニズムは常に更新されます。ウェブサイトの効率的な運営を維持するために、ウェブサイトで取り上げられている反ステーキメカニズムはあまり多くないです。今日はいくつかの私が爬虫類過程で遭遇した反ステーキメカニズムを共有し、その解決方法を簡単に紹介します。
User-Agentに基づいて反対に登ります。
紹介:サーバーのバックグラウンドからアクセスするUser_Agentは統計を行い、単位時間内に同じUser_Agentアクセスの回数が特定のしきい値を超えていると、ある程度のIPが封じられ、爬虫類ができない状況になります。
解決方法:
一.よくあるUser-Agentをuauに置く。リスト形式でランダムに使用する
コードの例:
二.fake_をロードするUser-Agentをランダムに生成し、headersに追加する。
コードの例:
2 IPに基づいてアンロードする
プロフィール:爬虫類プログラムは、指定されたサーバに対して、短時間で高周波のリクエストを行う場合があります。バックグラウンドサーバーはアクセスを統計していますが、単位時間内に同じIPにアクセスする回数が一つの特定の値(しきい値)を超えると、ある程度のIP禁止ができ、爬虫類操作ができなくなります。
解決方法:プロキシプールを使用して、遅延アクセスを設定します。
プロキシサーバはどうやって取得しますか?無料:西祠代理、クイックエージェント、Goubanjia有料:エージェント精霊など
コードの例:
3クッキーによる反ステーキ
簡単な紹介:ホームページはクッキーを通じてあなたの訪問過程を追跡します。爬虫類行為があるとすぐにあなたの訪問を中断します。例えば、特別に早い記入フォームや短い時間で大量のページを閲覧します。cookieを正確に処理して、また多くの採集問題を避けることができて、ウェブサイトを採集する過程の中で提案して、これらのウェブサイトの生成のcookieを検査して、それからどれが爬虫類の処理が必要なのかを考えてみます。
解決方法:
手動処理
cookieをheaders辞書にカプセル化し、この辞書をget/post方法のheadersパラメータに作用させる。
二自動処理
二回の処理が必要です。第1回は、cookieをキャプチャし、格納するためにsessionオブジェクトに、第2回はcookieを携帯するsessionで送信を要求するもので、今回のリクエスト送信はcookieを携帯して開始する要求である。requestsと同様にget/postを呼び出して要求の送信を行うことができます。sessionを使用して要求送信を行う過程で、クッキーが発生すると、cookieは自動的にsessionオブジェクトに格納されます。
コードの例:
画像の怠惰なロードは、ウェブページの最適化技術です。画像はネットワークリソースとして、要求された時も通常の静的リソースと同じように、ネットワークリソースを占有し、一度にページ全体のすべての画像をロードし終わると、ページの最初のスクリーンローディング時間が大幅に増加します。このような問題を解決するために、前後の協力を通じて、ブラウザの現在のウィンドウ内に画像が表示された時だけ、この画像をロードします。ウェブソースの中では、まず「疑似属性」(通常はsrc 2、origginnalを使用しています。)を使って本物のリンクを保存します。これはsrc属性の中に直接保存するのではありません。画像がページの可視化領域に現れたら、動的に疑似属性をsrc属性に置き換え、画像のロードを完了します。
解決方法:ページの構造を詳しく観察することにより、画像のリンク真鎖の疑似属性は、一般的にはSrcではなく、src 2において、xpathがこの属性を使用することがわかった。
サンプルコード:
5 Ajaxダイナミックローディング
ウェブページのurlからウェブページのソースコードを読み込んだら、ブラウザでJavaScriptプログラムを実行します。これらのプログラムは、より多くのコンテンツをロードし、これらのコンテンツをウェブページに転送します。これはなぜいくつかのページが直接にURLを登ってもデータがないからです。今このようなウェブサイトもだんだん多くなります。
解決方法:審査要素分析を使用して、対応するリンク(方法:右ボタン→審査要素→Network→空をクリックして、「より多く」をロードし、対応するGETリンクが現れたら、Typeはtext/htmlとなります。クリックして、getパラメータを確認したり、Request URLをコピーしたりします。「要求」の前にページがある場合は、前のURLから分析して1ページ目を導出します。これを類推して、Ajaxアドレスのデータをつかむ。戻ってきたjsonに対してrequestsの中のjsonを使って解析を行い、動的ローディングの法則を観察し、要求ヘッドの中で法則を使用する。
トラッキングツールのオススメ:fiddler
ここでは、pythonの反ステーキメカニズムに関する5つの解決方法についての文章を紹介します。これに関連して、pythonの反ステーキメカニズムの内容は以前の文章を検索したり、下記の関連記事を見たりしてください。これからもよろしくお願いします。
アンチ爬虫剤はウェブサイトが自分の核心の安全を守るために採用した爬虫類を抑制する手段で、アンチ爬虫剤の手段はいろいろあります。普通はBaiduなどのウェブサイトを除いて、反撃メカニズムは常に更新されます。ウェブサイトの効率的な運営を維持するために、ウェブサイトで取り上げられている反ステーキメカニズムはあまり多くないです。今日はいくつかの私が爬虫類過程で遭遇した反ステーキメカニズムを共有し、その解決方法を簡単に紹介します。
User-Agentに基づいて反対に登ります。
紹介:サーバーのバックグラウンドからアクセスするUser_Agentは統計を行い、単位時間内に同じUser_Agentアクセスの回数が特定のしきい値を超えていると、ある程度のIPが封じられ、爬虫類ができない状況になります。
解決方法:
一.よくあるUser-Agentをuauに置く。リスト形式でランダムに使用する
コードの例:
二.fake_をロードするUser-Agentをランダムに生成し、headersに追加する。
コードの例:
2 IPに基づいてアンロードする
プロフィール:爬虫類プログラムは、指定されたサーバに対して、短時間で高周波のリクエストを行う場合があります。バックグラウンドサーバーはアクセスを統計していますが、単位時間内に同じIPにアクセスする回数が一つの特定の値(しきい値)を超えると、ある程度のIP禁止ができ、爬虫類操作ができなくなります。
解決方法:プロキシプールを使用して、遅延アクセスを設定します。
プロキシサーバはどうやって取得しますか?無料:西祠代理、クイックエージェント、Goubanjia有料:エージェント精霊など
コードの例:
3クッキーによる反ステーキ
簡単な紹介:ホームページはクッキーを通じてあなたの訪問過程を追跡します。爬虫類行為があるとすぐにあなたの訪問を中断します。例えば、特別に早い記入フォームや短い時間で大量のページを閲覧します。cookieを正確に処理して、また多くの採集問題を避けることができて、ウェブサイトを採集する過程の中で提案して、これらのウェブサイトの生成のcookieを検査して、それからどれが爬虫類の処理が必要なのかを考えてみます。
解決方法:
手動処理
cookieをheaders辞書にカプセル化し、この辞書をget/post方法のheadersパラメータに作用させる。
二自動処理
二回の処理が必要です。第1回は、cookieをキャプチャし、格納するためにsessionオブジェクトに、第2回はcookieを携帯するsessionで送信を要求するもので、今回のリクエスト送信はcookieを携帯して開始する要求である。requestsと同様にget/postを呼び出して要求の送信を行うことができます。sessionを使用して要求送信を行う過程で、クッキーが発生すると、cookieは自動的にsessionオブジェクトに格納されます。
コードの例:
# session
cookiesess = requests.Session()
# cookie sess
sess.get(url='https://xueqiu.com/',headers=headers)
url = 'https://xueqiu.com/v4/statuses/public_timeline_by_category.json?since_id=-1&max_id=20367942&count=15&category=-1'
json_data = sess.get(url=url,headers=headers).json()json_data
4画像のローディング画像の怠惰なロードは、ウェブページの最適化技術です。画像はネットワークリソースとして、要求された時も通常の静的リソースと同じように、ネットワークリソースを占有し、一度にページ全体のすべての画像をロードし終わると、ページの最初のスクリーンローディング時間が大幅に増加します。このような問題を解決するために、前後の協力を通じて、ブラウザの現在のウィンドウ内に画像が表示された時だけ、この画像をロードします。ウェブソースの中では、まず「疑似属性」(通常はsrc 2、origginnalを使用しています。)を使って本物のリンクを保存します。これはsrc属性の中に直接保存するのではありません。画像がページの可視化領域に現れたら、動的に疑似属性をsrc属性に置き換え、画像のロードを完了します。
解決方法:ページの構造を詳しく観察することにより、画像のリンク真鎖の疑似属性は、一般的にはSrcではなく、src 2において、xpathがこの属性を使用することがわかった。
サンプルコード:
5 Ajaxダイナミックローディング
ウェブページのurlからウェブページのソースコードを読み込んだら、ブラウザでJavaScriptプログラムを実行します。これらのプログラムは、より多くのコンテンツをロードし、これらのコンテンツをウェブページに転送します。これはなぜいくつかのページが直接にURLを登ってもデータがないからです。今このようなウェブサイトもだんだん多くなります。
解決方法:審査要素分析を使用して、対応するリンク(方法:右ボタン→審査要素→Network→空をクリックして、「より多く」をロードし、対応するGETリンクが現れたら、Typeはtext/htmlとなります。クリックして、getパラメータを確認したり、Request URLをコピーしたりします。「要求」の前にページがある場合は、前のURLから分析して1ページ目を導出します。これを類推して、Ajaxアドレスのデータをつかむ。戻ってきたjsonに対してrequestsの中のjsonを使って解析を行い、動的ローディングの法則を観察し、要求ヘッドの中で法則を使用する。
トラッキングツールのオススメ:fiddler
ここでは、pythonの反ステーキメカニズムに関する5つの解決方法についての文章を紹介します。これに関連して、pythonの反ステーキメカニズムの内容は以前の文章を検索したり、下記の関連記事を見たりしてください。これからもよろしくお願いします。