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

Python如何检测URL请求是否返回JSON并在URL列表标记YES

问题根因

你当前使用的webbrowser模块仅能调用本地默认浏览器打开目标URL,不会捕获、返回URL对应的响应内容,因此无法判断返回是否为JSON格式。

实现方案

我们可以使用requests库发送HTTP请求、获取响应内容,再通过JSON解析校验判断返回格式,具体步骤如下:

  1. 先安装依赖库
pip install requests
  1. 完整实现代码
import requests
# 如果你需要生成带标记列的表格可以引入pandas,不需要可以去掉
import pandas as pd

def is_return_json(url):
    try:
        # 配置请求头避免被常见反爬拦截,设置超时避免请求卡住
        headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"}
        resp = requests.get(url, headers=headers, timeout=10)
        # 先校验请求是否成功(状态码为200类)
        resp.raise_for_status()
        # 尝试解析响应内容为JSON,解析成功则返回YES
        resp.json()
        return "YES"
    except:
        return "NO"

# 替换为你要检测的URL列表
url_list = [
    "https://mvneves.com.br/wp-json/wc/v3",
    # 可在此处添加更多待检测URL
]

# 生成带标记的结果
result = []
for url in url_list:
    result.append({
        "URL": url,
        "是否返回JSON": is_return_json(url)
    })

# 如果需要导出为带列的CSV文件,可执行以下代码
# df = pd.DataFrame(result)
# df.to_csv("URL检测结果.csv", index=False, encoding="utf-8-sig")

# 直接打印结果预览
for item in result:
    print(item)

注意事项

  • 该逻辑直接校验响应内容是否可解析为JSON,比单纯判断Content-Type响应头的准确性更高,可覆盖部分站点响应头配置错误的场景
  • 如果目标站点有反爬限制,可以调整headers参数增加Cookie、Referer等请求头信息
  • 可以根据你的需求调整超时时间,避免个别无响应URL卡住整个脚本
  • 如果你不需要导出表格,直接拿is_return_json函数的返回值做标记即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:51:04