我正在编写一个函数,该函数将进入TeamTransferMarket页面,并将每年从该Page表中获取所有数据
我遇到的问题有两个。 1-指数13是市场价值,表示指数超出范围,但如果打印打印长度('colomun:',len(all_td)),则得到13,即las列
2-我得到了五倍的成绩,甚至超过了5倍。同一个球员我知道我可以做两次,但我不想做
我是这个领域的新手,这是我的课程,我被困在这里
谢谢你的帮助
import requests
from bs4 import BeautifulSoup
import pandas as pd
from google.colab import drive
drive.mount('/content/drive')
data_CORIN = {
'name': [],
'field_position': [],
'date_of_birth': [],
'height': [],
'foot': [],
'market_value': [],
'anio': []
}
headers = {
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/47.0.2526.106 Safari/537.36'}
l = [2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020]
for i in range(0,len(l)-1):
url = "https://www.transfermarkt.es/sport-club-corinthians-paulista/kader/verein/199/saison_id/{}/plus/1".format(l[i])
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.content, 'html.parser')
all_tr = soup.find_all('tr', {'class': ['odd', 'even']}, recursive=True)
print('rows:', len(all_tr))
for row in all_tr:
all_td = row.find_all('td', recursive=True)
print('columns:', len(all_td))
for column in all_td:
print(' >', column.text)
data_CORIN['name'].append( all_td[3].text.split('.')[0][:15])
data_CORIN['field_position'].append( all_td[4].text)
data_CORIN['date_of_birth'].append( all_td[5].text[12:14])
data_CORIN['height'].append( all_td[8].text )
data_CORIN['foot'].append( all_td[9].text )
data_CORIN['market_value'].append( all_td[12].text )
data_CORIN['anio'].append(l[i])
df = pd.DataFrame(data_CORIN)
print(df.head())
此脚本将从2011年到2020年,并将所有详细信息保存到
data.csv
文件中:印刷品:
生成此CSV(LibreOffice的屏幕截图):
相关问题 更多 >
编程相关推荐