import requests from bs4 import BeautifulSoup import json import csv from datetime import datetime def get_weather_data(url): # ارسال درخواست به وبسایت و دریافت پاسخ response = requests.get(url) # بررسی وضعیت درخواست if response.status_code != 200: print("Failed to retrieve data") return None # ایجاد سوپ زیبا برای تجزیه HTML soup = BeautifulSoup(response.content, 'html.parser') # استخراج دادههای مورد نظر (مثلاً دما و وضعیت آب و هوا) # توجه: این قسمت باید بر اساس ساختار HTML وبسایت هدف تنظیم شود weather_data = {} weather_data['temperature'] = soup.find('span', {'class': 'current-temp'}).text weather_data['condition'] = soup.find('div', {'class': 'current-weather'}).text.strip() return weather_data def save_to_json(data, filename): with open(filename, 'w') as json_file: json.dump(data, json_file, indent=4) def save_to_csv(data, filename): with open(filename, 'w', newline='') as csv_file: writer = csv.writer(csv_file) writer.writerow(['Date', 'Temperature', 'Condition']) writer.writerow([datetime.now().strftime("%Y-%m-%d %H:%M:%S"), data['temperature'], data['condition']]) if __name__ == "__main__": # URL وبسایت هواشناسی (توجه: URL باید بر اساس وبسایت واقعی تغییر کند) url = 'https://weather.com/weather/today/l/USNY0996:1:US' # دریافت دادههای هواشناسی weather_data = get_weather_data(url) if weather_data: # ذخیره دادهها بهصورت JSON save_to_json(weather_data, 'weather_data.json') # ذخیره دادهها بهصورت CSV save_to_csv(weather_data, 'weather_data.csv') print("Weather data saved successfully") else: print("Failed to retrieve weather data")