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()