这个程序不打印价格,它只是结束而不打印任何东西

问题描述 投票:0回答: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

driver = webdriver.Chrome()

driver.get("https://www.amazon.in/SAMSUNG-Galaxy-S23-Mint-Storage/dp/B0CJXPYJC3/")
try:
    price = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.CLASS_NAME, "a-price-whole"))
    )
    print(price.text)
finally:
    driver.quit()

我相信这可能是因为浏览器在 selenium 提取数据之前关闭,但我尝试添加延迟,但仍然不起作用。

python selenium-webdriver
1个回答
0
投票

这是获取该信息的一种经过测试的方法:

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

chrome_options = Options()
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument('disable-notifications')

chrome_options.add_argument("window-size=1280,1080")

browser = webdriver.Chrome(options=chrome_options)
wait = WebDriverWait(browser, 5)

url = 'https://www.amazon.in/SAMSUNG-Galaxy-S23-Mint-Storage/dp/B0CJXPYJC3/'
browser.get(url) 
price = str(wait.until(EC.presence_of_element_located((By.XPATH, '//span[@class="a-price-whole"]'))).get_attribute('innerHTML')).split('<')[0]
print(price)

终端结果:

39,988

Selenium 文档可以在这里找到。

© www.soinside.com 2019 - 2024. All rights reserved.