Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从Transfermarkt抓取数据-如何获取全名和姓氏_Python_Html_Pandas - Fatal编程技术网

Python 从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

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

下面的代码可以显示全名。 它提取网页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