扫码关注官方订阅号
如何从以下网站抓取数据以查找特定案例详细信息?
以下是查找案例详细信息的手动步骤:
因为内部表单似乎是封装的(我猜测是用 Javascript 实现的),所以我看不到提供每个输入后呈现的 HTML 元素。我如何使用 Python 实现自动化?
该表单包含在 ID 为“Clayton County”的 iframe 内。为了使 selenium 能够与其中的元素交互,我们首先必须使用 EC.frame_to_be_available_and_switch_to_it 方法切换到它。
iframe
EC.frame_to_be_available_and_switch_to_it
然后使用 Select() 我们可以从下拉菜单中选择一个选项。
Select()
在最后一页中,我们获取所有案例编号 url 并将它们保存在 case_numbers_urls 中,以便我们可以循环它们,加载每个案例,获取信息并传递到下一个案例。
case_numbers_urls
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
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
该表单包含在 ID 为“Clayton County”的
iframe
内。为了使 selenium 能够与其中的元素交互,我们首先必须使用EC.frame_to_be_available_and_switch_to_it
方法切换到它。然后使用
Select()
我们可以从下拉菜单中选择一个选项。在最后一页中,我们获取所有案例编号 url 并将它们保存在
case_numbers_urls
中,以便我们可以循环它们,加载每个案例,获取信息并传递到下一个案例。