2013-04-12 2 views
0

J'ai l'autorisation de récupérer certaines données d'un site Web tiers. Le grattage fonctionne très bien, mais il y a maintenant un barrage routier en raison du nouveau processus de connexion. Le nouveau processus de connexion est un mélange de cartes à puce, java et jQuery. Mon plan est maintenant d'utiliser quelque chose comme WatiN pour atteindre l'objectif final. Ce que le programme doit faire ...Automatisation d'un grattage d'écran approuvé avec une torsion

Ouvrez IE pour permettre à l'utilisateur de naviguer vers la connexion de certificat. L'utilisateur se connectera en utilisant son certificat.

L'application navigue vers une page de connexion et commence le raclage. Avec WatiN, je suis capable de me connecter et d'ouvrir la page de connexion, mais je ne suis pas capable de faire grand-chose après. Ce que j'ai besoin de comprendre est un moyen de prendre mon application console, ouvrir IE et se connecter (manuellement), puis laisser le racleur prendre le contrôle de la fenêtre IE visuellement ou dans le code. Idéalement, je voudrais prendre les cookies et HTML à partir de la page de connexion post dans WatiN et commencer ma mise au rebut, j'ai besoin de stocker les cookies en raison de changements de page dans le grattoir. Chaque fois que j'essaie de stocker les cookies, j'obtiens une erreur "Délai d'attente pour que le document devienne disponible" Des idées?

Browser browser = new IE(); 
     browser.GoTo(url); 

     browser.WaitForComplete(); //does not seem to work 
     string _html = browser.Html; 
     var cook= browser.Eval("document.cookie"); 

Répondre

0

Je viens de tomber sur votre question. Tard je sais, mais ça peut aider quelqu'un d'autre. J'utilise ce qui suit pour joindre à une session ouverte de Firefox. J'utilise Firefox car il n'est pas utilisé pour la navigation par l'utilisateur et il est moins susceptible de voir ses paramètres modifiés.

Sub AttachToOrOpenNewBrowser(ByRef ff As WatiN.Core.Browser) 
    Try 
     'If Browser is open then attach to browser 
     ff = Browser.AttachTo(Of FireFox)(Find.First) 
    Catch ex As Exception 
     'Else open new Browser and attach to this NEW browser 
     ff = New FireFox(Trim(url)) 
    End Try 
End Sub 

J'appelle ce sub de mon code. avant de l'appeler je vérifie que ff "n'est rien" dans le cas où il est déjà attaché comme suit:

Sub MainWork() 
    Dim ff As WatiN.Core.Browser 
    If ff Is Nothing Then AttachToOrOpenNewBrowser(ff) 
    'Do your scrape 
End Sub 
Questions connexes