1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

Web scraping WM IOS

Discussion dans 'Windev Mobile' créé par smimo1, Mar 13, 2020.

  1. smimo1

    smimo1 New Member

    Inscrit:
    Fev 4, 2018
    Messages:
    15
    J'aime reçus:
    0
    finalement je partage ca :
    --dans votre projet :cree un champ HTML nomme :" HTM_maPage " et un champ de saisie "SAI_code" pour affiche le code ,un bouton BTN_getCode pour lancer nos procédure.

    ---on crée 3 procedures en objective C :
    ----------------------------------------------------------------------------------------------
    1) procedure d'initiation "OBJC_INIT() " :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    <UIKit/UIKit.h>

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    <WebKit/WebKit.h>
    void OBJC_INIT() { /* Fonction déclarative */ }
    ----------------------------------------------------------------------------------------------

    2) procedure pour vérifie le chargement de la page "webViewDidFinishLoad" :
    NSString* webViewDidFinishLoad(void* nHandleChampWM) {
    NSString *code;
    UIView*ChampWM= (UIView*)nHandleChampWM;
    UIWebView*myView= (UIWebView*)[ChampWM subviews][0];
    if (myView.isLoading) {
    code=@"Preiere d'attendre la fin de chargement de la page";
    }else{
    code=@"GO";
    }
    return code;
    }
    ----------------------------------------------------------------------------------------------

    :relievedface: procedure pour récupérer le code et aussi appelle une procedure windev "nWL_nomProcedure" :
    void* RecuperCodeHtml(void* nHandleChampWM ,void* nHandleChampCode) {
    UIView*ChampWM= (UIView*)nHandleChampWM;
    UIWebView*myView= (UIWebView*)[ChampWM subviews][0];
    UIView*ChampCode= (UIView*)nHandleChampCode;
    UITextField*myViewCode = (UITextField*)[ChampCode subviews][0];
    [myView evaluateJavaScript:(@"document.getElementsByTagName('html')[0].innerHTML") completionHandler:^(NSString *result, NSError *error){
    if (error == nil ) {
    myViewCode.text = [NSString stringWithFormat:mad:"%@", result] ;
    nWL_nomProcedure([NSString stringWithFormat:mad:"%@", result]);
    }
    }];
    }
    ----------------------------------------------------------------------------------------------

    on cree le code BTN_getCode :
    ----------------------------------------------------------------------------------------------
    SI webViewDidFinishLoad(Handle(HTM_maPage))="GO" ALORS
    RecuperCodeHtml(Handle(HTM_maPage),Handle(.SAI_Code))
    SINON
    ToastAffiche(webViewDidFinishLoad(Handle(FEN_PageWeb.HTM_Strip)))
    FIN
    ----------------------------------------------------------------------------------------------
    si on veut lance la procedure avec le code HTML récupérer on appelle cette procedure
    PROCÉDURE nWL_nomProcedure(sCodeHtml est un chaîne), ObjC
    SI sCodeHtml<>"" ALORS
    .......
    FIN
     
    Tags:
  2. smimo1

    smimo1 New Member

    Inscrit:
    Fev 4, 2018
    Messages:
    15
    J'aime reçus:
    0
    je sais pas comme ces figures ont apparu :
    remplacer la premiere par 2)
    la deuxième par " : ( " ca donne "myView evaluateJavaScript : (@"document."
    trois et quatre par :" @ " % @ " ca donne "NSString stringWithFormat : @ " %@", result"
     
  3. popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,882
    J'aime reçus:
    1,532
    Je ne comprends pas l'intérêt de ton code.
    Car si c'est de récupérer le code html du champ html, il suffit d'affecter à ton champ de saisie, le contenu du champ html.
    Exemple
    Code (Text):

    SAI_code = HTM_maPage
     
     
  4. smimo1

    smimo1 New Member

    Inscrit:
    Fev 4, 2018
    Messages:
    15
    J'aime reçus:
    0
    tu as essaye avec une application iOS... l'ami
     
  5. smimo1

    smimo1 New Member

    Inscrit:
    Fev 4, 2018
    Messages:
    15
    J'aime reçus:
    0
    tu n'aura pas le code source html...
    avec mon code tu peux injecter de javascript
    -----------------------------------------------
    NSString *VLogin =@".........";

    NSString *Mdp =@"......";

    VLogin = [NSString stringWithFormat:mad:"document.getElementById('login').value = '%@%@",VLogin,@"'"]; //

    Mdp = [NSString stringWithFormat:mad:"document.getElementById('Password').value = '%@%@",Mdp,@"'"];

    [myView evaluateJavaScript :VLogin completionHandler:nil];

    [myView evaluateJavaScript :Mdp completionHandler:nil];

    [myView evaluateJavaScript:(@"document.getElementById('btnLogin').click();") completionHandler:nil];

    -----------------------------------------------
    si tu trouve mieux ...partage ...surtout pour application android (java)
    on est la pour ca
     
  6. smimo1

    smimo1 New Member

    Inscrit:
    Fev 4, 2018
    Messages:
    15
    J'aime reçus:
    0
    merde....

    VLogin = [NSString stringWithFormat document.getElementById('login').value = '%@%@",VLogin,@"'"]; //

    Mdp = [NSString stringWithFormat : @ "document.getElementById('Password').value = '%@%@",Mdp,@"'"];

    [myView evaluateJavaScript :VLogin completionHandler:nil];

    [myView evaluateJavaScript :Mdp completionHandler:nil];

    [myView evaluateJavaScript : @ "document.getElementById('btnLogin').click();") completionHandler:nil]
     
  7. popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,882
    J'aime reçus:
    1,532
    C'est peut-être avec
    Code (Text):
    SAI_code = HTM_maPage..contenu
    Sinon pour le Javascript tu as

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    Depuis la version 23.
     
  8. popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,882
    J'aime reçus:
    1,532
    Pour info dans le champ saisie de cette page, tu as un bouton code ou sinon tu met
    "[ code "]Réponse"[/code]"
    Sans les guillemets
     

Partager cette page

Chargement...