Selenium no extrae información usando xpath
Estoy tratando de extraer información del sitio web de Amazon utilizando selenio. Pero no puedo raspar esa información usando xpath en selenium.
En la imagen de abajo quiero extraer la información resaltada.
Este es el código que estoy usando
try:
path = "//div[@id='desktop_buybox']//div[@class='a-box-inner']//span[@class='a-size-small')]"
seller_element = WebDriverWait(driver, 5).until(
EC.visibility_of_element_located((By.XPATH, path)))
except Exception as e:
print(e)
Cuando ejecuto este código, muestra que hay un error con seller_element = WebDriverWait(driver, 5).until( EC.visibility_of_element_located((By.XPATH, path)))pero no dice qué excepción es.
Intenté buscar en línea y descubrí que esto sucede cuando el selenio no puede encontrar el elemento en la página web.
Pero creo que el camino que he especificado es el correcto. Por favor, ayúdame.
Gracias por adelantado
[EDIT-1]
Esta es la excepción que estoy recibiendo
Message:
Respuestas
//div[class='a-section a-spacing-none a-spacing-top-base']//span[class='a-size-small a-color-secondary']
XPath podría ser algo como esto. Puede acortar esto.
El selector de CSS podría ser y así sucesivamente.
.a-section.a-spacing-none.a-spacing-top-base
.a-size-small.a-color-secondary
Creo que la razón es que la expresión xpath no es correcta.
Tome el siguiente elemento como ejemplo, significa que el intervalo tiene dos clases:
<span class="a-size-small a-color-secondary">
Entonces, span[@class='a-size-small')no funcionará.
En lugar de esto, puede usar xpath como
//span[contains(@class, 'a-size-small') and contains(@class, 'a-color-secondary')]
o cssSelector como
span.a-size-small.a-color-secondary
Amazon está actualizando su contenido en función del país en el que vive, ya que hice clic en el enlace proporcionado por usted, no encontré el elemento que está buscando simplemente porque el artículo no se vende aquí en la India.
En resumen, si está sentado en la India y trata de encontrar su elemento, no está allí, sino a medida que cambia la ubicación a "Estados Unidos". está apareciendo allí.
Solución: cambiar la ubicación