Я написал код, который позволяет получать все финансовые данные о компании с сайта www.bankier.pl, и это работает.К сожалению, есть одна проблема.У меня есть вся дата, но без названий компаний, поэтому результат выглядит следующим образом:
0,Przychody netto ze sprzedaży (tys. zł),2 907,5 797,2 733,7 750
1,Zysk (strata) z działal. oper. (tys. zł),370,2 555,-672,5 272
2,Zysk (strata) brutto (tys. zł),-857,1 476,-1 001,4 913
3,Zysk (strata) netto (tys. zł)*,-1 053,1 464,-830,3 977
4,Amortyzacja (tys. zł),486,453,408,368
5,EBITDA (tys. zł),856,3 008,-264,5 640
6,Aktywa (tys. zł),42 992,45 053,44 481,48 650
7,Kapitał własny (tys. zł)*,41 060,43 076,42 246,46 223
8,Liczba akcji (tys. szt.),"2 217,199","2 287,199","2 287,199","2 287,199"
9,Zysk na akcję (zł),-0475,0640,-0363,1739
10,Wartość księgowa na akcję (zł),18519,18834,18471,20209
11,Raport zbadany przez audytora,N,N,N,N
0,Przychody netto ze sprzedaży (tys. zł),9 615,13 231,9 883,16 670
1,Zysk (strata) z działal. oper. (tys. zł),1 029,3 341,994,3 361
2,Zysk (strata) brutto (tys. zł),1 010,3 320,1 022,3 655
3,Zysk (strata) netto (tys. zł)*,826,2 663,833,3 109
4,Amortyzacja (tys. zł),783,661,650,663
5,EBITDA (tys. zł),1 812,4 002,1 644,4 024
6,Aktywa (tys. zł),41 323,44 133,41 838,54 391
7,Kapitał własny (tys. zł)*,30 510,31 782,32 615,35 724
8,Liczba akcji (tys. szt.),"4 119,374","4 119,374","4 119,374","4 119,374"
9,Zysk na akcję (zł),0201,0647,0202,0755
10,Wartość księgowa na akcję (zł),7407,7715,7917,8672
11,Raport zbadany przez audytora,N,N,N,N
, но у меня более 4000 строк.Итак, вы видите, что нет имен.У меня есть список names_of_company, в котором есть все имена, которые мне нужны.Код берет имя из этого списка и загружает данные для этой компании и продолжает.Результат должен быть таким:
11BIT 0,Przychody netto ze sprzedaży (tys. zł),2 907,5 797,2 733,7 750
11BIT 1,Zysk (strata) z działal. oper. (tys. zł),370,2 555,-672,5 272
11BIT 2,Zysk (strata) brutto (tys. zł),-857,1 476,-1 001,4 913
11BIT 3,Zysk (strata) netto (tys. zł)*,-1 053,1 464,-830,3 977
11BIT 4,Amortyzacja (tys. zł),486,453,408,368
11BIT 5,EBITDA (tys. zł),856,3 008,-264,5 640
11BIT 6,Aktywa (tys. zł),42 992,45 053,44 481,48 650
11BIT 7,Kapitał własny (tys. zł)*,41 060,43 076,42 246,46 223
11BIT 8,Zysk na akcję (zł),-0475,0640,-0363,1739
11BIT 9,Wartość księgowa na akcję (zł),18519,18834,18471,20209
11BIT 10,Raport zbadany przez audytora,N,N,N,N
4FUNMEDIA 0,Przychody netto ze sprzedaży (tys. zł),9 615,13 231,9 883,16 670
4FUNMEDIA 1,Zysk (strata) z działal. oper. (tys. zł),1 029,3 341,994,3 361
4FUNMEDIA 2,Zysk (strata) brutto (tys. zł),1 010,3 320,1 022,3 655
4FUNMEDIA 3,Zysk (strata) netto (tys. zł)*,826,2 663,833,3 109
4FUNMEDIA 4,Amortyzacja (tys. zł),783,661,650,663
4FUNMEDIA 5,EBITDA (tys. zł),1 812,4 002,1 644,4 024
4FUNMEDIA 6,Aktywa (tys. zł),41 323,44 133,41 838,54 391
4FUNMEDIA 7,Kapitał własny (tys. zł)*,30 510,31 782,32 615,35 724
4FUNMEDIA 8,Zysk na akcję (zł),0201,0647,0202,0755
4FUNMEDIA 9,Wartość księgowa na akcję (zł),7407,7715,7917,8672
4FUNMEDIA 10,Raport zbadany przez audytora,N,N,N,N
Ниже вы можете найти мой код:
import requests
from bs4 import BeautifulSoup
import pandas as pd
url = 'https://www.bankier.pl/gielda/notowania/akcje?index=WIG'
page = requests.get(url)
soup = BeautifulSoup(page.content,'lxml')
# Find the second table on the page
t = soup.find_all('table')[0]
#Read the table into a Pandas DataFrame
df = pd.read_html(str(t))[0]
#get
names_of_company = df["Walor AD"].values
links_to_financial_date = []
#all linkt with the names of companies
links = []
for i in range(len(names_of_company)):
new_string = 'https://www.bankier.pl/gielda/notowania/akcje/' + names_of_company[i] + '/wyniki-finansowe/skonsolidowany/kwartalny/standardowy/1'
links.append(new_string)
############################################################################
for i in links:
url2 = i
page2 = requests.get(url2)
soup = BeautifulSoup(page2.content,'lxml')
# Find the second table on the page
try:
t2 = soup.find_all('table')[0]
df2 = pd.read_html(str(t2))[0]
with open('tesadst.csv', 'a') as f:
df2.to_csv(f, header=False)
except:
pass
Спасибо за любую помощь :)