Last active
March 27, 2019 14:59
-
-
Save sxslex/f2f5ec533e2a8fcced7fc04d26e6b461 to your computer and use it in GitHub Desktop.
separa do html os dados da imagem e deixa um marcador no local
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import pprint | |
html = ( | |
'<p>O <strong><a href="https://www.instagram.com/drviotto/">Dr. Viotto</a>' | |
'</strong> já se tornou referência na ' | |
'<img src=http://slex.com.br/f1.jpg>' | |
'odontologia em nível nacional e um ' | |
'dos mais <img src=\'http://slex.com.br/f2.jpg\' /> slex renomados ' | |
'dentistas do Brasil. Conhecido não apenas dos ' | |
'profissionais da área médica mas também do público em geral por ser o ' | |
'dentista dos famosos, responsável pelo sorriso de celebridades da música, ' | |
'moda, <img src=http://mfpressglobal.com/wp-content/uploads/2019/03/' | |
'tratamento_viotto-818x1024.png />TV e tantas outras áreas, tornou-se ' | |
'símbolo de status dizer que fez algum tratamento dentário com ele. ' | |
'Conheça mais sobre Dr. Viotto, que já se tornou também uma celebridade.' | |
'</p> <figure class="wp-block-image"><img src="http://mfpressglobal.com' | |
'/wp-content/uploads/2019/03/tratamento_viotto-818x1024.png" alt="" ' | |
'class="wp-image-1144" srcset="https://mfpressglobal.com/wp-content/' | |
'uploads/2019/03/tratamento_viotto-818x1024.png 818w, ' | |
'https://mfpressglobal.com/wp-content/uploads/2019/03/tratamento_viotto-' | |
'240x300.png 240w, https://mfpressglobal.com/wp-content/uploads/2019/03/' | |
'tratamento_viotto-768x961.png 768w, https://mfpressglobal.com/wp-content' | |
'/uploads/2019/03/tratamento_viotto.png 954w" sizes="(max-width: 818px) ' | |
'100vw, 818px" /><figcaption>Dr. Viotto realiza tratamento da cantora ' | |
'Gretchen (Foto: Reprodução)</figcaption></figure> <p>O Dr. Roberto ' | |
'Gomes Viotto iniciou suas atividades em 2008 em um pequeno ' | |
'consultório na zona norte de São Paulo e em um curto período alcançou ' | |
'uma grande clientela devido à alta qualidade de seu trabalho em lentes ' | |
'de contato dentais e facetas de porcelana, e hoje atende em um prédio ' | |
'localizado na zona sul da capital paulista. Hoje com a agenda mais do ' | |
'que lotada que demanda que consultas futuras sejam marcadas com meses de ' | |
'antecedência, o Dr. Viotto dispõe de uma equipe de outros dentistas e c' | |
'apacidade de 5 atendimentos simultâneos, que levam o ‘padrão Viotto de ' | |
'qualidade’ a todos os clientes. </p> <figure class="wp-block-image">' | |
'<img src="http://mfpressglobal.com/wp-content/uploads/2019/03/viotto-' | |
'819x1024.png" alt="" class="wp-image-1145" srcset="https://' | |
'mfpressglobal.com/wp-content/uploads/2019/03/viotto-819x1024.png 819w, ' | |
'https://mfpressglobal.com/wp-content/uploads/2019/03/viotto-240x300.png ' | |
'240w, https://mfpressglobal.com/wp-content/uploads/2019/03/viotto-' | |
'768x960.png 768w, https://mfpressglobal.com/wp-content/uploads/2019/03/' | |
'viotto.png 958w" sizes="(max-width: 819px) 100vw, 819px" /><figcaption>' | |
'Dr. Viotto grava entrevista para a TV em seu ' | |
'consultório (Foto: Reprodução)</figcaption></figure> <p>Exclusividade, ' | |
'estilo e status são alguns dos motivos que justificam a alta procura que ' | |
'o levou a ampliar seu consultório e a agregar outros profissionais ' | |
'treinados em seus métodos. Tudo é bastante diferenciado. Como manifestaçã' | |
'o de seu apreço pela estética e sua apresentação diferenciada, até mesmo' | |
's os jalecos usados pelo doutor são exclusivos, feitos sob medida por um' | |
'a alfaiataria dentro de uma concepção para além do trivial. Viotto é conh' | |
'ecido por ser também o primeiro a usar ‘jaleco preto’ e por introduzir a ' | |
'moda no consultório, com roupas profissionais estilosas e com corte difere' | |
'nciado. A combinação de todos esses elementos o tornam diferenciado e só ' | |
'faz crescer a procura e o frisson por trás do chamado ‘sorriso Viotto’, ' | |
'estampado por celebridades nas redes sociais e na imprensa.</p> <figure ' | |
'class="wp-block-image"><img src="http://mfpressglobal.com/wp-content/' | |
'uploads/2019/03/Captura-de-Tela-2019-03-19-às-14.16.36-1024x899.png" ' | |
'alt="" class="wp-image-1146" ' | |
'srcset="https://mfpressglobal.com/wp-content/uploads/2019/03/Captura-de-' | |
'Tela-2019-03-19-às-14.16.36-1024x899.png 1024w, https://mfpressglobal.com' | |
'/wp-content/uploads/2019/03/Captura-de-Tela-2019-03-19-às-14.16.36-' | |
'300x263.png 300w, https://mfpressglobal.com/wp-content/uploads/2019/03/' | |
'Captura-de-Tela-2019-03-19-às-14.16.36-768x674.png 768w, https://mfpres' | |
'sglobal.com/wp-content/uploads/2019/03/Captura-de-Tela-2019-03-19-às-14' | |
'.16.36.png 1182w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcapti' | |
'on>Modelo Aline Mineiro estampa “Sorriso Viotto” (Foto: Rep' | |
'rodução)</figcaption></figure> <p>O fato é que o Dr. Viotto se tornou um' | |
'a celebridade e até mesmo pessoas comuns que nada tem a ver com a medici' | |
'na ou com o mundo dos famosos já ouviram falar sobre o dentista ou tem o' | |
' desejo de realizar procedimentos em seu badalado consultório. Por este ' | |
'motivo, ele é chamado para participar de programas de TV, entrevistas e ' | |
'eventos diversos e se tornou amigo de celebridades nacionais e internaci' | |
'onais, além de acumular quase 250 mil seguidores nas redes sociais.</p>' | |
) | |
def _parser_imagem(ihtml): | |
if ' src=' not in ihtml: | |
return {} | |
legenda = '' | |
if '<figcaption' in ihtml: | |
ilegenda = ihtml.split('<figcaption')[1] | |
legenda = ilegenda.split('>')[1].split('<')[0] | |
ihtml = ihtml[ihtml.find(' src=') + 5:].strip() | |
p = ihtml[0] if ihtml[0] in ('"', "'") else ' ' | |
ihtml = ihtml.strip(p) | |
url = ihtml[:ihtml.find(p)].split('/>')[0].split('>')[0] | |
return dict( | |
url=url, | |
legenda=legenda | |
) | |
def separa_imagens_html(shtml): | |
parts = [] | |
imagens = [] | |
while True: | |
p_figure = shtml.find('<figure ') | |
p_img = shtml.find('<img ') | |
if p_figure > -1 and (p_img == -1 or p_img > p_figure): | |
parts.append(shtml[:p_figure]) | |
_par_img = _parser_imagem( | |
shtml[p_figure:shtml.find('</figure>', p_figure) + 9] | |
) | |
if _par_img.get('url'): | |
imagens.append(_par_img) | |
parts.append('[FOTO' + str(len(imagens)) + ']') | |
shtml = shtml[p_figure:] | |
shtml = shtml[shtml.find('</figure>') + 9:] | |
elif p_img > -1 and (p_figure == -1 or p_figure > p_img): | |
parts.append(shtml[:p_img]) | |
_par_img = _parser_imagem( | |
shtml[p_img:shtml.find('>', p_img) + 1] | |
) | |
if _par_img.get('url'): | |
imagens.append(_par_img) | |
parts.append('[FOTO' + str(len(imagens)) + ']') | |
shtml = shtml[p_img:] | |
shtml = shtml[shtml.find('>') + 1:] | |
else: | |
parts.append(shtml) | |
break | |
return ''.join(parts), imagens | |
new_html, imagems = separa_imagens_html(html) | |
pprint.pprint(new_html) | |
pprint.pprint(imagems) | |
# fotos = [i.get('url') for i in imagems] | |
# legendas = [i.get('legenda') for i in imagems] | |
# pprint.pprint([fotos, legendas, ]) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment