【问题标题】:Selenium is returning empty string from Angular websiteSelenium 从 Angular 网站返回空字符串
【发布时间】:2017-12-18 21:43:14
【问题描述】:

我正在尝试在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 的样子
<span class="player-stats__stat-value" itemprop="birthDate">{{ playerInfo.BIRTHDATE | date:'M/d/yy' }}</span>

Selenium 可以返回 {{ playerInfo.BIRTHDATE | date:'M/d/yy' }} 的实际值吗?如果可以,如何返回?

【问题讨论】:

    标签: angularjs selenium web-scraping phantomjs python-3.5


    【解决方案1】:

    这是您问题的答案:

    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()
    

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

    【讨论】:

    • 不,它打印空行 - 和我之前的一样。
    • 抱歉,我不知道scrape,但我尝试通过我的答案中更新的代码块从节点中提取文本3/26/56。它在我身边运作良好。你能指导我对scrape 做了什么吗?谢谢
    • 成功了!非常感谢!我使用的是 phantomJS 而不是 Chrome webdriver。真的很感激。我必须这样做数千次,所以我想知道你是否知道如何让它为 phantomJS 驱动程序工作,因为 Chrome 窗口的打开和关闭有点多(或者如果你知道 Chrome 的解决方法)。如果没有,非常感谢!欣赏它
    【解决方案2】:

    我有 3 个角度选项卡,每个选项卡都包含一个网格(p 表)。 GetText() 返回空白,getAttribute("innerHTML") 从相邻标签页的网格中返回相应单元格的值

    【讨论】:

    • 点评来源: 嗨,这篇文章似乎没有为问题提供answer。请编辑您的答案并修复它,或者将其作为对问题的评论发布。
    猜你喜欢
    • 2012-07-22
    • 2021-10-04
    • 2021-04-10
    • 1970-01-01
    • 2019-11-23
    • 2022-01-23
    • 1970-01-01
    • 2018-10-01
    • 1970-01-01
    相关资源
    最近更新 更多