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