对不起,如果这个问题措辞怪异,我刚刚开始使用Selenium。我想做一个程序,让人知道,当某些口味的某些蒸气几乎是缺货的批发网站。到目前为止,我的程序非常简单,它将通过特定蒸气的url
并从表中打印出显示不同口味的蒸气及其库存的文本。
但是,我想检查库存量下的文本(剩下的蒸气数)并打印“(这种特殊的蒸汽味)几乎是缺货!”如果数字低于10,这是目前为止的代码:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
PATH = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)
driver.get("https://safagoods.com/vape-shop/disposable-vape-devices/huge-disposables")
element = driver.find_element_by_xpath("//*[@id='input-option2231']").text
print(element)
driver.close()
有小费吗?我不打算用网站上的每一个蒸气来做这件事,只是非常受欢迎的那些,这样使用它的人就可以运行这个程序,并且知道他们应该先订购什么,什么是他们可以等待订购的。谢谢你们。
发布于 2021-07-08 20:22:13
作为一种可能的解决方案,您可以检查该值是否小于x,然后将其追加到列表中。我的解决方案会给您打印一个金额小于20的列表。
溶液
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome(executable_path='/snap/bin/chromium.chromedriver')
driver.get("https://safagoods.com/vape-shop/disposable-vape-devices/huge-disposables")
wait = WebDriverWait(driver, 15)
table = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".table.table-bordered tr[style='background: #eeeeee;']")))
data = []
rows = driver.find_elements_by_css_selector(".table.table-bordered tr[style='background: #eeeeee;']")
for row in rows:
#qty = row.find_element_by_xpath("./td[1]").text
stock = row.find_element_by_xpath("./td[2]").text
name = row.find_element_by_xpath("./td[3]").text
if int(stock) < 20:
data.append([stock, name])
print(*data, sep='\n')
输出:
['17', 'Banana Ice (SKU: HUGE-BI )']
['17', 'Lush Ice (SKU: HUGE-LI )']
您还可以在没有括号的情况下打印它:
for x in data:
print(' '.join(x))
这将给出输出:
17 Banana Ice (SKU: HUGE-BI )
17 Lush Ice (SKU: HUGE-LI )
https://stackoverflow.com/questions/68307733
复制相似问题