You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何循环多个URL调用同一PageSpeed API提取JSON返回数据

代码修正方案

核心修正点

  • 将response_url拼接语句中误用的整个URL列表变量page_URL,替换为每次循环遍历得到的单条URL变量url即可解决请求地址拼接错误问题
  • 额外优化:将固定不变的常量(API密钥、基础请求地址、策略参数)移到循环外部,避免每次循环重复赋值;补充异常捕获逻辑,避免单条URL请求失败或返回字段缺失导致整个脚本终止运行;补充缺失的requests库导入语句

修正后完整可运行代码

import requests

# 常量统一放在循环外定义
API_Key = "xyz"
baseURL = "https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url="
strategy = "mobile"
page_URL = ['https://www.usatoday.com','https://www.capitalone.com']

for url in page_URL:
    try:
        # 拼接请求地址时使用循环变量url
        response_url = baseURL + url + '&key=' + API_Key + '&strategy=' + strategy
        response = requests.get(response_url).json()
        # 提取指标
        url_id = response['originLoadingExperience']['id']
        overall_score = response['lighthouseResult']['categories']['performance']['score']*100
        fcp_score = response['originLoadingExperience']['metrics']['FIRST_CONTENTFUL_PAINT_MS']['percentile']/1000
        fid_score = response['originLoadingExperience']['metrics']['FIRST_INPUT_DELAY_MS']['percentile']
        lcp_score = response['originLoadingExperience']['metrics']['LARGEST_CONTENTFUL_PAINT_MS']['percentile']/1000
        cls_score = response['originLoadingExperience']['metrics']['CUMULATIVE_LAYOUT_SHIFT_SCORE']['percentile']/100
        # 可在此处添加打印或存储指标的逻辑
        print(f"地址:{url_id} 性能得分:{overall_score} FCP:{fcp_score}s FID:{fid_score}ms LCP:{lcp_score}s CLS:{cls_score}")
    except Exception as e:
        print(f"处理URL{url}时出错:{str(e)}")

内容的提问来源于stack exchange,提问作者VRapport

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 00:45:04