IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Erreur de requete XML Forbiden Google translate


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Points : 81
    Points
    81
    Par défaut Erreur de requete XML Forbiden Google translate
    Bonjour à tous,

    Je cherche à utiliser google translate via Excel et j'utilise le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Public Function GoogleTranslate(rng As String, Optional translateFrom As String = "en", Optional translateTo As String = "es")
     
        Dim getParam As String, objHTTP As Object, URL As String
     
        Set objHTTP = CreateObject("MSXML2.XMLHTTP")
     
        getParam = "Hello"
     
        URL = "https://translate.google.pl/m?hl=" & translateFrom & "&sl=" & translateFrom & "&tl=" & translateTo & "&ie=UTF-8&prev=_m&q=" & getParam
        Debug.Print URL
     
        With objHTTP
            .Open "GET", URL, False
            '.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
            .Send ("")
            Debug.Print (objHTTP.StatusText)
            If InStr(.responseText, "<div class=""result-container""") > 0 Then
                Application.Wait (Now + TimeValue("0:00:01"))
                GoogleTranslate = Clean(RegexExecute(.responseText, "div[^""]*?""result-container"".*?>(.+?)</div>"))
                Application.Wait (Now + TimeValue("0:00:01"))
            Else
                Application.Wait (Now + TimeValue("0:00:01"))
                GoogleTranslate = CVErr(xlErrValue)
                Application.Wait (Now + TimeValue("0:00:01"))
            End If
        End With
     
    End Function
    Cela marche parfaitement bien sur mon PC.

    Quand j'utilise le meme fichier d'un autre PC cela ne marche pas. J'ai creusé et j'ai vu que la différence se trouvé ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print (objHTTP.StatusText)
    Ce Code me renvoit Forbiden

    Comment puis-je changer cela ?

    en modifiant le ?

    Meric pour votre aide

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 136
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 136
    Points : 1 648
    Points
    1 648
    Par défaut
    ton setRequestHeader est en commentaire, donc pas utilisé, active le pour voir.
    et fait également le test manuellement via le navigateur
    ou alors ta requête n'est pas la même

  3. #3
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 959
    Points : 9 300
    Points
    9 300
    Par défaut
    Hello,
    regarde dans mon post ici pour voir ce que j'utilise en en-tête de requête.
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Points : 1 877
    Points
    1 877
    Par défaut
    Probablement que Google se rend compte que la requête est faite par un robot et donc décide de bloquer la requête.
    Pour en avoir le coeur net, vous pouvez afficher le code HTML reçu.

    En faisant ce genre de choses sur des sites, vous allez forcément vous taper des captcha ou être bloqué par Cloudflare très souvent.

    Dans ce cas d'utilisation, il existe peut-être une API.

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Points : 81
    Points
    81
    Par défaut
    J'ai ajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .SetRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"
    J'ai la meme erreur.

    Quand j'essaye de passer avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set ResultCont = MyHTML.getElementsByClassName("result-container")
    La methode ne semble pas exister (Meme en ayant coché microsoft HTML) dans les references

  6. #6
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 959
    Points : 9 300
    Points
    9 300
    Par défaut
    sur le PC où il y a l'erreur la connexion internet passe-t-elle par un vpn ou un proxy server ?
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Points : 81
    Points
    81
    Par défaut
    Non ni l'un ni l'autre.

    comment je peux utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyHTML = CreateObject("HTMLFILE")
    pour recuperer le HTML, après je peux coder la fonction pour recupérer le resultat moi meme .

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 136
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 136
    Points : 1 648
    Points
    1 648
    Par défaut
    Si tu as une réponse "forbiden" comme tu nous l'indiques, alors il n'y a pas de résultat à récupérer ....

  9. #9
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Points : 81
    Points
    81
    Par défaut
    Pas de moyen de contourner ?

  10. #10
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 136
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 136
    Points : 1 648
    Points
    1 648
    Par défaut
    as-tu tester ta requête directement dans le navigateur du PC où ça ne marche pas ?
    https://translate.google.pl/m?hl=en&...rev=_m&q=Hello
    (question bête mais, ce PC est bien relié et a accès à internet ?)

  11. #11
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Points : 81
    Points
    81
    Par défaut
    Oui j'ai testé en vain

  12. #12
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 136
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 136
    Points : 1 648
    Points
    1 648
    Par défaut
    Citation Envoyé par rampage92 Voir le message
    Oui j'ai testé en vain
    en vain ? ça veut dire que rien ne s'affiche dans ton navigateur web ? blocage de ton ip par google pour spam de requête peut-être

Discussions similaires

  1. [API Google translate] Erreur requête
    Par sinzen dans le forum APIs Google
    Réponses: 8
    Dernier message: 08/12/2017, 11h06
  2. [Tomcat] configuration d'une page d'erreur dans web.xml
    Par Super Castor dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 08/04/2009, 15h58
  3. [ debutant ][ Tomcat ] Erreurs fichier web.xml
    Par zsoh dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 13/04/2005, 11h35
  4. erreur bigint requete Employee.fdb via AdoDb
    Par jflebegue dans le forum Connexion aux bases de données
    Réponses: 7
    Dernier message: 04/01/2005, 11h03
  5. Recuperer les erreurs des requetes sql en asp
    Par emile13 dans le forum ASP
    Réponses: 3
    Dernier message: 01/04/2004, 13h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo