import requests
from bs4 import BeautifulSoup
# URL to fetch the data
url = "https://www.tradingview.com/symbols/NASDAQ-META/financials-income-statement/?statements-period=FY"
# Fetch the page content
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
# Extract table data
table = soup.find('table')
headers = [header.text for header in table.find_all('th')]
rows = table.find_all('tr')[1:]
data = []
for row in rows:
cells = row.find_all('td')
data.append([cell.text.strip() for cell in cells])
# Convert to DataFrame
df_income_statement = pd.DataFrame(data, columns=headers)
# Filtering data for years 2017 to 2023 including TTM
years_filter = ['2017', '2018', '2019', '2020', '2021', '2022', '2023', 'TTM']
df_filtered = df_income_statement[df_income_statement['Period'].isin(years_filter)]
# Saving to an Excel file
file_path_filtered = "/mnt/data/meta_income_statement_filtered.xlsx"
df_filtered.to_excel(file_path_filtered, index=False)
import ace_tools as tools; tools.display_dataframe_to_user(name="Meta Income Statement (2017-2023)", dataframe=df_filtered)
file_path_filtered