Vytiahnuť text z IE   zodpovězená otázka

VB.NET

Dobrý deň , pracujem na aplikácii ,ktorá sa občas spojí s mojím webom.

Potrebujem vytvoriť nové okno Internet Explorer-u a vňom načítať stránku s atribútami ("?type=blabla&cache=...") a ona to spracuje a to textbox na stránke vypíše odpoved ,ktorú aplikácia z okna vytiahne a dalej spracuje.

Používam nato komponetu : shdocvw.dll a mshtml.tlb (sú v System32)

Môj kód :

Dim TheBrowser = New SHDocVw.InternetExplorerMedium
Dim HTMLDoc As mshtml.HTMLDocument
        TheBrowser.Visible = False
        TheBrowser.Navigate(URL:=TextBox2.Text)
Do
Loop Until Not TheBrowser.Busy

HTMLDoc = TheBrowser.Document
        TextBox1.Text = HTMLDoc.toString

Priehliadač sa vytvorí na pozadí (nieje ho vidno) a stránku načíta ,ale problém nastane pravdepodobne tu :

HTMLDoc = TheBrowser.Document
        TextBox1.Text = HTMLDoc.toString

teda nevytiahne text zo stránky a do textbox1.text to zapíše : [object] čo nieje správny obsah stránky.

Dakujem sa odpovede.

PS: tá stránka nesmie byť v aplikácii lebo inak by sa stránky otvárali akoby cez tú aplikáciu a firewall by napovedal že sa aplikácia snaží komukovať s webom a to v prípade typu mojej aplikácie nieje nutné. Kludne ak niekto viete iný spôsob ako vytvoriť skritý IE na pozadí -> otvoriť stránku -> vytiahnuť text , budem rád za návod :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Vcera som to tu prave pisal :D

Dim req As WebRequest = HttpWebRequest.Create("url")
Dim res As WebResponse = req.GetResponse()
Dim stream As Stream = res.GetResponseStream()
Dim Code As String = New StreamReader(stream).ReadToEnd()

Do Code ti nacita zdrojovy kod.

Mimochodom je tu aj hotovy clanok o praci s http protokolom.

http://vbnet.cz/clanek--72-pracujeme_s_p...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

áno , dakujem za váš kód a aj článok som si už dávnejšie prečítal. Ale môj problém nieje vo vytiahnutí zdrojového kódu celého ,ale iba to čo obsahuje tbRespond.Text (TextBox1.Text). Je pravda že vrátený zdrojový kód obsahuje aj ten TextBox s obsahom a bude asi možné t niako osekať aby mi ostalo to čo potrebujem ,ale ocenil by som kód ktorý by zavolal akoby komponentu z tej stránky a vytiahol z nej text. Dalo by sa to ?

PS: na tomto webe : http://www.codeproject.com/KB/vb/kirango... je popísaná práca s IE a riadok s :

iHTMLCol = HTMLDoc.getElementsByTagName("input")

sa mi zdá ako možné riešenie, akurát neviem či správne a je treba pridať References a to vytvorí knižnicu ,ktorú treba ťahať všade s aplikáciou čo sa mi moc nepáči a radšej by som tomu predyšiel.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

jaj.. no tak nato poznam len 2 sposoby ak nechcete pouzivat ine kniznice len tie co mate tak musite nacitat web do webbrowseru a odtial do HtmlDocumentu:

Dim doc as HtmlDocument = webBrowser1.Document

a potom uz len vytiahnete z htmldocumentu ten element nejako takto pouzitim unikatheho ID toho textboxu

Dim value as String = doc.GetElementById("ID").GetAttribute("atribut").ToString

popripade cez element

Dim value as String = doc.GetElementsByTagName("input")["ID alebo sem mozete dat poradie"].GetAttribute("atribut").ToString

popripade da sa pouzit este celkom dobra kniznica menom HtmlAgilityPack ktora sluzi na parsovanie a da sa donho priamo loadnut HTML kod zo stringu alebo zo stremu alebo z cohokolvek...

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback