我正在尝试使用BeautifulSoup从espn中提取数据
但是,我无法将值指定给正确的列。我提取的某些值正在将数据移动到不同的列中
将数据打印到excel时,值未正确对齐。他们为正确的列赋值的方式是否正确
任何帮助都将不胜感激
代码:
from bs4 import BeautifulSoup
import pandas as pd
import requests
url = 'https://www.espn.com/nba/player/gamelog/_/id/3012/kyle-lowry'
page = requests.get(url)
soup = BeautifulSoup(page.text, 'html.parser')
columns=[
'Date',
'OPP',
'Result',
'MIN',
'FG',
'FG%',
'3PT',
'3P%',
'FT',
'FT%',
'REB',
'AST',
'BLK',
'STL',
'PF',
'TO',
'PTS',
]
# create dataframe
d1 = pd.DataFrame(columns=columns)
full = []
for data in soup.find_all('td', attrs = {'class': 'Table__TD'}):
val = data.get_text()
full.append(val)
# seperate full list into sub-lists with 17 elements
rows = [full[i: i+17] for i in range(0, len(full), 17)]
# append list of lists structure to dataframe
d1 = d1.append(pd.DataFrame(rows, columns=d1.columns))
print(d1)
d1.to_csv('C:\\Users\\Jonathan\\test7.csv')
您可以尝试此脚本以正确加载数据:
印刷品:
并保存
data.csv
(LibreOffice Calc的屏幕截图):相关问题 更多 >
编程相关推荐