我在超市里
(https://www.sklavenitis.gr/eidi-artozacharoplasteioy/psomi-typopoiimeno/)我有一个文件的网址,读取它们并迭代它们,但是 selenium 对一些不存在的元素感到困惑,例如:
在第二个链接,这是销售的价格是正确的,但后来像第三或第四个链接,这是不是在折扣,它仍然打印的价值,第二个链接,并再次当一些东西是在折扣一切都是好的,但如果是不是在折扣获得以前的折扣值。我应该关闭我的驱动程序在每个迭代,并重新打开它?我看到一些帖子,他们没有这样做,我问
options = webdriver.ChromeOptions()
delay = 10
options.add_argument(f'user-agent={user_agent}')
options.add_argument("start-maximized")
options.add_argument('--no-sandbox')
options.add_argument('--disable-infobars')
options.add_argument("--headless")
options.add_argument('--disable-dev-shm-usage')
options.add_experimental_option('useAutomationExtension', False)
options.add_argument('--disable-blink-features=AutomationControlled')
s = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=s, options=options)
for link in links:
driver.get(link)
myElem =WebDriverWait(theDriver,
delay).until(EC.presence_of_element_located((By.XPATH, "//h1[@class='product-
detail__title']")))
driver.find_element(by=By.XPATH, value="//div[@class='product-detail__left']").find_element(by=By.XPATH, value="//div[@class='deleted__price']").text.replace(",", ".")
Edit#1很抱歉的混乱,我想刮的价格之前的折扣和之后的折扣.(如果没有折扣,它只是打印当前的价格).我的问题是在项目上没有折扣, selenium 显示,不知何故有一个折扣,因为这个原因,我添加了类产品的细节留下更严格的刮,但它没有工作.
1条答案
按热度按时间8qgya5xd1#
要在一行代码中使用Selenium和python提取每个项目的价格,将WebDriverWait归纳为visibility_of_all_elements_located(),可以使用以下Locator Strategies之一:
get_attribute("textContent")
:*注意:您必须添加以下导入: