expl0iter Postado Janeiro 17, 2017 Denunciar Share Postado Janeiro 17, 2017 (editado) Ola,ao ver o código fonte de uma pagina,eu encontrei a seguinte coisa: "email":"email@provedor.domain" Tem como eu fazer um botão para que o que esta entre as duas ultimas aspas (no caso o email) apareca em um textbox? Obrigado desde já =) Obs:no caso com um webbrowser no projeto. Obs²:è visual basic Até agora eu tenho um código que baixa o código fonte e coloca ele em uma texbox. Edit 4:o valor que eu quero esta entre <script type="text/javascript"> DADOS </script> Editado Janeiro 17, 2017 por expl0iter Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Janeiro 19, 2017 Denunciar Share Postado Janeiro 19, 2017 Sim, use os métodos IndexOf para achar a posição de uma string em outra e depois Substring para pegar apenas uma parte. Abraços! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 expl0iter Postado Janeiro 22, 2017 Autor Denunciar Share Postado Janeiro 22, 2017 Em 19/01/2017 at 13:27, Graymalkin disse: Sim, use os métodos IndexOf para achar a posição de uma string em outra e depois Substring para pegar apenas uma parte. Abraços! Poderia me dar um exemplo? Abraços! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 expl0iter Postado Janeiro 22, 2017 Autor Denunciar Share Postado Janeiro 22, 2017 54 minutos atrás, expl0iter disse: Poderia me dar um exemplo? Abraços! Não to conseguindo editar o post acima então vai nesse mesmo. Eu consegui usar o método IndexOf e Substring pra pegar a parte do email,porém não vem só a parte que eu quero,vem o resto da page toda. O código que estou usando é: Dim s As String = RichTextBox1.Text //(RichTextBox contém o código fonte) Dim x As Integer = s.IndexOf("ips.setSetting( 'date_format'") //(Parte do código que eu quero,no caso o email) Dim parte As String = s.Substring(x) //Defino uma substring TextBox1.Text = parte //Jogo o valor encontrado pra uma txtbox If TextBox1.Text.Contains("date_format") Then //Se o valor conter date_format MsgBox(parte) //MsgBox com o conteúdo encontrado Else MsgBox("Não contém") O problema é que:quando acha,na MsgBox não aparece somente o que eu quero,aparece todo o resto do código fonte junto eu queria saber se tem um modo de limitar o IndexOf fazendo com que ele procure de X parte até Y por exemplo: de "ips.setSetting( 'date_format" até o proximo " ; " Digamos que o código fonte tenha ips.setSetting( 'date_format', jQuery.parseJSON('"dd-mm-yy"') ); Eu queria fazer que o IndexOf se limitasse de "ips.setSetting( 'date_format" até "y"') );" Acho que deu pra explicar né? rs Abraços! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Janeiro 23, 2017 Denunciar Share Postado Janeiro 23, 2017 Sim, agora está mais claro. Então, na verdade o que você tem que limitar é a parte a ser extraída, ou seja, a substring. Se você não informar quantos caracteres você quer, este método pega dali em diante. E o IndexOf também pode ter um ponto de início. Veja: Dim posini, posfim As Integer Dim parte As String = "" Dim s As String = RichTextBox1.Text posini = s.IndexOf("ips.setSetting( 'date_format'") If posini >= 0 Then posfim = s.IndexOf(";", posini) If posfim > posini Then parte = s.Substring(posini, posfim - posini + 1) End If End If If parte.Contains("date_format") Then MessageBox.Show(parte) Else MessageBox.Show("Não contém") End If Abraços! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 expl0iter Postado Janeiro 23, 2017 Autor Denunciar Share Postado Janeiro 23, 2017 41 minutos atrás, Graymalkin disse: Sim, agora está mais claro. Então, na verdade o que você tem que limitar é a parte a ser extraída, ou seja, a substring. Se você não informar quantos caracteres você quer, este método pega dali em diante. E o IndexOf também pode ter um ponto de início. Veja: Dim posini, posfim As Integer Dim parte As String = "" Dim s As String = RichTextBox1.Text posini = s.IndexOf("ips.setSetting( 'date_format'") If posini >= 0 Then posfim = s.IndexOf(";", posini) If posfim > posini Then parte = s.Substring(posini, posfim - posini + 1) End If End If If parte.Contains("date_format") Then MessageBox.Show(parte) Else MessageBox.Show("Não contém") End If Abraços! Nossa,muito obrigado! Agora me apareceu outra dúvida rs,se não estiver te incomodando responde por favor: Nesse caso aí eu só baixo o código fonte,beleza. o problema é que o código fonte do email precisa efetuar um login antes se não os dados não aparecem no código fonte (meio óbvio),o que acontece é que eu coloquei um WebBrowser pra logar,e assim eu achei que o código fonte baixado ia ser o mesmo do WebBrowser mas infelizmente não é. Tem como eu baixar o código fonte do WebBrowser? obs:o InnerHtml só mostra as palavras que tem na pagina e não o código igual ao DownloadString Obrigado novamente :D Abraços! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Janeiro 23, 2017 Denunciar Share Postado Janeiro 23, 2017 A propriedade InnerText é que mostra apenas o texto (no caso, as palavras), e InnerHtml deveria ter o código-fonte da página. Esse é o caminho certo (o que você está fazendo mesmo, usando o WebBrowser), se é necessário fazer login antes. Utilizo esse recurso em 2 sistemas para fazer login e obter dados em diferentes fornecedores. Note apenas que pode levar um tempo até que InnerHtml seja preenchido, de acordo com o carregamento da página. E repare também que esta propriedade existe para cada elemento da página, então vai depender de onde está o que você deseja, como, por exemplo em wb.Document.Body.InnerHtml, onde "wb" é o WebBrowser e você está pegando o código da tag BODY. Se você tiver o ID ou a tag do elemento que precisa, você pode usar os métodos GetElementById e GetElementsByTagName para obtê-los também (e talvez nem precisará desse processamento de strings do exemplo acima). E o método DownloadString a que você se refere é da classe WebClient, certo? Neste caso, você não tem como fazer o login, e o que será baixado é o código da página sem qualquer tipo de processamento (o que não vai rolar, já que você precisa fazer o login antes). Abraços! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 expl0iter Postado Janeiro 23, 2017 Autor Denunciar Share Postado Janeiro 23, 2017 19 horas atrás, Graymalkin disse: A propriedade InnerText é que mostra apenas o texto (no caso, as palavras), e InnerHtml deveria ter o código-fonte da página. Esse é o caminho certo (o que você está fazendo mesmo, usando o WebBrowser), se é necessário fazer login antes. Utilizo esse recurso em 2 sistemas para fazer login e obter dados em diferentes fornecedores. Note apenas que pode levar um tempo até que InnerHtml seja preenchido, de acordo com o carregamento da página. E repare também que esta propriedade existe para cada elemento da página, então vai depender de onde está o que você deseja, como, por exemplo em wb.Document.Body.InnerHtml, onde "wb" é o WebBrowser e você está pegando o código da tag BODY. Se você tiver o ID ou a tag do elemento que precisa, você pode usar os métodos GetElementById e GetElementsByTagName para obtê-los também (e talvez nem precisará desse processamento de strings do exemplo acima). E o método DownloadString a que você se refere é da classe WebClient, certo? Neste caso, você não tem como fazer o login, e o que será baixado é o código da página sem qualquer tipo de processamento (o que não vai rolar, já que você precisa fazer o login antes). Abraços! Consegui utilizando "WebBrowser1.DocumentText" Obrigado por tudo,código 100% funcional! Abraços :) Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
expl0iter
Ola,ao ver o código fonte de uma pagina,eu encontrei a seguinte coisa:
Tem como eu fazer um botão para que o que esta entre as duas ultimas aspas (no caso o email) apareca em um textbox?
Obrigado desde já =)
Obs:no caso com um webbrowser no projeto.
Obs²:è visual basic
Até agora eu tenho um código que baixa o código fonte e coloca ele em uma texbox.
Edit 4:o valor que eu quero esta entre
<script type="text/javascript">
Editado por expl0iterDADOS
</script>
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.