Selenium n'extrait pas les informations en utilisant xpath
J'essaie d'extraire des informations du site Web d'Amazon en utilisant du sélénium. Mais je ne suis pas en mesure de gratter ces informations en utilisant xpath dans le sélénium.
Dans l'image ci-dessous, je souhaite extraire les informations mises en évidence.
C'est le code que j'utilise
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)
Lorsque j'exécute ce code, cela montre qu'il y a une erreur avec seller_element = WebDriverWait(driver, 5).until( EC.visibility_of_element_located((By.XPATH, path)))mais ne dit pas de quelle exception il s'agit.
J'ai essayé de chercher en ligne et j'ai trouvé que cela se produit lorsque le sélénium n'est pas en mesure de trouver l'élément dans la page Web.
Mais je pense que le chemin que j'ai spécifié est juste. Aidez-moi, s'il vous plaît.
Merci d'avance
[EDIT-1]
C'est l'exception que je reçois
Message:
Réponses
//div[class='a-section a-spacing-none a-spacing-top-base']//span[class='a-size-small a-color-secondary']
XPath pourrait être quelque chose comme ça. Vous pouvez raccourcir cela.
Le sélecteur CSS pourrait être et ainsi de suite.
.a-section.a-spacing-none.a-spacing-top-base
.a-size-small.a-color-secondary
Je pense que la raison en est que l'expression xpath n'est pas correcte.
Prenez l'élément suivant à titre d'exemple, cela signifie que le span a deux classes:
<span class="a-size-small a-color-secondary">
Donc, span[@class='a-size-small')ne fonctionnera pas.
Au lieu de cela, vous pouvez utiliser xpath comme
//span[contains(@class, 'a-size-small') and contains(@class, 'a-color-secondary')]
ou cssSelector comme
span.a-size-small.a-color-secondary
Amazon met à jour son contenu en fonction du pays dans lequel vous vivez, car j'ai cliqué sur le lien fourni par vous, là je n'ai pas trouvé l'élément que vous recherchez simplement parce que l'article n'est pas vendu ici en Inde.
Donc en bref, si vous êtes assis en Inde et essayez de trouver votre élément, ce n'est pas là, mais comme vous changez l'emplacement en "États-Unis". il y apparaît.
Solution - Changer d'emplacement