如何使用Selenium从NOTAM中提取数据
使用Selenium提取FAA NOTAM数据的实现方案
下面是一套完整的Python代码,用来通过Selenium从美国联邦航空局(FAA)的NOTAM查询网站提取数据,附带详细的流程说明:
from selenium import webdriver chrome_path=r"C:\Users\Admin\Desktop\New folder\chromedriver.exe" driver=webdriver.Chrome(chrome_path) driver.get("https://www.notams.faa.gov/dinsQueryWeb/") driver.find_element_by_xpath("""/html/body/div[3]/div[3]/button""").click() search=driver.find_element_by_name("retrieveLocId") #search=driver.find_element_by_xpath("""//*[@id="searchCriteria"]/div/input""") ICAO=input("ENTER 4 DIGIT ICAO CODE") search.send_keys(ICAO) driver.find_element_by_xpath("""/html/body/table[3]/tbody/tr/td[1]/table/tbody/tr[1]/td/form/table/tbody/tr/td[2]/table/tbody/tr[5]/td/input[1]""").click() table=len(driver.find_elements_by_xpath("""//*[@id="form1"]/div/table/tbody/tr[1]/td/table[3]/tbody/tr"""))
代码实现流程拆解:
- 启动浏览器并访问目标页面:引入Selenium的
webdriver模块,配置本地ChromeDriver的路径,初始化Chrome浏览器实例后直接访问FAA的NOTAM查询页面 - 关闭页面弹窗:通过XPath定位页面上的弹窗关闭按钮并点击,确保后续操作不受弹窗干扰
- 定位搜索框并接收用户输入:通过元素名称定位ICAO代码搜索框(代码里也注释了另一种XPath定位方式作为备选),接收用户输入的4位ICAO代码并填入搜索框
- 提交查询请求:再次通过XPath定位查询按钮并点击,触发搜索操作
- 统计结果数据规模:定位返回结果的表格元素,统计表格的行数,以此获取本次查询返回的数据规模
内容的提问来源于stack exchange,提问作者engineering Baba
相关产品推荐
相关产品推荐

