Selenium -无法从产品页面获取url



我想从这个产品的页面得到所有的信息。

目前我可以得到名称,品牌名称,价格…但是我无法获得产品的url。

我正在尝试:

product_name = driver.find_elements_by_xpath("//*[starts-with(@id, 'testId-pod-displaySubTitle-')]")

然后像这样捕获:product_name.get_attribute('href'),但没有成功。

为什么我不能从这个属性中得到这个信息?我做错了什么?

产品被包装在id为testId-searchResults-productsdiv中,因此您可以使用在此div中查找所有div元素,然后从a标记中获取href以获得结果-

这段代码(在带有Selenium beta 4的Mac上测试)返回所有的产品链接

driver.get("https://www.falabella.com/falabella-cl/collection/ofertas-mujer-ropa-v2")
wait = WebDriverWait(driver,30)
wait.until(EC.visibility_of_element_located((By.ID,'testId-Dropdown-desktop-button')))
sectionclass = driver.find_element(By.ID,"testId-searchResults-products")
alldivs = sectionclass.find_elements(By.CSS_SELECTOR,"div.jsx-4001457643.search-results-4-grid.grid-pod")
for i in range(len(alldivs)):
all_text = alldivs[i].find_element(By.CSS_SELECTOR,'div > a').get_attribute("href")

输出是链接这个

https://www.falabella.com/falabella-cl/product/15009660/Vestido-Fluido-Punos-Elasticos-Prarie-Mujer/15009666

https://www.falabella.com/falabella-cl/product/882018735/Chaqueta-Mujer/882018753

https://www.falabella.com/falabella-cl/product/881384821/Pantalon-de-Algodon-Mujer/881384856

。...

等等

如果您有这样的product_name列表:

product_name = driver.find_elements_by_xpath("//*[starts-with(@id, 'testId-pod-displaySubTitle-')]")

您可以使用ancestor a tag:

获得product url
product_name = driver.find_elements_by_xpath("//*[starts-with(@id, 'testId-pod-displaySubTitle-')]")
for product in product_name:
url = product.find_element_by_xpath(".//ancestor::a").get_attribute('href')
print(url)

相关内容

  • 没有找到相关文章

最新更新