我父亲经营一家企业,他有一个特定的批发网站,但我注意到当他购买一次性电子烟时,他必须点击每个电子烟,然后查看该电子烟每种口味的库存。我想创建一个程序,打印出每种一次性电子烟的每种口味的库存。到目前为止,我转到每个 vape 的 URL,然后检查显示不同口味库存的表格并将该表格打印出来。但是,我不想为每个电子烟输入特定的 URL,然后为每个股票表键入 print。有没有一种更简洁的方法来使用列出所有一次性电子烟的页面的 URL 使用“”driver.get('https://safagoods.com/vape-shop/disposable-vape-devices/')”” 然后从那里点击所有不同的电子烟并打印出他们的库存表?对不起,如果这是一个混乱的问题。希望如果我的代码被运行,它会更好地解释它:
from selenium import webdriver
import time
PATH = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)
driver.set_window_size(2000,1000)
driver.get('https://safagoods.com/vape-shop/disposable-vape-devices/huge-disposables')
HUGE_vape = driver.find_element_by_id('input-option2231')
print(HUGE_vape.text)
driver.get('https://safagoods.com/vape-shop/disposable-vape-devices/kangvape-onee-max-disposables')
KANG_vape = driver.find_element_by_id('input-option2228')
print(KANG_vape.text)
driver.get('https://safagoods.com/vape-shop/disposable-vape-devices/art-x-disposables')
ART_vape = driver.find_element_by_id('input-option2196')
print(ART_vape.text)
driver.close()
到目前为止,我有 3 个电子烟,但有 57 个不同的电子烟,有时他们会更新商品。我不想为每个电子烟输入信息,而是想知道是否有办法从我上面发布的初始一次性电子烟页面开始并打印出所有可用电子烟的库存。如果没有,我可以将它们全部输入,只是想看看是否有更好的选择。
如果您使用产品抓取主页应该很容易:
解决方案
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/")
wait = WebDriverWait(driver, 15)
vapes = wait.until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, ".caption>.name>a")))
vape_names = []
for vape in vapes:
vape_names.append(vape.text)
print(*vape_names, sep='\n')
结果
HUGE (BRAND) DISPOSABLE VAPE DEVICES 10PC [3000 PUFFS]
KANGVAPE ONEE MAX DISPOSABLE VAPE DEVICES 10PC [5000 PUFFS]
ART X DISPOSABLES 10PC [5000 PUFFS]
FUME INFINITY DISPOSABLE VAPE DEVICES 5PC DISPLAY BOX
SEA AIR PLUS DISPOSABLE VAPES 10PC
HYDE RETRO RECHARGE DISPOSABLES 10PC DISPLAY BOX
等等...
从技术上讲,您创建一个空列表并在那里添加文本值。请注意我如何使用 css 选择器和显式等待。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句