从Transfermarkt抓取数据如何获取全名和姓氏

2024-05-20 21:00:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了下面的代码来从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选项,但都不起作用


Tags: importpage玩家requestsheaderspd姓名values
0条回答
网友
1楼 · 发布于 2024-05-20 21:00:32

下面的代码可以显示全名。 它提取网页HTML中“Spielprofil_tooltip”类中的文本元素,如下所示:

[<a class="spielprofil_tooltip" href="/david-de-gea/profil/spieler/59377" id="59377" title="David de Gea">David de Gea</a>,

唯一需要注意的是,这个“spielprofil_工具提示”添加了其他多余的名称(可能显示在网站的其他表格中),因此,出于这个原因,我在最后一行中使用了[0:30]

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')

PlayersList = [x.text for x in pageSoup.find_all("a", {"class": "spielprofil_tooltip"})][::2] 
Values = pageSoup.find_all("td", {"class": "rechts hauptlink"})

ValuesList = []

length = len(Values)

for i in range(0,length):
    ValuesList.append(Values[i].text)

df = pd.DataFrame({"Players":PlayersList[0:30],"Values":ValuesList})

df

enter image description here

相关问题 更多 >