Jump to content

Retirar informação de uma página


zoep
 Share

Recommended Posts

Boa Tarde pessoal, tenho uma duvida...

Numa página web, para agente correr a página e tirar uma certa informação, é mais facil passar o codigo HTML para um *.txt ou é mais facil retirar a informação logo a partir da página?

Eu uso um controlo webbrowser para lhe retirar o seu código fonte, mas depois não consigo selecionar o que eu quero para mandar para um textbox.

Esta é a página:http://www.bpiinvestimentos.pt/Mercados/QuadroCotacoesIndexantes.asp

E dentro dessa tabela, gostava de retirar apenas, todos os dados referidos ao EURIBOR de 12 Meses!

URGENTÍSSIMO! (Mesmo que não saibam, metam que não saibam, ao menos sei que leram. Obrigado)[/url]

Link to comment
Share on other sites

tem que haver, a programação e o limite da imaginação.

tambem gostava de saber esse codigo, seria-me bastante util para ajudar um colega meu.

abraço:)

Tem certos limites sim... se nao tiveres um ponto por o qual te orientes nao podes fazer nada 😛

e como dizer a um computador diz-me o caminho de A a B indicando apenas a localizaçao do ponto B 😄 o computador segue ordens que tu lhe dás... se algo foge a regra que tu das ele nao pensa por ele próprio 🙂

There are two ways to write error-free programs; only the third one works.

Link to comment
Share on other sites

Anyway..

Fiz no bloco de notas... se nao estiver certo e nao conseguires dar a volta avisa....

Dim intTemp as integer
Dim strEURIBOR as string

intTemp = strHTML.IndexOf("<tr class="Azul">")
strHTML = strHTML.Substring(intTemp)
intTemp = strHTML.IndexOf("<table")
strHTML = strHTML.Substring(intTemp)
intTemp = strHTML.IndexOf("</font></td></tr></table></td></tr></table>") + 43
strEURIBOR = strHTML.Substring(0, intTemp)

Nota: strHTML e o source code que dizes que ja tens

There are two ways to write error-free programs; only the third one works.

Link to comment
Share on other sites

HellBlazer, eu fiz assim:

Imports System.IO
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        WebBrowser1.Navigate("http://www.bpiinvestimentos.pt/Mercados/QuadroCotacoesIndexantes.asp")

        Dim stream As New IO.StreamWriter("C:\teste.txt", IO.FileMode.OpenOrCreate)
        stream.WriteLine("")
        stream.Close()

    End Sub

    Public Function removerTags(ByVal HTML As String) As String
        'Função para remover TAGS HTML
        Return System.Text.RegularExpressions.Regex.Replace(HTML, "<[^>]*>", " ")
    End Function

    Private Sub BT_retirarinfo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_retirarinfo.Click

    End Sub

    Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
        TXT_codHTML.Text = WebBrowser1.DocumentText

    End Sub

    Private Sub TXT_codHTML_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TXT_codHTML.TextChanged
        TXT_semTAGS.Text = removerTags(TXT_codHTML.Text)
    End Sub

    Private Sub TXT_semTAGS_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TXT_semTAGS.TextChanged
        'guarda o texto já sem as TAGS HTML
        Dim objStream As New System.IO.FileStream("C:\teste.txt", IO.FileMode.OpenOrCreate)
        Dim Arq As New System.IO.StreamWriter(objStream)
        Arq.WriteLine(TXT_semTAGS.Text) 'guarda o que está na textbox num ficheiro de texto
        Arq.Close()
    End Sub
End Class

Neste momento, ele vai á página que disse, tira o código HTML, tira-lhe as TAGS e volta a guardar sem as tags.

Agora preciso fazer de maneira a ele encontrar no meio do .txt esta "frase":

(um bocado do que guardou sem as tags)

 O que �?   
   Politica Execu��o Ordens   
   Politica Conflitos Interesses   
   Perguntas Frequentes   
   Manual do Investidor   
     

     	


	   

		  P�gina Inicial  >  Investimento  >  Mercados  >   Cota��es Indexantes   




					      Indexante  Prazo  Data  Valor  M�dia do �ltimo m�s     EURIBOR    1 Semana    10/03/2009    1,054%    -      EURIBOR    1 M�s    10/03/2009    1,325%    1,628%      EURIBOR    3 Meses    10/03/2009    1,687%    1,943%      EURIBOR    6 Meses    10/03/2009    1,817%    2,034%      EURIBOR    12 Meses    10/03/2009    1,939%    2,135%      LIBOR    1 M�s    10/03/2009    1,312%    -      LIBOR    3 Meses    10/03/2009    1,686%    -      LIBOR    6 Meses    10/03/2009    1,828%    -      LIBOR    12 Meses    10/03/2009    1,951%    -      EONIA    -    10/03/2009    1,335%    -      TBA    -    10/03/2009    1,830%    -      REFIRATE *    -    09/03/2009    1,500%    - 

e preciso que ele retire apenas :  EURIBOR    12 Meses    10/03/2009    1,939%    2,135%

Link to comment
Share on other sites

Imports System.Text.RegularExpressions

        Dim strEuribor As String
        Dim intTemp As Integer
        Dim regex As New Regex("\s{2,}")

        strText = regex.Replace(strText.Trim(), " ")

        intTemp = strText.IndexOf("EURIBOR 12 Meses")

        strEuribor = strText.Substring(intTemp)
        strEuribor = strEuribor.Substring(0, strEuribor.IndexOf("LIBOR"))

There are two ways to write error-free programs; only the third one works.

Link to comment
Share on other sites

O mesmo erro :S

Meti o codigo assim

    Private Sub BT_retirarinfo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_retirarinfo.Click
        Dim strEuribor As String
        Dim intTemp As Integer
        Dim regex As New Regex("\s{2,}")


        var_semtags = regex.Replace(var_semtags.Trim(), " ")

        intTemp = var_semtags.IndexOf("EURIBOR 12 Meses")

        strEuribor = var_semtags.Substring(intTemp)
        strEuribor = strEuribor.Substring(0, strEuribor.IndexOf("LIBOR"))

        TXT_pretendido.Text = strEuribor

O erro continua a ser este "A referência de objecto não foi definida como uma instância de um objecto"

Link to comment
Share on other sites

já tá. HellBlazer, só mais uma coisinha.

Quando corro o programa, fica assim:

http://img26.imageshack.us/my.php?image=euribor.jpg

Se eu quizer dar mais uns espaços entre o Euribor, o 12 meses, o 11/03/2009, o 1,932% e o 2.135% como é que faço?

Em vez de ficar

Euribor 12 Meses 11/03/2009 1,932% 2,135% aparecer Euribor  12 Meses  11/03/2009  1,932%  2,135%??

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.