2

我一直在使用 BeautifulSoup 成功地从网站上抓取一些信息,但我在从图像/链接中抓取“alt”标签时遇到问题。

这是我到目前为止使用的代码:

import requests
from bs4 import BeautifulSoup

page = "https://www.transfermarkt.com/fc-porto/startseite/verein/720?saison_id=2017"
tree = requests.get(page)
soup = BeautifulSoup(page.content, 'html.parser')

Players = soup.find_all("a", {"class": "spielprofil_tooltip"})
Value = soup.find_all("td", {"class": "rechts hauptlink"})
Age = soup.find_all("td", {"class": "zentriert"})
Team = soup.find_all("a", {"class": "vereinprofil_tooltip"})

最后一行有问题,因为它提取了整个工具提示信息,我只需要“alt”标签中包含的文本。有什么建议么?

4

2 回答 2

1

从您的问题中不清楚应该持有什么样的信息团队。只是通过您的问题- “我只需要“alt”标签中包含的文本” -这应该可以。

imgs = [a.find('img') for a in soup.find_all("a", {"class": "vereinprofil_tooltip"}) if a.find('img')]
team = [img.get('alt') for img in imgs]

获取img嵌套在a标签下的所有标签,然后从每个标签中获取alt属性img


Output:

['Olympiacos Piraeus',
 'FC Porto',
 'FC Famalicão',
 'Omonia Nicosia',
 'Atlético Madrid',
 'FC Porto',
 'Tigres UANL',
 'Zenit St. Petersburg',
 'Kasimpasa',
 'FC Porto',
 'FC Porto B',
 'Leicester City',
 'Manchester United',
 'CF Monterrey',
 'FC Porto',
 'Vorskla Poltava',
 'Atlético Madrid',
 'Sevilla FC',
 'FC Porto',
 'Vitória Guimarães SC',
 'Varzim SC',
 'Portimonense SC',
 'FC Porto',
 'FC Porto',
 'Hebei China Fortune',
 'UD Las Palmas',
 'Al Rayyan Sports Club',
 'SC Braga',
 'Levante UD',
 'FC Porto',
 'FC Porto',
 'FC Porto',
 'Eintracht Frankfurt',
 'RC Strasbourg Alsace',
 'Real Zaragoza',
 'FC Porto',
 'SL Benfica',
 'Sporting CP',
 'SC Braga',
 'Rio Ave FC',
 'GD Chaves',
 'CS Marítimo',
 'Vitória Guimarães SC',
 'FC Porto']

不确定这是否是您期望的输出

于 2020-04-24T16:58:33.000 回答
0

迟到的答案,但您也可以使用:

Team = [a.find('img').get('alt') for a in soup.find_all("a", {"class": "vereinprofil_tooltip"}) if a.find('img')]

['Olympiacos Piraeus', 'FC Porto', 'FC Famalicão', 'Omonia Nicosia', 'Atlético Madrid', 'FC Porto', 'Tigres UANL', 'Zenit St. Petersburg', 'Kasimpasa', 'FC Porto', 'FC Porto B', 'Leicester City', 'Manchester United', 'CF Monterrey', 'FC Porto', 'Vorskla Poltava', 'Atlético Madrid', 'Sevilla FC', 'FC Porto', 'Vitória Guimarães SC', 'Varzim SC', 'Portimonense SC', 'FC Porto', 'FC Porto', 'Hebei China Fortune', 'UD Las Palmas', 'Al Rayyan Sports Club', 'SC Braga', 'Levante UD', 'FC Porto', 'FC Porto', 'FC Porto', 'Eintracht Frankfurt', 'RC Strasbourg Alsace', 'Real Zaragoza', 'FC Porto', 'SL Benfica', 'Sporting CP', 'SC Braga', 'Rio Ave FC', 'GD Chaves', 'CS Marítimo', 'Vitória Guimarães SC', 'FC Porto']
于 2020-04-24T17:17:37.470 回答