Ir para conteúdo
Fórum Script Brasil
  • 0

Copiar uma coisa do código fonte da pagina


expl0iter

Pergunta

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 por expl0iter
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0
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!

Link para o comentário
Compartilhar em outros sites

  • 0

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!

Link para o comentário
Compartilhar em outros sites

  • 0
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!

Link para o comentário
Compartilhar em outros sites

  • 0

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!

Link para o comentário
Compartilhar em outros sites

  • 0
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 :)

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...