|
|
|
A missão: pegar parte do conteúdo de um site
Hoje, no trabalho, tive a missão de “puxar” alguns dados de um site para “enxertar” num trecho de um web site que estou ajudando a desenvolver. Quando a tarefa me foi passada, logo lembrei de uma ocasião em que um amigo fez a mesma coisa (e, na época, ele me explicou, mais ou menos, com o fez). Pensei que seria muito fácil realizar a tarefa, mas, na hora, “lembrei” que não sou tão bom quanto o Gevã… rsrs
A solução: funções nativas do PHP e expressões regulares
Passei para pesquisas na web, procurando desesperadamente material de referência sobre expressões regulares (que, como verão, é um dos pilares para se conseguir pegar parte do conteúdo de outro site). Procura daqui, procura de lá, até bate-papo com o Gevã rolou para eu tentar entender melhor as tais expressões regulares. Até que, utilizando um pouco de “gambiarra”, consegui realizar meu objetivo.
A primeira coisa a se fazer, é pegar o conteúdo da página inteira que se quer “manipular”. Para tal, usa-se, por exemplo, a função file_get_contents(). Jogando o conteúdo do site numa variável, ficaria assim (vou fazer o exemplo com o mesmo site que tive que mexer):
1
$url = file_get_contents('http://www.bcb.gov.br/');
Pronto, agora a variável $url contém, em string, todo o conteúdo da página inicial do BCB.
Expressões regulares
Até aqui foi fácil; o difícil foi pegar somente o trecho da página que eu queria… Para isso, é preciso usar expressões regulares!
Caso você não saiba o que são expressões regulares, aí vai uma sucinta (e incompleta…) explicação de o que são expressões regulares, da Wikipédia:
Uma expressão regular, na Informática, define um padrão a ser usado para procurar ou substituir palavras ou grupos de palavras. É um meio preciso de se fazer buscas de determinadas porções de texto.
Com as expressões regulares é possível identificar trechos de palavras ou grupos de palavras que correspondem (”match“) a um determinado padrão (”pattern“), que é “regular”.
O PHP tem várias funções nativas para trabalhar com expressões regulares. Basta saber para o que cada uma serve e usar da meneira correta.
Bem, o próximo passo para resolução do problema é identificar o padrão que se quer extrair do site. No caso, eu precisei de uma tabela com algumas taxas cambiais (encontra-se à direita, no site do BCB). Observando o código fonte, vi que as informações estão em uma tabela (abordagem semanticamente correta!); além disso, esta tabela está envolta entre os comentários HTML “” e “”. Isso é uma coisa boa, já que facilita bastante a “identificação do padrão”.
Explicando melhor: o padrão procurado, no caso, é tudo o que está entre os comentários HTML “” e “”. Toda a tabela está aí, para a minha felicidade! :-)
Então, tudo o que é preciso fazer é utilizar uma função PHP (para o caso, escolhi a preg_match_all()) para procurar uma expressão regular dentro da variável $url, que contém toda a primeira página do site em que está a tabela.
Depois de muito tempo testando vááárias expressões regulares, cheguei à conclusão que faria uma pequena mutreta. Mas, antes, deixe-me mostrar como está o código até agora.
1
2
$url = file_get_contents('http://www.bcb.gov.br/');
preg_match_all('/ORES-->(.+)(.+)(.+)','(.+)','
Discuss Adicionar link a... Bury
|
|
|
|
Digga é um sistema de notícias e artigos colaborativo, onde os conteúdos são enviados pelo próprio usuário. Essas notícias e artigos enviados podem ser votados por outros usuários da comunidade Digga e ao alcançar uma determinada pontuação, esta notícia/artigo ficará na página principal de nosso sistema, oferecendo mais tráfego aos blogs e sites que enviaram a mesma.
Categorias
thanks, Você acha que alguém tem o direito de tirar a própria vida? Deixe sua...muito bom...UAU, maravilha... JEan Wyllys é tudo de bom......que legal adorei!!!!!!!!!!!!!!!!!!111...Otima empresa comprei com as meninas fui bem atendindo e recomendo.larissa...Depois do sucesso que foi o artigo que explicava como ter o ambiente de...OpenSonic é um jogo Open-Source baseado na famosa personagem “Sonic the...






Comments