gpt4 book ai didi

python - 如何通过Python使用Selenium从网页中提取文本$7.56

转载 作者:行者123 更新时间:2023-12-01 00:07:50 26 4
gpt4 key购买 nike

  1. 转到:https://www.goodrx.com/amoxicillin
  2. 右键单击 7.56 美元(或任何价格)-> 在 Chrome 开发工具中复制 xpath

我已经尝试了所有这些变体:

find_element(By.XPATH, '// *[ @ id = "uat-price-row-coupon-1"] / div[3] / div[1] / text()')  
find_element(By.XPATH, "//*[@id='uat-price-row-coupon-0']/div[3]/div[1]/text()")
find_element_by_xpath("//*[@id='uat-price-row-coupon-1']/div[3]/div[1]/text()")

我还验证了它在 Firefox 中的“Try Xpath”中是否有效

但是我从 Selenium 中得到“没有这样的元素”以及所有这些元素。

我错过了什么吗?

最佳答案

要提取文本 $7.56,因为它是一个文本节点,您必须为 visibility_of_element_ located() 引入 WebDriverWait 并且您可以使用以下任一 Locator Strategies :

  • 使用CSS_SELECTOR:

    driver.get('https://www.goodrx.com/amoxicillin')
    element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "ul[aria-label='List of best coupons by price and pharmacy.']>li div[data-qa='drug_price']")))
    print(driver.execute_script('return arguments[0].childNodes[1].textContent;', element).strip())
  • 使用XPATH:

    driver.get('https://www.goodrx.com/amoxicillin')
    element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//ul[@aria-label='List of best coupons by price and pharmacy.']/li//div[@data-qa='drug_price']")))
    print(driver.execute_script('return arguments[0].childNodes[1].textContent;', element).strip())
  • 控制台输出:

    $7.56
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC

关于python - 如何通过Python使用Selenium从网页中提取文本$7.56,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59831186/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com