如何通过Selenium和Python输入搜索文本并从搜索结果中检索值

时间:2018-08-14 21:28:30

标签: python selenium selenium-webdriver web-scraping webdriver

我正在尝试从以下网站提取数据: https://www.polymergenome.org/explore/index.php?m=1

请在搜索框中输入“ CCOCCO”,然后单击“预测属性”。我要从预测表中提取“玻璃化转变温度(K)”。

在我的应用程序中,我有一个熊猫数据框,其中包含1000个字符串,类似于ro'CCOCCO'。我想定义一个函数,该函数采用pandas数据框字符串,将其放在上述网站的搜索框中,并提取“玻璃化转变温度(K)”。

在无法从beautifulsoup中得到想要的东西之后,互联网搜索告诉我硒是答案。我开始将其用于此应用程序,但没有成功。我非常感谢您的帮助和指导。

1 个答案:

答案 0 :(得分:1)

在搜索框中输入 CCOCCO 后,从预测表中单击预测性能,以提取玻璃化转变温度(K)< / strong>,您可以使用以下解决方案:

  • 代码块:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
    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=r'C:\WebDrivers\ChromeDriver\chromedriver_win32\chromedriver.exe')    
    driver.get('https://www.polymergenome.org/explore/index.php?m=1')       
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@class='large_input_no_round ui-autocomplete-input' and @id='keyword_original']"))).send_keys("CCOCCO")
    driver.find_element_by_xpath("//input[@class='dark_blue_button_no_round' and @value='Predict Properties']").click()
    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//table[@class='record']//tbody/tr[@class='record']//following::td[7]/center/font/font"))).get_attribute("innerHTML"))
    
  • 控制台输出:

    206 ±       29