gpt4 book ai didi

selenium - 通过 XPath 为 Selenium Web Scraping 选择一个元素

转载 作者:行者123 更新时间:2023-12-04 11:16:37 24 4
gpt4 key购买 nike

我正在尝试使用 Selenium (Python) 从网页中选择一个“价格”。网页背后的逻辑是有两种类型的价格——“正常价格”和“销售价格”,它们具有不同的 XPath。
我遇到的难题是我能够选择包含“正常价格”和“销售价格”的父元素(即,如果特定产品存在销售价格)。然后我尝试对其应用“尝试”和“除外”,以便如果“销售价格”存在 - 获取该价格,否则 - 获取“正常价格”。但是,我似乎无法强制它只在选定的父元素中查找“销售价格”,而是从页面的开头开始,结果是如果有一个“销售价格”页面 - 它将应用于所有产品。
我已经列出了代码的相关提取器以及下面的 HTML。

prices = self.driver.find_elements_by_xpath('//*[contains(@class,"row item-block checkout-item isc-productContainer")]')
all_prices_list=[]
for i in prices:
try:
sale_price=self.driver.find_element_by_xpath('.//*[contains(@class,"row item-block checkout-item isc-productContainer")]/div[4]/isc-product-price-pdp/span/span/span[1]/span[2]')
all_prices_list.append(sale_price.text)
except:
reg_price=self.driver.find_element_by_xpath('.//*[contains(@class,"row item-block checkout-item isc-productContainer")]/div[4]/isc-product-price-pdp/span/span/span[2]')
all_prices_list.append(reg_price.text)
HTML 代码的相关片段如下。
<span class="sale-price" id="salePrice">
<span class="price-title">Sale</span>
<span class="price-sale" ng-bind="vm.getActualPrice(product)">£0.98</span>
</span>
<span class="regPrice" id="regPrice">
<span class="price-title">Reg:</span>
<span class="price-old" ng-bind="vm.getRegularPrice(product)">£0.99</span>
</span>
有没有办法只在选定的“价格”元素中查找“常规”或“销售价格”?

最佳答案

看起来您正在尝试查找 sale_pricereg_price在父元素内部,但实际上没有这样做。
因此,请尝试以下操作:

prices = self.driver.find_elements_by_xpath('//*[contains(@class,"row item-block checkout-item isc-productContainer")]')
all_prices_list=[]
for i in prices:
try:
sale_price=i.find_element_by_xpath('.//*[contains(@class,"row item-block checkout-item isc-productContainer")]/div[4]/isc-product-price-pdp/span/span/span[1]/span[2]')
all_prices_list.append(sale_price.text)
except:
reg_price=i.find_element_by_xpath('.//*[contains(@class,"row item-block checkout-item isc-productContainer")]/div[4]/isc-product-price-pdp/span/span/span[2]')
all_prices_list.append(reg_price.text)
此外,您的定位器可以改进

关于selenium - 通过 XPath 为 Selenium Web Scraping 选择一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67452121/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com