Array
(
)

Como fazer carregamento e leitura de paginas web???

Panarello
   - 24 set 2008

Entao pessoal estou tentando fazer um Screen Scrapting de uma pagina web (acho q eh assim q fala)

estou usando o WebBrowser da seguinte maneira

o que estou tentando fazer e varias consultas em uma determinada pagina que tem um campo cpf e um botao de fazer a consulta (que vou chamar de pagina 1) que por sua vez faz um submit e me volta com o resultado (pagina 2) .

Atualmente estou usando o WebBrowser assim , eu tenho uma copia da pagina 1 (alterada aonde ao final do carregamento da pagina ele faz um submit automático ) localmente , faco alteração dela inserindo o cpf de forma sequencial e mando meu
webbrowser abri-la , ai quando ele completa o carregamento eu faco a leitura da pagina e armazeno os dados que eu quero.

Porem ele tem um comportamento anormal depois de algumas milhares de interações
Entao vi q poderia usar o HttpWebRequest e HttpWebResponse talvez tivesse algum ganho com eles ao inves de usar toda estrutura do webBrowser

So que como eu faco esse mesmo processo usando o HttpWebRequest , outra coisa tem como eu faria mandar um post para a pagina 2 com os dados do campo texto (cpf ) da pagina 1 ?

Obs: ele não passa o cpf por QueryString não.

Vlw pela ajuda.....

Panarello
   - 24 set 2008

Consegui resolver criei a seguinte classe , e vale resaltar que melhorou 1000¬ a performance

A função que faz a leitura da pagina , voce precisa passar o link da pagina com o Post junto no final.

Private Function leituraPaginaSemWebBrowser( ByVal pagina As String)
Dim myRequest As HttpWebRequest
Dim WebResp As HttpWebResponse
Dim Answer As StreamReader
´Dim newStream As Stream
Dim retorno As String
Dim cookie As String

Try
myRequest = WebRequest.Create(pagina)
myRequest.Method = ´POST´
myRequest.ContentType = ´application/x-www-form-urlencoded´
myRequest.AllowAutoRedirect = False
myRequest.ContentLength = 0

WebResp = myRequest.GetResponse()

Dim headers As WebHeaderCollection = WebResp.Headers

If (headers(´Set-Cookie´) <> Nothing) Then
cookie = headers(´Set-Cookie´)
End If
Answer = New StreamReader(WebResp.GetResponseStream())
retorno = Answer.ReadToEnd()

Return retorno

Catch ex As Exception
Return ´A PAGINA NAO PODE SER CARREGADA´
Finally
If Not Answer Is Nothing Then
Answer.Close()
End If
End Try
End Function