import requests
from bs4 import BeautifulSoup
import csv
from datetime import datetime

def get_news_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 وب‌سایت هدف تنظیم شود)
    news_data = []
    articles = soup.find_all('h3')  # فرض بر این است که تیترها در تگ h3 قرار دارند
    for article in articles:
        title = article.text.strip()
        link = article.find('a')['href']
        news_data.append({'title': title, 'link': link})

    return news_data

def save_to_csv(data, filename):
    with open(filename, 'w', newline='', encoding='utf-8') as csv_file:
        writer = csv.writer(csv_file)
        writer.writerow(['Date', 'Title', 'Link'])
        for news in data:
            writer.writerow([datetime.now().strftime("%Y-%m-%d %H:%M:%S"), news['title'], news['link']])

if __name__ == "__main__":
    # URL وب‌سایت خبری (توجه: URL باید بر اساس وب‌سایت واقعی تغییر کند)
    url = 'https://www.bbc.com/news'

    # دریافت داده‌های خبری
    news_data = get_news_data(url)
    
    if news_data:
        # ذخیره داده‌ها به‌صورت CSV
        save_to_csv(news_data, 'news_data.csv')
        
        print("News data saved successfully")
    else:
        print("Failed to retrieve news data")