Acessar elementos de uma página HTML
Olá, gente...
eu tenho aqui uma página web que eu estou sempre precisando acessar e tirar dela as mesmas informações. Por exemplo, a página tem um título e um substítulo, como no código a seguir.
Só que isso é um site na web, eu acesso pelo endereço normalmente.
Aí eu gostaria de automatizar minha tarefa, fazendo uma aplicação (de preferência Windows Forms, mas pode ser ASP.net) em que eu informasse o endereço e já obtivesse o valor dessas tags.
Existe alguma classe ou função em C# pra eu ler uma URL e obter os valores dos elementos da página?
Obrigada desde já.
eu tenho aqui uma página web que eu estou sempre precisando acessar e tirar dela as mesmas informações. Por exemplo, a página tem um título e um substítulo, como no código a seguir.
... <h1 id="hTitulo">título aqui</h1> <h2 id="hSubTitulo">subtítulo aqui</h2> ...
Só que isso é um site na web, eu acesso pelo endereço normalmente.
Aí eu gostaria de automatizar minha tarefa, fazendo uma aplicação (de preferência Windows Forms, mas pode ser ASP.net) em que eu informasse o endereço e já obtivesse o valor dessas tags.
Existe alguma classe ou função em C# pra eu ler uma URL e obter os valores dos elementos da página?
Obrigada desde já.
Rachel Andrade
Curtidas 0
Respostas
Caio Uechi
15/02/2013
nossa..
interessante o que você está querendo fazer...
mas tenho uma pequena ideia de como 'começar'...
a gente sabe que as requisições são por HTTP, e com certeza você faria uma requisição com determinada URL, e logo em seguida receberia um response HTTP com um POST com os dados do site (imagino).
puxe o FIDDLER, e veja os dados recebidos, ve se vc consegue achar algum dado com o title e head.
(posso ter viajado na resposta, + eu começaria assim, tentaria enxergar o site pela mesma visão do FIDDLER)
interessante o que você está querendo fazer...
mas tenho uma pequena ideia de como 'começar'...
a gente sabe que as requisições são por HTTP, e com certeza você faria uma requisição com determinada URL, e logo em seguida receberia um response HTTP com um POST com os dados do site (imagino).
puxe o FIDDLER, e veja os dados recebidos, ve se vc consegue achar algum dado com o title e head.
(posso ter viajado na resposta, + eu começaria assim, tentaria enxergar o site pela mesma visão do FIDDLER)
GOSTEI 0
Robson Alves
15/02/2013
Você também pode utilizar a classe WebClient.
http://msdn.microsoft.com/en-us/library/system.net.webclient.aspx
Ele baixa toda a informações a partir de um link. Possibilita também efetuar um post em uma página (se fuçar bem).
http://msdn.microsoft.com/en-us/library/system.net.webclient.aspx
Ele baixa toda a informações a partir de um link. Possibilita também efetuar um post em uma página (se fuçar bem).
GOSTEI 0
Rachel Andrade
15/02/2013
Oi, Caio. Primeiramente obrigada pela resposta.
Ocorre que eu sou iniciante ainda, principalmente com web, então acho que até entendi os passos que você falou, mas não faço ideia de como implementar isso em C# =(
Você teria algum código ou saberia que classes eu devo e posso usar para isso?
Obrigada.
Ocorre que eu sou iniciante ainda, principalmente com web, então acho que até entendi os passos que você falou, mas não faço ideia de como implementar isso em C# =(
Você teria algum código ou saberia que classes eu devo e posso usar para isso?
Obrigada.
GOSTEI 0
Rachel Andrade
15/02/2013
Robson, obrigada pela dica.
Vou dar uma olhada nesse link e pesquisar sobre essa classe.
Assim que tiver algum resultado, volto aqui para compartilhar com vocês.
Grata.
Vou dar uma olhada nesse link e pesquisar sobre essa classe.
Assim que tiver algum resultado, volto aqui para compartilhar com vocês.
Grata.
GOSTEI 0
Joel Rodrigues
15/02/2013
Oi, Rachel, conseguiu resolver a questão?
GOSTEI 0
Edson Oliveira
15/02/2013
Esse é um jeito simples, é so colocar um componente browser no form e pesquisar.
webBrowser1.Url = new Uri("https://www.devmedia.com.br/forum/acessar-elementos-de-uma-pagina-html/434718"); HtmlElement oHtmlElement = webBrowser1.Document.ActiveElement.All.OfType<HtmlElement>().Where(c => c.Id != null && c.Id.IndexOf("maintable") > -1).FirstOrDefault(); Console.Write(webBrowser1.Document.Title); Console.Write(oHtmlElement);
GOSTEI 0
Rachel Andrade
15/02/2013
Pessoal, desculpem a demora. Encontrei um método para obter o conteúdo da página em forma de texto. Assim que chegar em casa, passo pra vocês.
Grata.
Grata.
GOSTEI 0
Rachel Andrade
15/02/2013
Gente, perdão pela demora. Resolvi isso fazendo a mesma coisa que esse autor fez nesse artigo: [url]https://www.devmedia.com.br/consultando-endereco-por-cep-em-c/28061[/url].
Obtive o conteúdo da página e use uma expressão regular.
Obrigada a todos =)
Obtive o conteúdo da página e use uma expressão regular.
Obrigada a todos =)
GOSTEI 0
Joel Rodrigues
15/02/2013
Tudo bem, Rachel. O importante é que você teve a consideração de voltar e compartilhar com todos a solução.
Obrigado pelo retorno.
Estou marcando o tópico como Concluído.
Obrigado pelo retorno.
Estou marcando o tópico como Concluído.
GOSTEI 0