已用ChromeDriver打开JSON网页,如何转换为Pandas DataFrame?
解决方案
其实你没必要用ChromeDriver处理这个JSON接口,直接用requests库请求更高效,下面给你两种可行方案:
方法一:直接请求JSON接口(推荐)
这个链接本身就是返回JSON数据的接口,不需要启动浏览器,代码更简洁高效:
import requests import pandas as pd url = "https://www.cia.gov/resources/world-leaders/page-data/sq/d/3159235335.json" # 发送HTTP请求获取数据 response = requests.get(url) response.raise_for_status() # 确保请求成功,失败则抛出异常 # 解析JSON为Python字典 data = response.json() # 提取核心数据集(根据该JSON结构,领导人数据在`data.worldLeaders.nodes`路径下) df = pd.DataFrame(data['data']['worldLeaders']['nodes']) # 查看前5行数据 print(df.head())
方法二:基于你已有的ChromeDriver代码继续处理
如果一定要用浏览器加载的方式,你可以获取页面源码(就是JSON字符串),再解析转成DataFrame:
from selenium import webdriver import pandas as pd import json chromedriver_path = r"./driver/chromedriver" browser = webdriver.Chrome(executable_path=chromedriver_path) url = "https://www.cia.gov/resources/world-leaders/page-data/sq/d/3159235335.json" browser.get(url) # 获取页面显示的JSON文本内容 json_text = browser.page_source # 将JSON字符串解析为Python字典 data = json.loads(json_text) # 提取数据并转换为DataFrame df = pd.DataFrame(data['data']['worldLeaders']['nodes']) print(df.head()) # 操作完成后关闭浏览器 browser.quit()
注意事项
- 该JSON数据的核心内容嵌套在
data['data']['worldLeaders']['nodes']中,如果你需要其他字段,可以调整字典的索引路径。 - 用
requests的方法不需要额外安装浏览器驱动,运行速度更快,优先推荐。
内容的提问来源于stack exchange,提问作者Giampaolo Levorato
相关产品推荐
相关产品推荐

