Advertisement
MizunoBrasil

Exporta para HTML lista do IMDB

Jun 11th, 2023
892
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.97 KB | None | 0 0
  1. import os
  2. import requests
  3. from bs4 import BeautifulSoup
  4. import datetime
  5.  
  6. def obter_detalhes_filme(url):
  7.     response = requests.get(url)
  8.     soup = BeautifulSoup(response.text, 'html.parser')
  9.     filmes = []
  10.  
  11.     for item in soup.find_all('div', class_='lister-item-content'):
  12.         titulo = item.h3.a.text.strip()
  13.         descricao = item.find('p', class_='').text.strip()
  14.         filmes.append({'Título': titulo, 'Descrição': descricao})
  15.  
  16.     return filmes
  17.  
  18. url_imdb = 'COLOCAR A URL DA LISTA DO IMDB'
  19. filmes = obter_detalhes_filme(url_imdb)
  20.  
  21. # Obtenha o diretório atual do arquivo do aplicativo
  22. diretorio_atual = os.path.dirname(os.path.abspath(__file__))
  23.  
  24. # Crie o caminho completo para o arquivo "filmes.html"
  25. caminho_arquivo_html = os.path.join(diretorio_atual, 'filmes.html')
  26.  
  27. # Número de filmes por página
  28. filmes_por_pagina = 10
  29.  
  30. # Dividir os filmes em páginas
  31. paginas = [filmes[i:i+filmes_por_pagina] for i in range(0, len(filmes), filmes_por_pagina)]
  32.  
  33. # Obter a data e hora atual
  34. data_hora_atual = datetime.datetime.now().strftime("%d/%m/%Y às %H:%M:%S")
  35.  
  36. # Criar arquivo HTML com estilização CSS e paginação
  37. with open(caminho_arquivo_html, 'w', encoding='utf-8') as arquivo_html:
  38.     arquivo_html.write('<html>\n')
  39.     arquivo_html.write('<head>\n')
  40.     arquivo_html.write('<title>Filmes</title>\n')
  41.     arquivo_html.write('<style>\n')
  42.     arquivo_html.write('body {\n')
  43.     arquivo_html.write('    font-family: Arial, sans-serif;\n')
  44.     arquivo_html.write('    margin: 20px;\n')
  45.     arquivo_html.write('}\n')
  46.     arquivo_html.write('h2 {\n')
  47.     arquivo_html.write('    color: #333;\n')
  48.     arquivo_html.write('    font-size: 24px;\n')
  49.     arquivo_html.write('    margin-bottom: 10px;\n')
  50.     arquivo_html.write('}\n')
  51.     arquivo_html.write('p {\n')
  52.     arquivo_html.write('    color: #666;\n')
  53.     arquivo_html.write('    font-size: 14px;\n')
  54.     arquivo_html.write('}\n')
  55.     arquivo_html.write('hr {\n')
  56.     arquivo_html.write('    border: none;\n')
  57.     arquivo_html.write('    border-top: 1px solid #ccc;\n')
  58.     arquivo_html.write('    margin: 20px 0;\n')
  59.     arquivo_html.write('}\n')
  60.     arquivo_html.write('.pagina {\n')
  61.     arquivo_html.write('    display: none;\n')
  62.     arquivo_html.write('}\n')
  63.     arquivo_html.write('.pagina.ativa {\n')
  64.     arquivo_html.write('    display: block;\n')
  65.     arquivo_html.write('}\n')
  66.     arquivo_html.write('</style>\n')
  67.     arquivo_html.write('<script>\n')
  68.     arquivo_html.write('function mostrarPagina(pagina) {\n')
  69.     arquivo_html.write('    var paginas = document.getElementsByClassName("pagina");\n')
  70.     arquivo_html.write('    for (var i = 0; i < paginas.length; i++) {\n')
  71.     arquivo_html.write('        paginas[i].style.display = "none";\n')
  72.     arquivo_html.write('    }\n')
  73.     arquivo_html.write('    document.getElementById("pagina-" + pagina).style.display = "block";\n')
  74.     arquivo_html.write('}\n')
  75.     arquivo_html.write('</script>\n')
  76.     arquivo_html.write('</head>\n')
  77.     arquivo_html.write('<body>\n')
  78.  
  79.     # Adicionar a mensagem de exportação
  80.     arquivo_html.write(f'<p>Exportado em {data_hora_atual}</p>\n')
  81.  
  82.     # Adicionar links de paginação
  83.     for i, pagina in enumerate(paginas):
  84.         arquivo_html.write(f'<a href="javascript:void(0);" onclick="mostrarPagina({i+1});">Página {i+1}</a>\n')
  85.  
  86.     # Adicionar conteúdo de cada página
  87.     for i, pagina in enumerate(paginas):
  88.         arquivo_html.write(f'<div class="pagina" id="pagina-{i+1}">\n')
  89.         for filme in pagina:
  90.             arquivo_html.write('<h2>{}</h2>\n'.format(filme['Título']))
  91.             arquivo_html.write('<p>{}</p>\n'.format(filme['Descrição']))
  92.             arquivo_html.write('<hr>\n')
  93.         arquivo_html.write('</div>\n')
  94.  
  95.     arquivo_html.write('<script>\n')
  96.     arquivo_html.write('mostrarPagina(1);\n')
  97.     arquivo_html.write('</script>\n')
  98.     arquivo_html.write('</body>\n')
  99.     arquivo_html.write('</html>\n')
  100.  
  101. print("Arquivo 'filmes.html' gerado com sucesso!")
  102.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement