×
固定報酬制
|
ワーカーと相談する
|
---|---|
納品完了日
|
- |
掲載日
|
2022年12月20日 |
応募期限
|
2023年01月02日 |
必要なスキル
|
応募した人 | 5 人 |
---|---|
契約した人 | 1 人 |
募集人数 | 1 人 |
気になる!リスト | 14 人 |
【 概要 】 下記マッチングアプリのweb版へログインし、「さがす」のページに表示される異性を順にクリック→戻るを繰り返すテストプログラムの作成 https://with.is/ 下記に過去作成頂いたものを記載します。 このファイルのプログラムを動かすと、サイト側からbot認定されアクセス利用停止となります。 依頼としましては、botと認定されずアクセス利用停止にならないように概要のテストプログラムを作成くださいませ。 【補足】 chromeのユーザープロファイルにログイン設定は残すので、ログインの処理は必要ありません。 下記の流れになるかと想定しています selenium使用時にユーザープロファイルを読み込むようにして2段階認証が発生しないようにする さがすページを開き、スクロールしてユーザーを読み込み 表示されるユーザーのURLを取得 ユーザ詳細ページ<==>一覧ページの遷移を繰り返す 【利用停止となっているコード】 こちらをベースにして頂いて構いません。 遷移の速さや多さなどによってbotと判定されてしまうためbot判定されない範囲を調査、コードの修正をお願いいたします。 -------- import time from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager # ChromeDriverの自動バージョン管理 ############################################################################## # ユーザプロファイルのパス(chrome://version より確認可能) PROFILE_PATH = 'XXXXX' ############################################################################## # 検索する最大のユーザー数 MAX_USER_NUM = 450 def main(): # Webドライバのセットアップ options = webdriver.ChromeOptions() options.add_argument(f'--user-data-dir={PROFILE_PATH}') driver = webdriver.Chrome(ChromeDriverManager().install(), options=options) # ChromeDriverの自動バージョン管理 driver.implicitly_wait(5) # マッチングサイトにアクセス driver.get('https://with.is/') # ユーザ数が最大件数に到達する or 取得できなくなるまでデータを取得 while(1): user = driver.find_elements_by_class_name('link-area')#[-1] print(len(user)) driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") time.sleep(3) if(user[-1] == driver.find_elements_by_class_name('link-area')[-1]): break if(len(driver.find_elements_by_class_name('link-area'))>MAX_USER_NUM): break # ユーザ一覧取得 users = driver.find_elements_by_class_name('link-area')[0:MAX_USER_NUM] # 取得したユーザ数が最大件数以上の場合、件数を調整 if(len(users)>MAX_USER_NUM): users = users[0:MAX_USER_NUM] # ユーザ詳細ページのURLのみを配列に退避 urls = [] for user in users: url = user.get_attribute('href') urls.append(url) # ユーザ詳細ページ<==>一覧ページの遷移繰り返し for url in urls: # n番目のユーザ詳細ページへ遷移 driver.get(url) print(f"{urls.index(url)+1}番目のユーザ詳細ページへ遷移しました") # 1つ前のページ(ユーザ一覧ページ)へ戻る #driver.back() time.sleep(1) if __name__ == "__main__": main() 【 納期 】 即日希望 【 契約金額(税抜) 】 1000〜2000円程度で見積もりをお願いします。 【 重視する点・開発経験 】 ・動作が安定している 【 応募方法 】 初心者の方でもOKです。最初の評価づくりいかがでしょうか。 基本的に高評価いたします。 ご質問がありましたら、気軽にお問い合わせください。 応募をお待ちしております! |
クラウドワーカー | 応募日時 |
---|---|
kozome8 | 2022/12/27 13:31 |
Kusu00 | 2022/12/25 21:31 |
sironeko789 | 2022/12/22 18:57 |
sarusy | 2022/12/22 13:53 |
watanabenabeyuya | 2022/12/20 22:26 |