electric Posted September 7, 2013 at 09:25 PM Report #523803 Posted September 7, 2013 at 09:25 PM boas pessoal, é o seguinte, tenho uma pagina que tem digamos que 100 nomes ora estou a usar o innerhtml para o extrair para uma richtext ate ai tudo bem, Agora, sei que no meio do html todo o que esta em comun é _tab%22%7D">NOME</a></div><a class="uiLinkSubtle" a minha duvida é como é que eu limpo tudo deixando apenas nome1 nome2 nome3 e pro ai fora 🙂 Abraço
nelsonr Posted September 7, 2013 at 10:01 PM Report #523805 Posted September 7, 2013 at 10:01 PM (edited) Boas, e essa estrutura é sempre igual? Podias usar algo assim: Dim ConteudoHTML = "_tab%22%7D"">NOME1</a></div><a class=""uiLinkSubtle""" + "_tab%22%7D"">NOME2</a></div><a class=""uiLinkSubtle""" Dim matches As MatchCollection = Regex.Matches(ConteudoHTML, """>(?<nome>[\w|\d\s]*)</a></div><a class=""uiLinkSubtle") For Each match As Match In matches TextBox1.Text += match.Groups("nome").Value + ";" Next Edited September 7, 2013 at 10:01 PM by nelsonr
electric Posted September 8, 2013 at 05:09 PM Author Report #523838 Posted September 8, 2013 at 05:09 PM (edited) Boas amigo, desde ja obrigado pela ajuda, eu coloquei numa listbox Dim ConteudoHTML = "_tab%22%7D"">NOME1</a></div><a class=""uiLinkSubtle""" + "_tab%22%7D"">NOME2</a></div><a class=""uiLinkSubtle""" Dim matches As MatchCollection = Regex.Matches(ConteudoHTML, """>(?<nome>[\w|\d\s]*)</a></div><a class=""uiLinkSubtle") For Each match As Match In matches ListBox1.Items.Add(match.Groups("nome").Value) Next mas ao lista mostra NOME1 NOME2 e nao os nomes que la estão no site :\ Edited September 8, 2013 at 05:09 PM by electric
electric Posted September 8, 2013 at 05:19 PM Author Report #523840 Posted September 8, 2013 at 05:19 PM Contornei este problema, primeiro executo esta linha RichTextBox1.Text = Wb.document.GetElementById("pagelet_timeline_medley_friends").InnerHtml e depois uso o teu codigo com esta alteração Dim ConteudoHTML = RichTextBox1.Text Dim matches As MatchCollection = Regex.Matches(ConteudoHTML, """>(?<nome>[\w|\d\s]*)</a></div><a class=""uiLinkSubtle") For Each match As Match In matches ListBox1.Items.Add(match.Groups("nome").Value) Next Agora reparei é que o meu browser nao faz o load de tudo... para carrgar toda a pagina tenho de puxar a pagina constantemente para baixo... alguma maneira de conseguir fazer o load completo ? Abraços
nelsonr Posted September 8, 2013 at 06:04 PM Report #523841 Posted September 8, 2013 at 06:04 PM (edited) O codigo que dei era so um exemplo, claro que tinhas de substituir a variavel ConteudoHTML com o html lido. O problema é que estás a ler logo o conteúdo, sem esperar que a página esteja toda lida. Podes colocar o teu código no evento "DocumentCompleted" que é chamado apenas quando a pagina está toda lida: http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.documentcompleted.aspx Ou então, em vez de usares o componente webbrowser, podes usar assim: ' Dim resp As System.Net.WebResponse = System.Net.WebRequest.Create("http://website").GetResponse ' Dim ConteudoHTML As String Using sr As System.IO.StreamReader = New System.IO.StreamReader(resp.GetResponseStream) ConteudoHTML = sr.ReadToEnd End Using ' Dim matches As MatchCollection = Regex.Matches(ConteudoHTML, """>(?<nome>[\w|\d\s]*)</a></div><a class=""uiLinkSubtle") For Each match As Match In matches ListBox1.Items.Add(match.Groups("nome").Value) Next Edited September 8, 2013 at 06:05 PM by nelsonr
electric Posted September 9, 2013 at 11:21 AM Author Report #523902 Posted September 9, 2013 at 11:21 AM mas aqui neste caso a pagina mostra um determinado numero de dados, so quando fazes scrooldown é que te mostra mais um X de dados... até nao teres mais
nelsonr Posted September 9, 2013 at 11:26 AM Report #523904 Posted September 9, 2013 at 11:26 AM (edited) Então a situação é outra, isso provavelmente está a capturar um evento de scroll para chamar uma função que preenche a pagina com mais informação. Terás de descobrir qual o evento e usar o InvokeScript como está no nesta página: http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.objectforscripting.aspx Edited September 9, 2013 at 11:27 AM by nelsonr
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