Bagaimana untuk mengikis data dari tapak web tanpa elemen HTML?
P粉819533564
P粉819533564 2024-03-20 10:55:29
0
1
463

Bagaimana untuk mengikis data daripada tapak web berikut untuk mencari butiran kes tertentu?

Berikut adalah langkah manual untuk mencari butiran kes:

  1. Navigasi ke https://www.claytoncountyga.gov/government/courts/court-case-inquiry/
  2. Nampaknya mungkin terdapat borang pemuatan JavaScript dengan butang/input yang membolehkan anda menelusuri butiran kes lanjut - "Carian Nama" perlu dipilih untuk mencari kes mengikut nama keluarga - klik padanya
  3. Skrin baharu kemudian muncul dalam elemen yang sama iaitu (2), membenarkan pengguna memilih daripada mahkamah lungsur (mis. Mahkamah Majistret) dan memasukkan nama pertama dan terakhir (Smith John) melalui input teks bentuk bebas.
  4. Klik "Serah" untuk melihat semua kes
  5. Lihat butiran kes dengan mengklik pada nombor kes pada salah satu baris dalam jadual yang diisikan dalam elemen yang sama seperti dalam semua langkah sebelumnya - Saya ingin mengikis data dari halaman ini.

Oleh kerana bentuk dalaman nampaknya dirangkumkan (saya rasa dilaksanakan dalam Javascript), saya tidak dapat melihat elemen HTML yang diberikan selepas setiap input disediakan. Bagaimanakah saya mengautomasikan menggunakan Python?

P粉819533564
P粉819533564

membalas semua(1)
P粉458725040

Borang tersebut terkandung dalam kaedah iframe 内。为了使 selenium 能够与其中的元素交互,我们首先必须使用 EC.frame_to_be_available_and_switch_to_it dengan ID "Kaunti Clayton" untuk beralih kepadanya.

Kemudian menggunakan Select() kita boleh memilih pilihan daripada menu lungsur.

Di halaman terakhir, kami mendapat semua url nombor kes dan menyimpannya dalam case_numbers_urls supaya kami boleh mengulanginya, memuatkan setiap kes, mendapatkan maklumat dan menyampaikannya ke kes seterusnya.

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome(service=Service(chromedriver_path))
driver.get('https://www.claytoncountyga.gov/government/courts/court-case-inquiry/')

# page 1
wait = WebDriverWait(driver, 9)
wait.until(EC.frame_to_be_available_and_switch_to_it((By.ID, "Clayton County")))
driver.find_element(By.XPATH, "//a[contains(.,'Name Search')]").click()

# page 2
dropdown = wait.until(EC.element_to_be_clickable((By.ID, "ctt")))
Select(dropdown).select_by_value('M')
lname = 'Smith'
fname = 'John'
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()

# page 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])')))]
for url in case_numbers_urls:
    driver.get(url)
    # do something
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!