2017-10-10 51 views
1

J'essaie de créer un outil pour le raclage automatique d'informations à partir d'un site Web qui utilise Flash avec l'outil Oracle BI. L'information est présentée lorsque nous sélectionnons des objets et que le flash est utilisé pour rendre les images. Comme je ne peux pas supprimer des informations des images elles-mêmes (à ma connaissance actuelle), j'ai découvert qu'un clic droit sur l'image, ouvrir un menu avec "passer à la table" et en cliquant à nouveau dessus, ouvre une page avec le des données sur une table scrapable de l'arbre HTML. Mon problème est que en cliquant sur l'objet flash (image), comme:Interaction avec le flash avec le pilote Web Sélénium Python

from selenium.webdriver.support import expected_conditions as EC 

elem = WebDriverWait(browser, 20).until(EC.presence_of_element_located((By.XPATH, '(//embed[@type="application/x-shockwave-flash"])[1]'))) 

menu=ActionChains(browser).move_to_element_with_offset(elem, 61, 61).click().perform() 

Mais j'essaie de cliquer sur l'option « passer à table » mais je ne suis pas en mesure de le faire, car je crois que le sélénium est toujours en cliquant sur l'image ci-dessous le menu. Ce que j'ai essayé (avec des valeurs différentes pour l'offset et en utilisant élém et éléments menu sans succès):

ActionChains(browser).move_to_element_with_offset(elem, 75, 75).click() 

Il y a une façon de le faire? Le site est: http://www.adrreports.eu/

étapes pour arriver à l'image:

langue Cliquez sur -> Rechercher un rapport -> choisir une lettre et un médicament (nouvel onglet apparaît) -> sélectionner l'onglet nommé « Numéro des cas individuels pour une réaction choisie »(4ème en haut à droite) et puis essayer d'obtenir les informations des images sur la gauche

Merci,

+0

Le lien que vous devriez essayer est 'http: // www.adrreports.eu/tables/product/a.html' Dans le lien, vous pouvez voir la lettre' a' juste avant '.html' qui est celle cela peut être changé jusqu'à 'z'. Essayez de continuer avec cet indice maintenant. – SIM

+0

Merci pour votre contribution, mais mon problème était très stupide puisque j'étais sur les bonnes pistes, mais n'a pas donné assez de temps pour les pages à charger.Merci! – joof

Répondre

0

bien cela est gênant.

mon idée était à peu près utilisable, même si elle n'est pas très élégante. Avec l'offset:

menu=ActionChains(browser).move_to_element_with_offset(elem, 61, 61).click().perform() 
ActionChains(browser).move_to_element_with_offset(elem, 66, 76).click().perform() 

j'ai pu cliquer sur la table de commutation dans le menu flash et faire la nouvelle page apparaît avec les valeurs.

ADR Report flash image

Le principal problème était de laisser la charge de la page, et il semble que cela a besoin un certain temps.

time.sleep(10) 

temps de sommeil fait l'affaire!

Cette méthode fonctionne, mais si quelqu'un a une meilleure idée pour extraire des informations d'une image flash ou un fichier, j'aimerais entendre!

Merci.