Acessar elementos de uma página HTML

15/02/2013

7

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.
...
<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á.
Responder

Posts

15/02/2013

Caio Uechi

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)

Responder

15/02/2013

Robson Alves

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).

Responder

17/02/2013

Rachel Andrade

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.
Responder

17/02/2013

Rachel Andrade

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.
Responder

28/02/2013

Joel Rodrigues

Oi, Rachel, conseguiu resolver a questão?
Responder

04/03/2013

Edson Oliveira

Esse é um jeito simples, é so colocar um componente browser no form e pesquisar.

webBrowser1.Url = new Uri("http://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);
Responder

04/03/2013

Rachel Andrade

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.
Responder

30/06/2013

Rachel Andrade

Gente, perdão pela demora. Resolvi isso fazendo a mesma coisa que esse autor fez nesse artigo: [url]http://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 =)
Responder

30/06/2013

Joel Rodrigues

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.
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira