0
votes

Tirage en ligne à l'aide de sélénium et de chromedriver en python

Je regarde Ceci Page. J'essaie d'utiliser le sélénium et le chromdriver pour gratter ces données (indiquées par le marqueur rouge):

Entrez la description de l'image ici

Voici mon code Python: xxx

mais le code ne reçoit pas le est. Retourner et après une longue attente, il renvoie ce message d'erreur: xxx

Qu'est-ce que je fais mal et quel est le moyen le plus rapide et le plus rapide d'obtenir le EST Renvoie Valeur de la page?

Mise à jour: Voici ce que je vois si j'utilise l'élément d'inspection dans chrome:

Entrez la description de l'image ici


0 commentaires

3 Réponses :


0
votes

Pouvez-vous essayer avec XPath à la place, il devrait ressembler à ceci:

estimated = driver.find_element_by_xpath("*//div[@class='IbBox Ta(start) C($tertiaryColor)']").text()


0 commentaires

1
votes

L'en-tête joue un rôle important pour récupérer la valeur que vous suivez, alors assurez-vous que vous en avez un. Étant donné que c'est ainsi que vous obtenez le contenu souhaité. xxx


9 commentaires

Merci, ça marche bien. Comment avez-vous trouvé la classe? Comment savez-vous que cela devrait être MB \ (8PX \) ?


Le nom de classe contenant des accolades doit être échappé. Le caractère backslash (\) est utilisé pour échapper aux caractères qui ont autrement une signification particulière, telle que Newline, Backslash lui-même ou le caractère de devis.


Pouvez-vous s'il vous plaît élaborer, je ne suis pas trop familier avec cela.


Par exemple, comment pouvez-vous extraire près de la juste valeur ?


Essayez ceci soupe.select_elect_one ("[class = 'mb \ (8px \)']") "Find_Previous_Sibling () .get_text ()


Merci encore, cela fonctionne aussi bien. Néanmoins, il n'est pas clair pour moi comment avez-vous découvert que nous devions utiliser class = 'MB \ (8px \)' . Si je cliquez avec le bouton droit de la souris sur Chrome et regardez la page source, ce n'est pas là. Pouvez-vous s'il vous plaît expliquer comment et où trouvez-vous le nom de la classe? Veuillez expliquer cela afin que je puisse accepter votre réponse comme une réponse complète. Merci.


Pourquoi vous ne le trouvez pas dans cette page est un vrai mystère. Cependant, consultez ce image


Merci pour l'image. Ok je vois cette image maintenant. Je vais mettre à jour ma question avec cette image. Ma question est que l'est. Le retour est à l'intérieur d'un autre div , et que div a cette classe: ibbox ta (début) C ($ tertiarycolor) . Pourquoi avez-vous utilisé le nom de la classe pour le div ?


Pour obtenir cette sortie spécifique de cette page, vous devez utiliser un sélecteur unique. Étant donné qu'il n'y a pratiquement pas dans ibbox Ta (début) C ($ tertiarycolor) , je devais donc choisir le parent qui vous donne sûrement le résultat requis. J'espère que tu l'as eu maintenant. Merci.



0
votes

Ce message d'erreur ...

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC


0 commentaires