Skip to content

Instantly share code, notes, and snippets.

@sxslex
Last active March 27, 2019 14:59
Show Gist options
  • Save sxslex/f2f5ec533e2a8fcced7fc04d26e6b461 to your computer and use it in GitHub Desktop.
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
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&nbsp;Dr. Roberto '
'Gomes&nbsp;Viotto&nbsp;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 &#8220;Sorriso Viotto&#8221; (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