Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Grabber di form html - Script interessante

    Salve a tutti,
    sto realizzando uno script per automatizzare operazioni di inserimento/modifica su siti che non mettono a disposizione le proprie API ma costringono l'utente a servirsi di interfacce html.

    In particolare lo script potrebbe tornare utile per "sincronizzare" applicazioni diverse, emulando il semplice data entry da parte di un utente.

    Per ora ho risolto il problema dell'autenticazione tramite form. Il mio codice si preoccupa di formulare una richiesta HTTP alla pagina contenente che elabora le credenziali di login, e memorizza i cookie che permettono l'accesso al backend.

    Ora arriva però la questione fondamentale:
    Data una pagina html contenente il form html dal quale si inserisce o si modifica un prodotto, devo realizzare la parte dello script che si preoccupa di:

    1) Estrapolare dal file html contenente il form di inserimento tutte le coppie chiave-valore (provenienti dagli input, dai select, dalle textarea...) eventualmente già valorizzate (se stiamo facendo una modifica).

    2) Modificare solo i valori afferenti alle chiavi note (es. se so che ci sono i campi nome, cognome, indirizzo vorrò modificare solo quelli e lasciare inalterati gli altri)

    3) Generare una richiesta HTTP esattamente assimilabile a quella generata dal browser quando si preme il pulsante "submit"


    Qualcuno conosce uno script simile o può darmi una mano? Sarò ben lieto di pubblicare lo script una volta pronto e collaudato.

    Ciao,
    Riccardo

    PS. Se non sono stato chiaro fatemi pure sapere

  2. #2

    Re: Grabber di form html - Script interessante

    Originariamente inviato da Petelicchio
    Salve a tutti,
    sto realizzando uno script per automatizzare operazioni di inserimento/modifica su siti che non mettono a disposizione le proprie API ma costringono l'utente a servirsi di interfacce html.

    In particolare lo script potrebbe tornare utile per "sincronizzare" applicazioni diverse, emulando il semplice data entry da parte di un utente.

    Per ora ho risolto il problema dell'autenticazione tramite form. Il mio codice si preoccupa di formulare una richiesta HTTP alla pagina contenente che elabora le credenziali di login, e memorizza i cookie che permettono l'accesso al backend.

    Ora arriva però la questione fondamentale:
    Data una pagina html contenente il form html dal quale si inserisce o si modifica un prodotto, devo realizzare la parte dello script che si preoccupa di:

    1) Estrapolare dal file html contenente il form di inserimento tutte le coppie chiave-valore (provenienti dagli input, dai select, dalle textarea...) eventualmente già valorizzate (se stiamo facendo una modifica).

    2) Modificare solo i valori afferenti alle chiavi note (es. se so che ci sono i campi nome, cognome, indirizzo vorrò modificare solo quelli e lasciare inalterati gli altri)

    3) Generare una richiesta HTTP esattamente assimilabile a quella generata dal browser quando si preme il pulsante "submit"


    Qualcuno conosce uno script simile o può darmi una mano? Sarò ben lieto di pubblicare lo script una volta pronto e collaudato.

    Ciao,
    Riccardo

    PS. Se non sono stato chiaro fatemi pure sapere

    Per il grabber usa delle ereg, ci metterai un po' a farlo e inoltre non sarà mai affidabile perchè molti valori non sono corretti al momento di stampa del sorgente ma vengono impostati mediante javascript dall'applicativo (comportamento che è impossibile da simulare), pertanto evita di basarti al 100% sul grabber.

    Per quanto riguarda la richiesta di GET/POST -> botta e risposta, ti consiglio CURL che è già pronto all'uso (ci metti relativamente poco anche a scaricare la SESSION / COOKIE) per navigare.

    PS: non è possibile creare un modello del genere in grado di soddisfare le tue richieste, questo perchè la maggior parte degli script utilizza sistema differenti che devono essere studiati per formulare soluzioni AD HOC.
    In ogni caso... buona fortuna con i tuoi studi.

    Ciao

  3. #3

    Re: Re: Grabber di form html - Script interessante

    Originariamente inviato da platone
    Per il grabber usa delle ereg, ci metterai un po' a farlo e inoltre non sarà mai affidabile perchè molti valori non sono corretti al momento di stampa del sorgente ma vengono impostati mediante javascript dall'applicativo (comportamento che è impossibile da simulare), pertanto evita di basarti al 100% sul grabber.
    Si, ovviamente parlavo di pagine di inserimento che prevedessero un form html standard (nè javascript tantomeno AJAX). Tu mi consigli di usare ereg, io invece avevo pensato ad utilizzare DOM, perchè bene o male potrei estrapolare rapidamente tutti i campi interessati con un semplice ciclo (almeno penso..)
    Per quanto riguarda la richiesta di GET/POST -> botta e risposta, ti consiglio CURL che è già pronto all'uso (ci metti relativamente poco anche a scaricare la SESSION / COOKIE) per navigare.
    Si curl l'ho già usato per il meccanismo di autenticazione e sembra funzionare abbastanza bene. Forse però non è molto facile formulare una richiesta POST perchè - ad esempio - con capisco come impostare il tipo di richiesta a multipart/form-data

    PS: non è possibile creare un modello del genere in grado di soddisfare le tue richieste, questo perchè la maggior parte degli script utilizza sistema differenti che devono essere studiati per formulare soluzioni AD HOC.
    In ogni caso... buona fortuna con i tuoi studi.

    Ciao
    Ovviamente non pretendo di realizzare un modello che funzioni ovunque, però ci sono molte applicazioni web - magari proprietarie e sviluppate da piccole aziende - che usano semplici form standard per l'inserimento di clienti, prodotti etc.. e un modello generico, da poter integrare di volta in volta, penso torni utile.

    Grazie,
    Riccardo

  4. #4

    Re: Re: Re: Grabber di form html - Script interessante

    Originariamente inviato da Petelicchio
    Si, ovviamente parlavo di pagine di inserimento che prevedessero un form html standard (nè javascript tantomeno AJAX). Tu mi consigli di usare ereg, io invece avevo pensato ad utilizzare DOM, perchè bene o male potrei estrapolare rapidamente tutti i campi interessati con un semplice ciclo (almeno penso..)
    Penso che con DOM riuscirai a parsare al massimo le pagine scritte senza errori, ma al primo codice HTML/XML mal scritto ti ritroverai con un parser bloccato.

    Mentre con un ciclo di ereg puoi praticamente estrarre tutti i campi.

    PREG_MATCH(); -> ti estrae i campi direttamente in variabili maleabili e puoi impostare un grado di tolleranza (minuscole - maiuscole - tag non terminati correttamente) totalmente a tua discrezione.

    Si curl l'ho già usato per il meccanismo di autenticazione e sembra funzionare abbastanza bene. Forse però non è molto facile formulare una richiesta POST perchè - ad esempio - con capisco come impostare il tipo di richiesta a multipart/form-data


    Ovviamente non pretendo di realizzare un modello che funzioni ovunque, però ci sono molte applicazioni web - magari proprietarie e sviluppate da piccole aziende - che usano semplici form standard per l'inserimento di clienti, prodotti etc.. e un modello generico, da poter integrare di volta in volta, penso torni utile.

    Grazie,
    Riccardo
    Per il multipart/form-data trovi la spiegazione nelle note della funzione:
    http://it2.php.net/manual/en/functio...topt.php#84916

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.