【发布时间】:2025-12-20 07:10:07
【问题描述】:
我创建了以下代码来从 Transfermarkt 中抓取数据。但是,结果是它不返回玩家的全名和姓氏,而是大部分(取决于长度)姓氏和玩家名字的第一个字母。
#single team
import requests
from bs4 import BeautifulSoup
import pandas as pd
headers = {'User-Agent':
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36'}
page = "https://www.transfermarkt.co.uk/manchester-united/startseite/verein/985"
pageTree = requests.get(page, headers=headers)
pageSoup = BeautifulSoup(pageTree.content, 'html.parser')
Players = pageSoup.find_all("span", {"class": "show-for-small"})
Values = pageSoup.find_all("td", {"class": "rechts hauptlink"})
PlayersList = []
ValuesList = []
length = len(Players)
for i in range(0,length):
PlayersList.append(Players[i].text)
ValuesList.append(Values[i].text)
df = pd.DataFrame({"Players":PlayersList,"Values":ValuesList})
df
它返回市场价值和球员姓名,如“D. De Gea”而不是“David De Gea”。
怎么了?我尝试了 HTML 的不同选项,但它们不起作用。
【问题讨论】:
-
是否可以提供团队以便我们重现您的错误?
-
嗨,我实际上是复制粘贴了代码,但没有发现“团队”部分。它实际上与那部分无关,因为我稍后使用了txt,但在那部分没有。
-
请查看下面的解决方案。只有一个玩家一直只显示名字:“Fred”;-)