View Full Version : [VB.NET] Monitorare GET e POST dal WebBrowser
Ho da poco cominciato a studiare VB.
In 24 ore ho messo su un controllo WebBrowser capace di fare alcune operazioni basilari e leggere (con un pò di fatica) il contenuto della pagina visualizzata.
Il problema nasce quando degli script JavaScript all'interno del documento visualizzato, effettuano chiamate AJAX al server e aggiornano dei dati.
Non so come monitorare questo evento tramite VB.
Immaginate una tabella che viene aggiornata ogni tot secondi oppure dopo il click di un bottone ma che modifichi i dati con una chiamata asincrona senza refresh della pagina.
L'unico modo che ho per sapere che è stata fatta e recuperare gli aggiornamenti è poter monitorare le chiamate HTTP, ma non ho trovato nel manuale e nelle reference membri della classe WebBrowser capaci di fare questo, ne sono riuscito a capire se qualche altro componente di .NET può fare al caso mio.
Sapreste darmi qualche delucidazione in merito?
Forse http://selenium.openqa.org potrebbe fare al caso tuo
Devo manipolare i dati che recupero, inserirli in un database e poi usarli per fare altre azioni.
Non mi sembra che selenium faccia queste cose
Lo fa :cool:
Ovviamente per la parte riguardante il db ci devi pensare tu :D
Il sito che mi hai linkato non mostra la guida... sapresti darmi qualche suggerimento per capire come funziona? non trovo documentazione.
Installi Selenium RC
http://selenium-rc.openqa.org/download.html
Ti scarichi l'estenzione Selenium IDE
http://selenium-ide.openqa.org/download.jsp
Registri tramite FireFox le azioni che devi fare, le esprti sempre tramite Selenium IDE nel tuo linguaggio preferito...e a te il resto :D
Fai conto che Selenium è usato internamente a Google. E' lo strumento che utilizzano per testare tutte le loro web application :cool:
La documentazione su Selenium RC la trovi su
http://selenium-rc.openqa.org/
Pochi giorni fa ho incontrato Selenium in un libro che trattava di Zend Framework, ma l'avevo sottovalutato. È qualcosa di portentoso.
Grazie infinite per questa illuminazione.
L'ho testato prima in php essendo il linguaggio che conosco meglio ed ora sto effettuando un porting in VB.NET in quanto non posso far girare uno script php per ore...
Ho un problema però.
Non so come parsare l'html grabbato con selenium in .Net.
Usando il webBrowser di .Net posso usare i metodi di document ma se non voglio usare webBrowser non c'è un parser interno a VB che possa fare questo sporco lavoro?
Selenium.getHtmlSource() mi ritorna il codice html del documento.
In php avevo implementato la classe simplehtmldom
che si trova qui:
http://sourceforge.net/projects/simplehtmldom/
questa mi permetteva di fare cose magiche tipo:
$html = str_get_html($selenium.getHtmlSource());
$elemento = $this->html->find('div#idElemento li a');
Che oggetto devo vedere o che .dll implementare?
Ho provato a cercare in rete e nella guida, ma in rete trovo solo parser di documenti remoti e la guida mi da sempre troppi risultati che non riesco a estrapolare.
Successivamente dovrò implementare un accesso a MySql ma per quello credo di aver trovato gia un tutorial.
Tnks
sono giorni che cerco ma un decente parser per .Net non l'ho trovato
sono giorni che cerco ma un decente parser per .Net non l'ho trovato
Risposta-domanda cross: ma visto che il parser esiste per esempio nella standard library di python (Google: http://docs.python.org/lib/module-HTMLParser.html), non potresti trasformarlo in un eseguibile per il CLR e poi invocarlo, come se fosse una libreria del tuo programma?
Credo che ci sia un compilatore per Python (IronPython) non so se si "tira dietro" anche le librerie standard del pitone.
Cdimauro? :O
Risposta-domanda cross: ma visto che il parser esiste per esempio nella standard library di python (Google: http://docs.python.org/lib/module-HTMLParser.html), non potresti trasformarlo in un eseguibile per il CLR e poi invocarlo, come se fosse una libreria del tuo programma?
Credo che ci sia un compilatore per Python (IronPython) non so se si "tira dietro" anche le librerie standard del pitone.
Cdimauro? :O
non ho le competenze per rispondere o per provare
non ho le competenze per rispondere o per provare
Neither do I :D
La mia era solo un'esca lanciata sperando che qualche esperto abboccasse e rispondesse al tuo dilemma... :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.