Selenium 从 Angular 网站返回空字符串

Selenium is returning empty string from Angular website

我正在尝试抓取 http://stats.nba.com/player/#!/76124/career/ 的生日(在 'Born' 的下方),但生日是动态生成的,因此 BeautifulSoup 无法获取。

我正在尝试使用 Selenium,这是我使用的代码:

driver.get(url)
sleep(5)
e = driver.find_elements_by_class_name('player-stats__stat-value')
for a in e:
    print(a.get_attribute('innerHTML'))
driver.close()

它打印出空行。如果我转到 Inspect->Network->XHR->Response:html,这就是 html 的样子:

<span class="player-stats__stat-value" itemprop="birthDate">{{ playerInfo.BIRTHDATE | date:'M/d/yy' }}</span>

Selenium 能否 return {{ playerInfo.BIRTHDATE | date:'M/d/yy' }} 的实际值,如果是,如何?

这是您问题的答案:

e = driver.find_elements_by_xpath("//div[@class='summary']//span[@class='player-stats__stat-value' and @itemprop='birthDate']")
for a in e:
    print(a.get_attribute('innerHTML'))
driver.close()

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument("start-maximized")
options.add_argument("disable-infobars")
options.add_argument("--disable-extensions")
driver = webdriver.Chrome(chrome_options=options, executable_path="C:\Utility\BrowserDrivers\chromedriver.exe")
driver.get('http://stats.nba.com/player/#!/76124/career/')
driver.implicitly_wait(15)
e = driver.find_elements_by_xpath("//div[@class='summary']//span[@class='player-stats__stat-value' and @itemprop='birthDate']")
for a in e:
    print(a.get_attribute('innerHTML'))
driver.close()

如果这回答了您的问题,请告诉我。

我有 3 个角度选项卡,每个选项卡都包含一个网格 (p-table)。 GetText() returns 空白和 getAttribute("innerHTML") returns 相邻选项卡中网格中相应单元格的值 sheet