ログイン必須のサイトでスクレイピングするプログラムを作っています。
selenium-webdriverでUserAgentを設定済みです。
options
1options.add_argument('--user-data-dir=D:\tmp\User Data') 2options.add_argument('--profile-directory=Profiel1') 3options.add_argument('--lang=en') 4 5 6driver = Selenium::WebDriver.for :chrome , options: options 7driver.get("chrome://version")
スクレイピングするサイトは、トップページにリストがあり、それぞれボタンをクリックしてページを移動、その先にある情報を取得するようにしています。
サーバーに負荷をかけない&偽装目的でランダムの秒数ウェイトをかけるようにしているのですが、連続して行うと画像認証などが出てきてスクレイピングと判断されているようです。同様の作業を手作業でゆっくり行うと画像認証は出ないため、何らかの対策で判断を回避できると考えています。
自分で考えてみたところ、判断を回避するためには
・ページ移動を「ページ1→ページ2」という風に順番ではなく「ページ5→ページ21」という風にランダムにする
・10件取得したら10分というように長時間のウェイトを入れる
・取得するページを絞る
・プロクシを利用する(ログイン必須なのであまり意味がない?)
この3つを考えていますが、有効でしょうか?
また、他に有効な策はありますか?
ご存じの方がいましたら御教示よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/24 10:27