-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
54 lines (42 loc) · 1.67 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import requests
from bs4 import BeautifulSoup
import pandas as pd
import time
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36'}
player_info = {
'ranking': [],
'name': [],
'profile': [],
'position': [],
'age': [],
'nationality': [],
'flag': [],
'club': [],
'club_logo': [],
'market_value': [],
}
def get_data():
for page in range(4):
url = f'https://www.transfermarkt.com/spieler-statistik/wertvollstespieler/marktwertetop?ajax=yw1&page={page + 1}'
r = requests.get(url, headers=headers)
print(r.status_code)
soup = BeautifulSoup(r.text, 'html.parser') # r.text -> r.content
player_list = soup.find_all('tr', {'class': ['odd', 'even']})
for player in player_list:
columns = player.find_all('td')
player_info['ranking'].append(columns[0].text)
player_info['name'].append(columns[3].text)
player_info['profile'].append(columns[1].img['src'])
player_info['position'].append(columns[4].text)
player_info['age'].append(columns[5].text)
player_info['nationality'].append(columns[6].img['title'])
player_info['flag'].append(columns[6].img['src'])
player_info['club'].append(columns[7].img['alt'])
player_info['club_logo'].append(columns[7].img['src'])
player_info['market_value'].append(columns[8].b.text)
time.sleep(1)
return player_info
# df = pd.DataFrame(player_info)
# export csv file
# df.to_csv('data/transfermarket100.csv', index=False)