我想从这个产品的页面得到所有的信息。
目前我可以得到名称,品牌名称,价格…但是我无法获得产品的url。
我正在尝试:
product_name = driver.find_elements_by_xpath("//*[starts-with(@id, 'testId-pod-displaySubTitle-')]")
然后像这样捕获:product_name.get_attribute('href')
,但没有成功。
为什么我不能从这个属性中得到这个信息?我做错了什么?
产品被包装在id为testId-searchResults-products
的div
中,因此您可以使用在此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/15009666https://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)