如何在python中使用selenium查找具有相同名称的多个产品的特定产品

2024-06-24 13:04:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在制作一个supreme机器人,我希望它在https://www.supremenewyork.com/shop/all/sweatshirts上找到一个特定的产品。 但它们是多个同名的产品,比如我写的时候

driver.find_element_by_partial_link_text("Cutout Logo Crewneck Violet").click()

它没有找到它,但如果我改变了剪纸标志Crewneck紫罗兰只是紫罗兰它点击紫罗兰之一。或者,如果我从Cutour徽标Crewneck中取出紫罗兰色,它会单击它找到的第一个不是紫罗兰色的图标

我想这是因为颜色和名字是分开的,但我不确定

<li><div class="inner-article"><a style="height:150px;" 
href="/shop/sweatshirts/al1qigtzr/iki14srab"><img width="150" height="150" 
src="//assets.supremenewyork.com/188962/vi/hZiiM3_KhGM.jpg" alt="Hziim3 khgm">
<div class="sold_out_tag">sold out</div></a><div class="product-name"><a 
class="name-link" href="/shop/sweatshirts/al1qigtzr/iki14srab">Cutout Logo 
Crewneck</a></div><div class="product-style"><a class="name-link"
href="/shop/sweatshirts/al1qigtzr/iki14srab">Violet</a></div></div></li>

我希望它按名称查找产品,因为supreme产品销售很快,我没有时间获取产品的xpath


Tags: namedivcom产品linkshopclasshref
1条回答
网友
1楼 · 发布于 2024-06-24 13:04:27

这是一个有趣的问题。我会使用.text个WebElements来查找匹配项。您只需收集元素(divs中的文本,其中包括产品名称和颜色),然后在这些元素中找到具有所需产品名称和颜色的元素

试试这个:

from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.implicitly_wait(4)
driver.get('https://www.supremenewyork.com/shop/all/sweatshirts')

# Collect all products per page
products = driver.find_elements(By.CSS_SELECTOR, 'div.inner-article')

# Input your search query here
search = 'Cutout Logo Crewneck Violet'

search_words = search.split()
found_product = False

# Search for a match by text inside product WebElements
for p in products:
    if all(search_word in p.text for search_word in search_words):
        found_product = p

found_product.click() if found_product else print('No product found')

我希望这有帮助,祝你好运

相关问题 更多 >