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

如何用curl或wget下载需JavaScript登录的光伏系统状态页面HTML

自动化抓取Enphase Enlighten光伏系统状态页面(无需长期Cookie/重型浏览器)

核心思路:绕过前端JS,直接调用登录API

Enphase的登录逻辑是后端API验证,前端JS仅做表单封装,直接抓真实登录接口就能获取有效会话,无需依赖前端渲染或短期Cookie,可实现长期稳定的自动化抓取。

步骤1:抓包获取登录API细节

在浏览器中打开登录流程,打开开发者工具(F12)的网络标签,勾选「保留日志」,完成一次正常登录后,定位登录相关的POST请求,记录以下信息:

  • 真实登录接口URL(例如https://enlighten.enphaseenergy.com/login/login.json,以实际抓包结果为准)
  • 请求头的Content-Type(通常为application/json或application/x-www-form-urlencoded)
  • 请求体格式(如JSON结构{"email":"你的邮箱","password":"你的密码"})

步骤2:用curl实现登录+页面抓取

先发送登录请求保存会话Cookie,再用该Cookie请求目标页面:

# 1. 发送登录请求,将会话Cookie保存到cookie.txt
curl -c cookie.txt -X POST \
  -H "Content-Type: application/json" \
  -d '{"email":"你的Enphase邮箱","password":"你的Enphase密码"}' \
  https://enlighten.enphaseenergy.com/login/login.json

# 2. 用保存的Cookie请求目标页面,输出到result.html
curl -b cookie.txt https://enlighten.enphaseenergy.com/web/5000000/today/graph/hours > result.html

若抓包发现Content-Type为application/x-www-form-urlencoded,请求体需改为email=你的邮箱&password=你的密码,同时调整-H的Content-Type值。

步骤3:用Python requests实现更稳定的自动化(推荐)

如果curl遇到CSRF Token或签名问题,用requests库可更灵活处理:

import requests

# 配置参数
login_api = "https://enlighten.enphaseenergy.com/login/login.json"
target_page = "https://enlighten.enphaseenergy.com/web/5000000/today/graph/hours"
user_credentials = {
    "email": "你的Enphase邮箱",
    "password": "你的Enphase密码"
}

# 创建会话对象,自动管理Cookie
session = requests.Session()

# 执行登录
login_response = session.post(login_api, json=user_credentials)
# 验证登录状态(可根据响应码或返回内容判断)
if login_response.status_code == 200:
    # 请求目标页面
    page_content = session.get(target_page).text
    # 保存HTML到本地文件
    with open("solar_status.html", "w", encoding="utf-8") as f:
        f.write(page_content)
else:
    print("登录失败,请检查凭证或API接口是否正确")

提示:若登录需要CSRF Token,先GET登录页面,从响应HTML或Cookie中提取csrf_token,再将其加入登录请求的请求头或请求体。

关键注意事项

  • 放弃浏览器导出的长期Cookie:Enphase的会话Cookie为短期有效,但每次通过API登录都能获取新的有效会话,脚本每次运行时重新登录即可长期稳定工作。
  • 确保抓包的是真实登录请求:部分网站会有预登录请求(如获取验证Token),需完整抓取登录流程的所有必要步骤。
  • 处理验证码风险:Enphase对常规用户登录通常不触发验证码,但若脚本频繁请求导致触发,需额外集成验证码识别服务。

内容的提问来源于stack exchange,提问作者emp-00

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 05:32:18