次の Web サイトからデータを収集して、特定のケースの詳細を見つけるにはどうすればよいですか?
ケースの詳細を手動で検索する手順は次のとおりです:
内部フォームはカプセル化されているように見えるため (おそらく JavaScript で実装されていると思います)、各入力が提供された後にレンダリングされる HTML 要素は表示されません。 Python を使用して自動化するにはどうすればよいですか?
P粉4587250402024-03-21 09:39:39
フォームは、ID「Clayton County」の iframe
内に含まれています。 Selenium がその中の要素と対話できるようにするには、まず EC.frame_to_be_available_and_switch_to_it
メソッドを使用して Selenium に切り替える必要があります。
次に、Select()
を使用して、ドロップダウン メニューからオプションを選択できます。
最後のページでは、すべてのケース番号の URL を取得して case_numbers_urls
に保存します。これにより、それらをループして各ケースをロードし、情報を取得して次のケースに渡すことができます。
Selenium インポート Web ドライバーから selenium.webdriver.common.by からインポート selenium.webdriver.support.ui からインポートを選択します selenium.webdriver.chrome.service インポート サービスから selenium.webdriver.support.ui から WebDriverWait をインポート selenium.webdriver.support から、expected_conditions を EC としてインポートします driver = webdriver.Chrome(service=Service(chromedriver_path)) driver.get('https://www.claytoncountyga.gov/government/courts/court-case-inquiry/') # ページ1 wait = WebDriverWait(ドライバー, 9) wait.until(EC.frame_to_be_available_and_switch_to_it((By.ID, "クレイトン郡"))) driver.find_element(By.XPATH, "//a[contains(.,'名前検索')]").click() # 2ページ ドロップダウン = wait.until(EC.element_to_be_clickable((By.ID, "ctt"))) Select(ドロップダウン).select_by_value('M') lname = 'スミス' fname = 'ジョン' driver.find_element(By.NAME, 'lname').send_keys(lname) driver.find_element(By.NAME, 'fname').send_keys(fname) driver.find_element(By.ID, 'btnSrch').click() # 3ページ目 case_numbers_urls = [c.get_attribute('href') for c in wait.until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, '#myTable a[href]:not([rel])')))] case_numbers_urls の URL の場合: driver.get(url) #何かをする