如何用Python爬取flight-distance.com下拉菜单中的所有机场选项
解决方法
你的问题出在页面的机场选项是动态加载的——初始HTML里只有默认提示选项,真实的机场数据是页面加载完成后通过JavaScript请求后端接口获取的,所以直接爬初始页面拿不到完整列表。
步骤1:找到数据源接口
打开浏览器开发者工具(按F12),切换到「网络」标签页,刷新页面后过滤「XHR」请求,能找到返回所有机场数据的接口(比如https://www.flight-distance.com/ajax/airports),这个接口返回JSON格式的机场列表。
步骤2:编写代码获取并解析数据
直接请求这个接口,解析返回的JSON就能拿到所有机场信息:
import requests # 请求机场数据接口 response = requests.get("https://www.flight-distance.com/ajax/airports") airports_data = response.json() # 提取并格式化输出机场信息 for airport in airports_data: airport_name = airport["name"] iata_code = airport["code"] icao_code = airport["icao"] print(f"{airport_name} ({iata_code}, {icao_code})")
补充说明
接口返回的JSON是字典数组,每个字典包含机场名称、IATA代码、ICAO代码等字段,你可以根据需求提取对应内容;如果后续接口地址有变化,重新用浏览器开发者工具抓取最新请求地址即可。
内容的提问来源于stack exchange,提问作者Galmighty
相关产品推荐
相关产品推荐

