zoep Posted March 10, 2009 at 02:14 PM Report Share #249637 Posted March 10, 2009 at 02:14 PM 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 More sharing options...
Hellblazer Posted March 10, 2009 at 02:57 PM Report Share #249649 Posted March 10, 2009 at 02:57 PM não ha maneira de retirar isso sem ser a martelada por manipulação de strings... o que e um metodo pouco tradicional porque a qualquer altura eles alteram o esquema e deixa de funcionar 😛 There are two ways to write error-free programs; only the third one works. Link to comment Share on other sites More sharing options...
j.mendes24 Posted March 10, 2009 at 03:51 PM Report Share #249661 Posted March 10, 2009 at 03:51 PM 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:) Link to comment Share on other sites More sharing options...
José Lopes Posted March 10, 2009 at 04:07 PM Report Share #249666 Posted March 10, 2009 at 04:07 PM sim..a imaginação não tem limite...... tanto a quem de programa deste lado...como a que programa do lado da página que queres aceder... lol 100% com Hellblazer Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!! Link to comment Share on other sites More sharing options...
zoep Posted March 10, 2009 at 04:51 PM Author Report Share #249686 Posted March 10, 2009 at 04:51 PM sim, mas eu ficava contente só por conseguir fazer ali como a página está nesta altura! Amnhã posto o código que já tenho, tá com um erro q nao consigo resolver! Link to comment Share on other sites More sharing options...
Hellblazer Posted March 10, 2009 at 07:12 PM Report Share #249707 Posted March 10, 2009 at 07:12 PM 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 More sharing options...
Hellblazer Posted March 10, 2009 at 07:20 PM Report Share #249709 Posted March 10, 2009 at 07:20 PM 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 More sharing options...
zoep Posted March 11, 2009 at 11:39 AM Author Report Share #249830 Posted March 11, 2009 at 11:39 AM 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 More sharing options...
zoep Posted March 11, 2009 at 02:27 PM Author Report Share #249855 Posted March 11, 2009 at 02:27 PM pessoal... nada? Link to comment Share on other sites More sharing options...
zoep Posted March 12, 2009 at 09:43 AM Author Report Share #250113 Posted March 12, 2009 at 09:43 AM desisitiram de me ajudar? :S Vá lá pessoal... 😁 Link to comment Share on other sites More sharing options...
Hellblazer Posted March 12, 2009 at 10:13 AM Report Share #250120 Posted March 12, 2009 at 10:13 AM 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 More sharing options...
zoep Posted March 12, 2009 at 10:28 AM Author Report Share #250129 Posted March 12, 2009 at 10:28 AM HellBlazer, se funcionar, pago-te um café 👍 declaro strText como string? ou como path para o ficheiro? Declarei como string e deu-me este erro "A referência de objecto não foi definida como uma instância de um objecto." nesta linha "strText = regex.Replace(strText.Trim(), " ")" Link to comment Share on other sites More sharing options...
Hellblazer Posted March 12, 2009 at 10:33 AM Report Share #250131 Posted March 12, 2009 at 10:33 AM o strText supostamente e o texto que tu mostras-te la em cima sem tags 👍 There are two ways to write error-free programs; only the third one works. Link to comment Share on other sites More sharing options...
zoep Posted March 12, 2009 at 10:33 AM Author Report Share #250132 Posted March 12, 2009 at 10:33 AM ah okey ! Link to comment Share on other sites More sharing options...
zoep Posted March 12, 2009 at 10:36 AM Author Report Share #250135 Posted March 12, 2009 at 10:36 AM 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 More sharing options...
zoep Posted March 12, 2009 at 10:42 AM Author Report Share #250143 Posted March 12, 2009 at 10:42 AM acho que já sei do que é... deixa emendar a ver se resolve! Link to comment Share on other sites More sharing options...
zoep Posted March 12, 2009 at 10:44 AM Author Report Share #250145 Posted March 12, 2009 at 10:44 AM HellBlazer, quando qizeres ir beber o cafézinho diz 🙂 Eu pago-te! Ou uma imperialzinha 👍 Obrigado, e RESOLVIDO! Link to comment Share on other sites More sharing options...
Hellblazer Posted March 12, 2009 at 10:47 AM Report Share #250151 Posted March 12, 2009 at 10:47 AM LOL obrigado 👍 podias e por no nome do topico resolvio que eu ja fico contente 🙂 There are two ways to write error-free programs; only the third one works. Link to comment Share on other sites More sharing options...
zoep Posted March 12, 2009 at 11:11 AM Author Report Share #250167 Posted March 12, 2009 at 11:11 AM 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 More sharing options...
jpaulino Posted March 12, 2009 at 11:11 AM Report Share #250168 Posted March 12, 2009 at 11:11 AM LOL obrigado 🙂 podias e por no nome do topico resolvio que eu ja fico contente 🙂 Atenção à nova funcionalidade: http://www.portugal-a-programar.pt/forums/topic/0-find-topic/?do=findComment&comment=249850 Clicar em "Topic Solved" (enquanto não é traduzido) para marcar o tópico como resolvido 👍 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now