レート制限を回避する方法..Pythonを使用したHTMLエラー1015

Dec 03 2020

だから私はインターネット上で私のためにいくつかのことをするための自動化ボットを作成しました..SeleniumPythonを使用しています..このプロジェクトに取り組んでいる昼夜を問わず、長くてうっとうしいコーディングセッションの後、私はついにそれを完了しました...エラー1015「レート制限されています」でランダムに挨拶されました。

これはDDOS攻撃を防ぐためだと理解しています。しかし、それは大きな打撃です。

私は問題を解決するためにウェブサイトに連絡しましたが、役に立ちませんでした..しかし、彼らが使用するサードパーティのセキュリティソフトウェアは、ウェブサイトがレート制限の私のIP除外を許可できると言っています。

だから私はこれをバイパスする他の方法があるのだろうかと思っていました..多分コーディングの観点から...私はクッキーをクリアするようなものが何かを解決するとは思わない..または彼らがブロックしているのは私の特定のIPアドレスなので

注:ボットを実行しているWebサイトのTofCは、自動化ソフトウェアを使用できないとは言っていませんが、どちらも使用できないとは言っていません。

ランダムアクセスの拒否を防ぐために、もう少しコーディングしてもかまいません。このビルドの最終段階では、プログラムを毎日長期間実行することになるため、24時間続くと考えられます。これは有害な場合があります。

サードパーティのセキュリティと通信して、アクセスを許可するようにWebサイトに依頼するように依頼できると思いますか..私はすでにWebサイトで問題を解決しようとしました。彼らが言ったのは、A。そこには私は元気だと書かれているB.問題はおそらく私の側にある..「悪意のあるソフトウェアが私たちのウェブサイトにアクセスしようとしているのかもしれない」。そういうわけで、自分で問題を解決したほうがいいのではないかと思いました。

プロセス間などで待機時間を実装する必要があると思いますか。私は立ち往生しています。

助けてくれてありがとう。そして、その単一のボット!

回答

1 DebanjanB Dec 04 2020 at 07:08

あなたがランダムに迎えられたら...

...サイト所有者が訪問者のトラフィックに影響を与えるレート制限を実装したことを意味します。


レート制限の理由

Cloudflareは、辞書攻撃の可能性に対抗しようとする訪問者のトラフィックをレート制限できます。


レート制限のしきい値

一般的なケースでは、Cloudflareは、訪問者のトラフィックがレート制限のしきい値を超えたときに訪問者をレート制限します。これは、キャッシュされていないWebサイトリクエストの24時間を、同じ24時間のユニークビジターで割ることによって計算されます。次に、訪問の推定平均分数で割ります。最後に、4(またはそれ以上)を掛けて、Webサイトの1分あたりの推定しきい値を確立します。ほとんどの攻撃は通常のトラフィックレートを1桁上回っているため、4より大きい値で問題ありません。


解決

このような場合、考えられる解決策は、undetected-chromedriverを使用してChromeブラウジングコンテキストを初期化することです。

undetected-chromedriverは、最適化されたSelenium Chromedriverパッチであり、Distill Network / Imperva / DataDome /Botprotect.ioなどのボット対策サービスをトリガーしません。ドライババイナリを自動的にダウンロードしてパッチを適用します。

  • コードブロック:

    import undetected_chromedriver as uc
    from selenium import webdriver
    
    options = webdriver.ChromeOptions() 
    options.add_argument("start-maximized")
    driver = uc.Chrome(options=options)
    driver.get('https://bet365.com')
    

参考文献

関連する詳細なディスカッションがいくつかあります。

  • Herokuでホストされている場合、SeleniumアプリはCloudflareページにリダイレクトされます
  • LinkedinAPIスロットル制限
1 hhz Dec 03 2020 at 22:26

私はここであなたのためにいくつかの可能性を見ます:

  • サイトへのリクエスト間の待機時間を導入します
  • あなたがする要求を減らしなさい
  • ボットを拡張して、制限に達したときを検出し、IPアドレスを変更します(ルーターを再起動するなど)

最後のものは、私が想定する中で最も好ましくなく、最も時間のかかるものでもあります。

1 ex-zac-tly Dec 03 2020 at 22:30

最初に:ウェブサイトの利用規約を読みます。たとえば、robots.txtを見てください。通常、これはwww.google.com/robots.txtのようなウェブサイトのルートにあります。ウェブサイトの所有者の明示的な条件に違反することは、管轄によっては違法であり、所有者がツールやIPをブロックする可能性があることに注意してください。

https://www.robotstxt.org/robotstxt.html

これにより、Webサイトの所有者が自動化とスクレイピングを明示的に許可していることがわかります。

あなたがウェブサイトの利用規約を確認し、それらが何を許可するかを理解し、彼らがあなたに応答せず、あなたがウェブサイトの利用規約に違反していないと判断した後、唯一の本当の他のオプションはプロキシやVPSを利用することですこれにより、スクリプトを実行しているシステムに異なるIPが与えられます。