如何使用Selenium在html代码中获取文本?

时间:2019-05-13 08:26:29

标签: python-3.x selenium

我想在https://www.premierleague.com/match/22720上获得玩家的名字。

HTML代码:

“玩家名称” =网站上的每个玩家

<div class="info"><span class="name">'Player Name'<div class="playerLineupEventContainer-4664"></div></span>

我的代码:

match_players = match_player_wd.find_elements_by_class_name('info')

len(match_players) = 36

我只需要11名球员的“热刺”名字。但是我不知道如何命名。

2 个答案:

答案 0 :(得分:1)

您可以尝试以下方法吗?

player_elem = match_player_wd.find_elements_by_class_name('name')
player_names = [e.text for e in player_elem]

我没有看页面的源代码,因此它可能不如选择具有“ name”类的所有元素那样直接。在这种情况下,您可能需要先将'info'类元素设置为根,然后通过相同的find_by_class_name()函数获取其子元素。

答案 1 :(得分:0)

玩家有两种类型:

  1. 主播。
  2. 客场球员。

您可以尝试使用以下代码获取玩家的姓名:

driver = webdriver.Chrome(executable_path = r'driver_path')
wait = WebDriverWait(driver,10)

driver.maximize_window()

driver.get("https://www.premierleague.com/match/22720")

wait = WebDriverWait(driver, 10)

wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'div.scoreboxContainer')))

home_players = driver.find_elements_by_css_selector('div.home div.event')

for home_player in home_players:
  print(home_player.text)

away_players = driver.find_elements_by_css_selector('div.away div.event')

for away_player in away_players:
  print(away_player.text)

希望这会有所帮助。