Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

spcl

[Resolvido] tags html pelo php

Mensagens Recomendadas

spcl

bom dia

estou com um projeto em maos e ao mesmo tempo com um grande problema.

o que eu tenho de fazer sao duas funcoes uma que depoix de inserir todo o codigo html de um site nela ela tera de retornar-me as tags que eu quero

ao inserir na funao que quero a tag <a> ela retornara todas as tags <a> em um array,

mas com tudo:

<a href='link'>texto</a>

ao inserir que quero <meta /> retorna

<meta name="keywords" content="tags de pesquisa"/>

a segunda funcao serve para retirar o conteudo das tags

ex:

coloco a tag toda como abaixo

<meta name="keywords" content="tags de pesquisa"/>			

e "content"

retorna "tags de pesquisa"

ex2:

coloco

<a href="url">texto</a>

e retorna "texto"

como posso fazer isto?

como posso fazer isso

Editado por spcl

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
brunoais

Preciso de mais exemplos ou de uma explicação melhor para ser capaz de te ajudar.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

podes fazer facilmente com expressões regulares :

ressions.info/'>http://www.regular-expressions.info/

(se bem me lembro, existe um exemplo na secção Tutorial/Possessive Quantifiers)

(já agora, tenta não usar linguagem de telemóvel : depoix, se foi sem querer (visto que o x é ao lado do s, sem problema)

Editado por yoda
  • Voto 1

IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
spcl

Preciso de mais exemplos ou de uma explicação melhor para ser capaz de te ajudar.

o objetivo e que apartir de um codigo html de qualquer plataforma eu consiga retirar todos os <a href="url">nome da pagina</a> por exemplo

e com ele consiga depoix retirar tanto o url como o nome da pagina

isto com todas as <a> que tem no codigo

poderei fazer isto com qualquer tag, a que tambem irei usar ira ser a <meta> e gostaria de retirar tudo dela tambem

podes fazer facilmente com expressões regulares :

ressions.info/'>www.regular-expressions.info/

(se bem me lembro, existe um exemplo na secção Tutorial/Possessive Quantifiers)

(já agora, tenta não usar linguagem de telemóvel : depoix, se foi sem querer (visto que o x é ao lado do s, sem problema)

em todas as minhas pesquisas dizia que era com expressoes regulares mas ja experimentei de varias maneiras e existe sempre algum problema... nao funciona, e para retirar todas as tags nao da, pelo menos eu nao consigo selecionar por exemplo todas as <a> para um array

mas irei ler a documentacao que me enviou e tentar mais uma vez

Editado por spcl

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

podes fazer facilmente com expressões regulares :

ressions.info/'>http://www.regular-expressions.info/

(se bem me lembro, existe um exemplo na secção Tutorial/Possessive Quantifiers)

(já agora, tenta não usar linguagem de telemóvel : depoix, se foi sem querer (visto que o x é ao lado do s, sem problema)

na realidade o exemplo encontrasse aqui : http://www.regular-expressions.info/repeat.html na secção "Watch Out for The Greediness!"

edit : solução

<?php
$content = file_get_contents('http://www.sapo.pt/');
preg_match_all("/<a.+?>.*<\/a>/i", $content, $matches);
print_r($matches);
?>


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
spcl

bgd vou tentar

tal como achava tem muitas falhas, como por ex: no www.google.com

retorna isto

Array ( [0] => Array ( [0] => Pesquisar

Account Options

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Virneto

Se o que pretendes é uma espécie de WebCrawler e se estiveres interessado em fazê-lo em Python, tens aqui um tutorial que eu segui há algum tempo atrás neste sítio: Udacity

Pessoalmente acho que está bem explicado e deu-me muito gozo de seguir todos os passos!!

Não é que os meus resultados tenham sido extraordinários. O meu produto final foi uma aplicação tipo Famel Zundapp!! :confused:

Mas aprendi muita coisa pelo caminho!! ..quer dizer, continuo a aprender...

Tenho planos para torná-la numa aplicação Famel Zundapp com Nitro!!! :cheesygrin:

“Anyway”, mesmo que pretendas fazê-lo em php, acho que se vires o tutorial ficas com umas ideias.


"Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Linuxando.com | ...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

tal como achava tem muitas falhas, como por ex: no www.google.com

retorna isto

estás a dizer que não faz o que pediste ?

o objetivo e que apartir de um codigo html de qualquer plataforma eu consiga retirar todos os <a href="url">nome da pagina</a> por exemplo

e com ele consiga depoix retirar tanto o url como o nome da pagina

isto com todas as <a> que tem no codigo

o código que te apresentei lista todos os tags <a> e o seu conteúdo. foi o que apresentaste como o pretendido e foi o que apresentei como solução.

se não é isso que tu queres, diz exactamente então o que deveria ser porque senão é impossível te ajudar


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Virneto

Em PHP é relativamente fácil, dependendo do método que se usa. A minha melhor tentativa em termos de performance e simplicidade de código foi usando a classe nativa do PHP DOMDocument em conjunto com DOMXPath.

>>> adicionado à lista de tarefas!! :)


"Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Linuxando.com | ...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
spcl

Queres retirar informação do google?

nao so do google mas de muitos sites, e o que queria era fazer um sistema para isso

Se o que pretendes é uma espécie de WebCrawler e se estiveres interessado em fazê-lo em Python, tens aqui um tutorial que eu segui há algum tempo atrás neste sítio: Udacity

Pessoalmente acho que está bem explicado e deu-me muito gozo de seguir todos os passos!!

Não é que os meus resultados tenham sido extraordinários. O meu produto final foi uma aplicação tipo Famel Zundapp!! :confused:

Mas aprendi muita coisa pelo caminho!! ..quer dizer, continuo a aprender...

Tenho planos para torná-la numa aplicação Famel Zundapp com Nitro!!! :cheesygrin:

“Anyway”, mesmo que pretendas fazê-lo em php, acho que se vires o tutorial ficas com umas ideias.

bgd

Em PHP é relativamente fácil, dependendo do método que se usa. A minha melhor tentativa em termos de performance e simplicidade de código foi usando a classe nativa do PHP DOMDocument em conjunto com DOMXPath.

vou dar uma olhada bgd

estás a dizer que não faz o que pediste ?

o código que te apresentei lista todos os tags <a> e o seu conteúdo. foi o que apresentaste como o pretendido e foi o que apresentei como solução.

se não é isso que tu queres, diz exactamente então o que deveria ser porque senão é impossível te ajudar

e +/- o que eu queria o unico problema e que esta a puxar outras tags mesmo estando a pedir uma <a>, e o unico problema, se nao fosse isso....

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pedrotuga

O yodab já levantou a ponta do véu. O que queres faz. Se usado queries xpath ao dom. O som tem um metodo que se chama getelementsbytagname() qué faz exatamente. O que qures.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
spcl

O yodab já levantou a ponta do véu. O que queres faz. Se usado queries xpath ao dom. O som tem um metodo que se chama getelementsbytagname() qué faz exatamente. O que qures.

mas n e isso que eu queria, eu queria mesmo em php

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
yoda

Para retirar o texto dos links, há-de ser algo deste género :

$doc = new DomDocument();
@$doc->loadHTMLFile('http://www.google.pt');
$xpath = new DOMXpath($doc);

if ($e = $xpath->query('//a'))
{
for ($i=0;$i<$e->length;$i++)
{
	$text = $e->item($i)->textContent; # textContent é o conteúdo dentro da tag <a>
}
}

Editado por yoda

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
spcl

Para retirar o texto dos links, há-de ser algo deste género :

$doc = new DomDocument();
@$doc->loadHTMLFile('http://www.google.pt');
$xpath = new DOMXpath($doc);

if ($e = $xpath->query('//a'))
{
for ($i=0;$i<$e->length;$i++)
{
	$text = $e->item($i)->textContent; # textContent é o conteúdo dentro da tag <a>
}
}

eu ja tinha dado uma olhada mas ja agora muito obrigado, vai-me dar muito jeito...

Editado por spcl

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
yoda

Acabei por fazer um teste com um formulário e o DOMXPath. Neste link podem testar uma query sem terem de escrever código.

Exemplo :

URL : http://en.wikipedia.org/wiki/Chicken

Expression : //img

Filter : get attribute

FIlter Value : src

É preciso que entendam a sintaxe das queries para tirarem partido disto (e do DOMXPath).

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
spcl

Acabei por fazer um teste com um formulário e o DOMXPath. Neste link podem testar uma query sem terem de escrever código.

Exemplo :

URL : http://en.wikipedia.org/wiki/Chicken

Expression : //img

Filter : get attribute

FIlter Value : src

É preciso que entendam a sintaxe das queries para tirarem partido disto (e do DOMXPath).

era exatamente o que eu queria.... sem mais nem menos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.