Primeiro post do ano!!!
Vou comentar hoje sobre dois métodos do meu humilde projeto open-source, o JPO.Helper. Para quem quiser saber mais sobre o projeto, eu comentei em outro post.
Vamos fazer um projeto bem simples em que iremos retornar URL´s (links) contidos em um documento html de algum site qualquer.
Vamos criar um novo ConsoleApplication e renomeie para PegaURL e referencie o projeto JPO.Helper a nossa solução.
Iremos usar duas namespaces, a JPO.Net e a JPO.Strings. A JPO.Net possui o método RetornaHtml que retorna o conteúdo html de uma uri qualquer e a JPO.Strings o método BuscaExpressao que nos retornará uma coleção de resultados que estamos buscando.
De início:
using System;
using System.Text;
using JPO.Net;
using JPO.Strings;
namespace PegaURL
{
class Program
{
static void Main(string[] args)
{
}
}
}
A página em que estaremos buscando URL´s é a index do Programando em .NET.
Para pegarmos o conteúdo html de qualquer site, usaremos o método estático RetornaHtml da classe cHtml.
string MeuHtml = cHtml.RetornaHtml(new Uri("http://programandoem.net"));
Agora o objeto MeuHtml já está preenchido, cheio de URL´s a serem buscadas
Iremos retornar o conteúdo da nossa pesquisa para um objeto MeusResultados da classe System.Text.RegularExpressions.MatchCollection.
MatchCollection MeusResultados = cRegex.BuscaExpressao(MeuHtml, cRegex.PatternRegex.Url);
Pronto, agora é só exibir os resultados com um foreach da vida, olha tudo pronto:
using System;
using System.Text;
using System.Text.RegularExpressions;
using JPO.Net;
using JPO.Strings;
namespace PegaURL
{
class Program
{
static void Main(string[] args)
{
string MeuHtml = cHtml.RetornaHtml(new Uri("http://programandoem.net"));
MatchCollection MeusResultados = cRegex.BuscaExpressao(MeuHtml, cRegex.PatternRegex.Url);
foreach (Match MeuItem in MeusResultados)
{
Console.Write(MeuItem + "\n");
}
Console.Read();
}
}
}
Notem
BuscaExpressao(MeuHtml, cRegex.PatternRegex.Url);
PatternRegex é um enumerador com várias opções. Ele que será nosso atalho para os patterns de expressão regular mais importantes.
O Retorno será parecido com esse:
Rápido né? Isso com a ajuda da JPO.Helper.
Alguns patterns podem ser melhorados, muita coisa pode ser melhorada e quem quiser usar os códigos em algum projeto próprio sem usar a JPO.Helper pode usar, desde que ajude na evolução do framework.
Baixe o exemplo PegaUrl já com o JPO.Helper
Logo publicarei um pequeno projeto para mobile. Aguardem!!!
[]´s