86 lines
2.3 KiB
Python
86 lines
2.3 KiB
Python
|
|
import sys
|
|
import os
|
|
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
|
|
|
from dotenv import load_dotenv
|
|
load_dotenv()
|
|
|
|
from config import get_all_plants
|
|
from crawlers.base import create_session
|
|
|
|
def debug_cmsolar_realtime():
|
|
plants = get_all_plants()
|
|
target = next((p for p in plants if p['id'] == 'cmsolar-10'), None)
|
|
|
|
if not target:
|
|
print("Plant 10 not found")
|
|
return
|
|
|
|
print(f"Debug target: {target['name']}")
|
|
|
|
# Extract info
|
|
auth = target.get('auth', {})
|
|
system = target.get('system', {})
|
|
|
|
login_id = auth.get('login_id', '')
|
|
login_pw = auth.get('login_pw', '')
|
|
site_no = auth.get('site_no', '')
|
|
login_url = system.get('login_url', '')
|
|
data_url = system.get('data_url', '')
|
|
|
|
print(f"Login ID: {login_id}")
|
|
print(f"Login URL: {login_url}")
|
|
print(f"Data URL: {data_url}")
|
|
|
|
session = create_session()
|
|
|
|
headers = {
|
|
'User-Agent': 'Mozilla/5.0',
|
|
'Content-Type': 'application/x-www-form-urlencoded'
|
|
}
|
|
|
|
# Login
|
|
login_data = {
|
|
'login_id': login_id,
|
|
'login_pw': login_pw,
|
|
'site_no': site_no
|
|
}
|
|
|
|
print("Logging in...")
|
|
try:
|
|
res = session.post(login_url, data=login_data, headers=headers)
|
|
print(f"Login Status: {res.status_code}")
|
|
|
|
# Site selection
|
|
base_url = "http://www.cmsolar2.kr"
|
|
change_url = f"{base_url}/change.php?site={site_no}"
|
|
print(f"Selecting site via {change_url}...")
|
|
session.get(change_url, headers=headers)
|
|
|
|
except Exception as e:
|
|
print(f"Login/Select Error: {e}")
|
|
return
|
|
|
|
# Fetch Data
|
|
real_data_url = f"{base_url}/plant/sub/idx_ok.php?mode=getPlant"
|
|
print(f"Fetching data from {real_data_url}...")
|
|
|
|
try:
|
|
res = session.get(real_data_url, headers=headers)
|
|
print(f"Data Status: {res.status_code}")
|
|
# print(f"Data Content-Type: {res.headers.get('Content-Type')}")
|
|
print(f"Data Response:\n{res.text}")
|
|
|
|
try:
|
|
json_data = res.json()
|
|
print(f"JSON parsed successfully.")
|
|
except Exception as e:
|
|
print(f"JSON Parse Error: {e}")
|
|
|
|
except Exception as e:
|
|
print(f"Data Fetch Error: {e}")
|
|
|
|
if __name__ == "__main__":
|
|
debug_cmsolar_realtime()
|