我在一个锚点标签下有5或6个产品,在同一个锚点标记中,有不同div的产品名称和价格。我想做的是比较所有产品的价格,然后单击价格最高的链接。
我的方法是:
product = driver.find_elements_by_xpath('//div[@class="slug__Grid-vcgsbx-0 hPFNJV pb-24 my-4 md:pb-4"]')
for individual in product:
productlink = individual.find_elements_by_tag_name("a")
for link in productlink:
data['link']= link.get_attribute('href')
print(link.get_attribute('href'))
name = link.find_elements_by_xpath('//p[@class="Card___StyledP4-sc-1629dl9-4 fWEsJX text-sm text-gray-800"]')
price = link.find_element_by_xpath('//p[@class="Card___StyledP2-sc-1629dl9-1 cFzjHk"]')
for singlename in name:
data["name"]=singlename.text
print(singlename.text)
for singleprice in price:
data["price"]=singleprice.text
我只是从页面上刮取了值,但无法确定应该如何做。我添加了一个页面链接和一张图片(如果你不想点击链接,你可以看到照片(。
页面链接::问题页面链接
图片::产品首页
图片2:产品页面检查模式
价格不在同一类中,因此您必须单独获取它们,然后将它们合并。这是一种方法:
此xpath将获得已降低的价格
salePrices = driver.find_elements_by_xpath("//p[contains(@class,'Card___StyledP2')]")
此xpath将获得标准价格
regularPrices = driver.find_elements_by_xpath("//p[contains(@class,'Card___StyledP3')]")
然后,您需要组合所有价格,删除符号并将其转换为整数,以便进行比较。
for p in salePrices:
prices.append(int(p.text.replace('৳','')))
for r in regularPrices:
prices.append(int(r.text.replace('৳','')))
要查找最大值,请使用max((
greatestPrice = max(prices)
要点击该元素,请转换回字符串
driver.find_element_by_xpath(f"//p[contains(normalize-space(.), '{str(greatestPrice)}')]").click()