Partage
  • Partager sur Facebook
  • Partager sur Twitter

telecharger des fichiers sur edge en c#

sans selenium sur site dynamique

Sujet résolu
    26 août 2022 à 12:00:59

    Bonjour à tous,

    je bosse en entreprise et nous avons dans nos fichiers excel des macros qui jusqu'ici étaient capable de récupérer des fichiers sur des sites sécurisés dynamiques en passant par internet explorer.

    par le biais d'une URL dynamique communiquée a la macro par l'utilisateur, la macro VBA excel était capable de récupérer tous les fichiers nécessaires.

    Or Internet explorer étant voué a disparaitre au profit d'edge, et edge ne passant pas par la technologie activeX, il n'est plus possible de "webscrapper" ces fichiers aussi simplement qu'avant.

    J'aimerai donc recoder un IHM en c# par exemple pour effectuer la même tache (lancer edge, atteindre la page avec username et mdp et télécharger une liste de fichier présents) mais sans utiliser d'outils externe type Selenium (mis en place par microsoft) pour y parvenir.

    Je ne cherche pas de solution toute faite, mais si l'un d'entre vous sais déjà me dire si c'est faisable avec uniquement du code et dans quelle direction me diriger pour trouver des solutions a exploiter ca m'aiderai grandement.

    A ce jour mes propres recherches ont été infructueuses ce qui m'incite a faire appel a la communauté.

    je n'ai pas trouvé de topic sur le sujet mais peut être que mon gros soucis vient de ma méthode de recherche sur le web ou les forums ? 

    merci d'avance pour votre aide et vos retours sur le sujet,

    signé un noob (Julien)

    • Partager sur Facebook
    • Partager sur Twitter

    "Kaizoku oni ore wa naru !"

      26 août 2022 à 12:29:24

      C'est quoi ce type de sécurité adossé à COM/ActiveX ???
      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
        30 août 2022 à 10:41:33

        Bigre ! je comprends même pas la question.  (noob inside)

        il n'y a pas de techno activeX puisque Edge n'en utilise pas.

        C'est ce qui rend la macro VBA déjà existante obsolète.

        Pour l'instant j'ai trouvé des solutions qui passent par :

        - Selenium (interdit dans mon entreprise)

        - des nuget packages de type HTMLAgility pack par exemple...

        je suis en train de regarder des solutions qui utilisent la classe HttpClient.

        Les sécurités du site sont les suivantes:

        - un accès par login et mot de passe

        - une URL "dynamique": elle change a chaque accès ou rafraichissement

        jusqu'ici l'utilisateur devait copier l'URL jusqu'au "?" pour la renseigner dans sa macro VBA afin de pouvoir télécharger les extensions dont il avait besoin en automatique.

        La macro ouvre IE, récupère des cookies, accède à la page qui contient les bons fichiers les télécharge et les sauve dans un dossier préalablement renseigné.

        ca ne marche plus sur EDGE. 

        et donc ma mission consiste soit a réparer la macro pour la rendre compatible avec EDGE (et je déteste VBA)

        soit fournir une solution alternative

        Et c'est la que j'ai pensé a C# pour refaire tout un petit IHM mignon et facile à maintenir sur la durée.

        mon interface est prête, il ne me manque "que" la partie du code qui va contrôler mon browser et télécharger le contenu adéquat.

        je suis bien conscient de manquer de connaissances sur les échanges et possibilités IHM/web browser c'est pourquoi je pose la question sur une direction a prendre vers une solution simple efficace que je vais pouvoir apprendre et maitriser avant de la mettre en place.

        En espérant avoir été un peu plus clair, 

        Cordialement

        • Partager sur Facebook
        • Partager sur Twitter

        "Kaizoku oni ore wa naru !"

          30 août 2022 à 11:39:24

          Je ne pense pas que c'est un problème de compétence mais plus de l'incompréhension mutuelle.

          J'ai du mal à voir le rapport entre le VBA et l'utilisation d'Internet Explorer.

          VBA/Excel n'a pas besoin d'un navigateur Web pour télécharger des fichiers via le Web.

          Qu'est-ce qui, dans votre VBA, vous lie à Internet Explorer ?

          Si votre VBA/Excel est lié à Internet Explorer, c'est foireux.

          Mais lier votre VBA/Excel à Edge ou à un scrapping quelconque, je trouve ça tout aussi foireux.

          >sans utiliser d'outils externe type Selenium (mis en place par microsoft)

          Le rapport entre Selenium et M$ ???

          Pourquoi ne pas directement modifier le VBA pour qu'il fasse le travail "seul" ?

          Si vous voulez faire une IHM distincte, pourquoi utiliser Edge et pas simplement les fonctionnalités .NET ?

          Quel protocole de sécurité est mis en place pour faire tous ces trucs "exotique".

          • Partager sur Facebook
          • Partager sur Twitter
          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
            31 août 2022 à 15:22:43

            Bonjour,

            Finalement j'ai pu trouver une solution et patcher ma macro VBA grâce à la solution fournie sur ce lien si jamais quelqu'un rencontre le meme probleme :

            Automate Chrome / Edge using VBA - CodeProject

            • Partager sur Facebook
            • Partager sur Twitter

            "Kaizoku oni ore wa naru !"

              31 août 2022 à 17:11:40

              Ok, mais cela semble tout aussi casse-gueule et limité que de jouer au muppets-master de la solution OLE avec Internet Explorer.

              Pour télécharger des fichiers, pourquoi passer par un navigateur Web ?

              VBA a tout ce qu'il faut pour être un client Web à même de télécharger des fichiers comme une grande personne (On n'est plus en 1990).

              • Partager sur Facebook
              • Partager sur Twitter
              Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                1 septembre 2022 à 9:23:13

                A vrai dire je ne sais pas ce qui impose un tel traitement:

                la première page est un site sécurisé accessible par une "gate" (je n'y ai moi même pas accès pour tester le résultat de la macro)

                c'est uniquement grâce a un cookie présent sur cette première page qu'il est possible d'accéder a la suivante contenant tous les fichiers potentiellement téléchargeables

                le contrôle du browser sert uniquement à récupérer ce cookie pour automatiser le téléchargement via des requêtes HTTP dans les lignes suivantes.

                j'entends bien que tout ceci doit pouvoir être obtenu de façon plus simple stable et sécurisée malheureusement on m'a surtout demandé de "réparer" une macro qui jusqu'ici fonctionnait bien sous IE et on m'a bien fait comprendre qu'il fallait que j'évite de tout refaire...

                Donc j'ai patché...

                mais a la base j'aurai préféré refaire un IHM sous C# qui permette d'obtenir le même résultat de façon beaucoup plus cohérente...

                • Partager sur Facebook
                • Partager sur Twitter

                "Kaizoku oni ore wa naru !"

                telecharger des fichiers sur edge en c#

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown