Como extrair texto entre Tags [RESOLVIDO]

1. Como extrair texto entre Tags [RESOLVIDO]

Daniel P. L. Almeida
daniel.uramg

(usa Outra)

Enviado em 19/06/2013 - 19:34h

Olá pessoal,

estou tentando fazer um script pra fazer o backup dos meus anúncios do MercadoLivre
o primeiro passo seria copiar as imagens, a URL das imagens fica na Tag "data-enlarge", como: data-enlarge="http://taltal/imagem.jpg"

O problema é que o código fonte do ML não quebra as linhas, então com grep e cut não consegui resultado nenhum, pensei com Sed em fazer mas não consegui como.
o Sed ficaria dentro de um loop do While procurando cada "data-enlarge" e extrai esta URL, que baixa com wget, mas não sei como fazer com Sed

e outra questão que sobrou pro Sed, meus anúncios estou padronizando todos com comentários HTML pra identificar o início e o fim do código, justamente pra facilitar este bkp, então o Sed iria extrair o que estivesse entre <!-- inicio do codigo --> e <!-- fim do codigo -->

preciso destas duas ajudas com SED, o restante acho que vai ser fácil, alguém pode me ajudar?

Grato!


  


2. MELHOR RESPOSTA

Fernando
phoemur

(usa Debian)

Enviado em 19/06/2013 - 22:23h

Cara, meio difícil o que você quer hein, mas pra baixar os arquivos eu fiz assim, achei que ficou meio gambiarra mas funcionou:

primeiro eu baixei o html do anuncio, salvando em "arquivo.html", por exemplo:


e depois varrendo o arquivo pra salvar as imagens eu fiz assim, mas deve ter um milhão de jeitos:

# cat arquivo.html | sed -n '/data-enlarge/{s/data.enlarge/\n data-enlarge/g;p}' | awk -F'"' '/data-enlarge=/ {print $2}' | while read LINE; do wget -c "$LINE"; done


Basicamente eu usei o sed pra dar um enter antes de cada data-enlarge, depois usei o awk pra pegar a URL porque o comando ficou mais fácil do que com sed, e depois um loop com while pra baixar cada arquivo...



E agora tudo junto no famoso comandAÇO kkkk:

# wget http://produto.mercadolivre.com.br/MLB-484188713-debian-7-completo-3-dvds-frete-gratis-_JM -O arquivo.html && cat arquivo.html | sed -n '/data-enlarge/{s/data.enlarge/\n data-enlarge/g;p}' | awk -F'"' '/data-enlarge=/ {print $2}' | while read LINE; do wget -c "$LINE"; done


Testa ae se funcionou, aqui no meu funcionou beleza...
Abraços


3. Re: Como extrair texto entre Tags [RESOLVIDO]

Daniel P. L. Almeida
daniel.uramg

(usa Outra)

Enviado em 20/06/2013 - 15:19h

Grande Phoemur, mais uma vez me salvando com minhas gambiarras! :)

Funcionou perfeitamente pra baixar as imagens, só falta agora conseguir extrair só o que estiver entre os comentários <!-- inicio --> e <!-- fim -->, que é onde está o anuncio em si
tem alguma ideia pra essa parte?

Obrigado, abraço.


4. Re: Como extrair texto entre Tags [RESOLVIDO]

Daniel P. L. Almeida
daniel.uramg

(usa Outra)

Enviado em 20/06/2013 - 17:18h

Consegui uma expressão com Sed que teoricamente era pra funcionar:
sed -n '/<!-- inicio do codigo -->/,/<!-- fim do codigo -->/p' teste.html
mas não funciona..
achei num grupo sobre Sed do Yahoo, com o caso deles funcionou blz, que era bem parecido com o meu caso, tentei substituir os apóstrofos por aspas e mesmo assim nada, ele sempre retorna todo o conteudo do arquivo


5. Re: Como extrair texto entre Tags [RESOLVIDO]

Fernando
phoemur

(usa Debian)

Enviado em 20/06/2013 - 17:36h

As Tags HTML ficam todas na mesma linha como a página do início ou normalmente uma linha de cada vez?
A sua expressão com sed só funcionaria se fossa uma linha de cada vez


6. Re: Como extrair texto entre Tags [RESOLVIDO]

Fernando
phoemur

(usa Debian)

Enviado em 20/06/2013 - 17:49h

Se for na mesma linha testa assim:


sed -n 's/^.*<!-- inicio do codigo -->\(.*\)<!-- fim do codigo -->.*$/\1/p' arquivo.html



7. Re: Como extrair texto entre Tags [RESOLVIDO]

Daniel P. L. Almeida
daniel.uramg

(usa Outra)

Enviado em 20/06/2013 - 17:54h

phoemur escreveu:

As Tags HTML ficam todas na mesma linha como a página do início ou normalmente uma linha de cada vez?
A sua expressão com sed só funcionaria se fossa uma linha de cada vez


pior que não, o ML bagunça todo o código


8. Re: Como extrair texto entre Tags [RESOLVIDO]

Daniel P. L. Almeida
daniel.uramg

(usa Outra)

Enviado em 20/06/2013 - 18:27h

Abortar operação

batendo cabeça aqui feito louco, observei que o ML caga em diversas partes do código com codificação base64 na URL das imagens no corpo do anuncio, sendo assim a trabalheira vai ser tão grande que será melhor usar algum outro sistema pra fazer o backup dos anúncios......

Vou deixar o tópico em aberto uns dias caso alguém queira fazer alguma observação.

Abçs.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts