【问题标题】:Selenium and phantomjs not opening javascript pageSelenium 和 phantomjs 未打开 javascript 页面
【发布时间】:2016-08-01 17:29:55
【问题描述】:

我正在尝试访问包含在 javascript 呈现页面中的赔率数据,但 selenium 似乎不起作用。这是我的代码:

from selenium import webdriver

browser = webdriver.PhantomJS()
browser.implicitly_wait(10)
browser.get('http://justbet.co.ke/index.php?option=com_jbt3&task=matches&league=58&Itemid=1')
print browser.page_source

任何帮助将不胜感激

【问题讨论】:

    标签: python python-2.7 selenium phantomjs


    【解决方案1】:

    您只需要等待主要内容加载

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    wait = WebDriverWait(driver, 10)
    wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".razrada")))
    

    使用this page作为目标的完整工作代码:

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    
    driver = webdriver.Firefox()
    driver.get("http://justbet.co.ke/index.php?option=com_justbet&league=58&Itemid=1")
    
    # wait for the page to load
    wait = WebDriverWait(driver, 10)
    wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".razrada")))
    
    for row in driver.find_elements_by_css_selector(".razrada > tbody > tr"):
        print([td.text.replace("\n", " ")
               for td in row.find_elements_by_css_selector("table.options td.option")])
    

    打印:

    ['Crystal Palace 2.95', 'X 3.20', 'Everton FC 2.40']
    

    【讨论】:

    • 再次感谢老兄
    • @AlexanderFradiani 是的,在 PhantomJS 中也适用于我。
    猜你喜欢
    • 1970-01-01
    • 2015-04-10
    • 2014-08-19
    • 2016-05-17
    • 2015-09-25
    • 2022-11-01
    • 1970-01-01
    • 2013-06-19
    • 1970-01-01
    相关资源
    最近更新 更多