Python 从Transfermarkt抓取数据-如何获取全名和姓氏
我创建了下面的代码来从Transfermarkt中提取数据。但是,结果是,它不会返回玩家的全名和姓氏,而主要是(取决于长度)姓氏,并且只返回玩家姓名的第一个字母Python 从Transfermarkt抓取数据-如何获取全名和姓氏,python,html,pandas,Python,Html,Pandas,我创建了下面的代码来从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
#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选项,但都不起作用。下面的代码可以显示全名。 它提取网页HTML中“Spielprofil_tooltip”类中的文本元素,如下所示:
[<a class="spielprofil_tooltip" href="/david-de-gea/profil/spieler/59377" id="59377" title="David de Gea">David de Gea</a>,
有没有可能给团队一些信息,以便我们重现您的错误?您好,我实际上复制了粘贴的代码,没有发现“团队”部分。这在那一部分实际上是不相关的,因为我在后面使用了txt,但在那一部分中没有。请查看下面的解决方案。只有一个玩家一直只显示名字:“弗雷德”;-)谢谢,先生。我要试试:)顺便说一句,对我来说,和len(玩家列表)一起玩会更好。你仍然有国旗。
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