Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- import requests
- from bs4 import BeautifulSoup
- import datetime
- def obter_detalhes_filme(url):
- response = requests.get(url)
- soup = BeautifulSoup(response.text, 'html.parser')
- filmes = []
- for item in soup.find_all('div', class_='lister-item-content'):
- titulo = item.h3.a.text.strip()
- descricao = item.find('p', class_='').text.strip()
- filmes.append({'Título': titulo, 'Descrição': descricao})
- return filmes
- url_imdb = 'COLOCAR A URL DA LISTA DO IMDB'
- filmes = obter_detalhes_filme(url_imdb)
- # Obtenha o diretório atual do arquivo do aplicativo
- diretorio_atual = os.path.dirname(os.path.abspath(__file__))
- # Crie o caminho completo para o arquivo "filmes.html"
- caminho_arquivo_html = os.path.join(diretorio_atual, 'filmes.html')
- # Número de filmes por página
- filmes_por_pagina = 10
- # Dividir os filmes em páginas
- paginas = [filmes[i:i+filmes_por_pagina] for i in range(0, len(filmes), filmes_por_pagina)]
- # Obter a data e hora atual
- data_hora_atual = datetime.datetime.now().strftime("%d/%m/%Y às %H:%M:%S")
- # Criar arquivo HTML com estilização CSS e paginação
- with open(caminho_arquivo_html, 'w', encoding='utf-8') as arquivo_html:
- arquivo_html.write('<html>\n')
- arquivo_html.write('<head>\n')
- arquivo_html.write('<title>Filmes</title>\n')
- arquivo_html.write('<style>\n')
- arquivo_html.write('body {\n')
- arquivo_html.write(' font-family: Arial, sans-serif;\n')
- arquivo_html.write(' margin: 20px;\n')
- arquivo_html.write('}\n')
- arquivo_html.write('h2 {\n')
- arquivo_html.write(' color: #333;\n')
- arquivo_html.write(' font-size: 24px;\n')
- arquivo_html.write(' margin-bottom: 10px;\n')
- arquivo_html.write('}\n')
- arquivo_html.write('p {\n')
- arquivo_html.write(' color: #666;\n')
- arquivo_html.write(' font-size: 14px;\n')
- arquivo_html.write('}\n')
- arquivo_html.write('hr {\n')
- arquivo_html.write(' border: none;\n')
- arquivo_html.write(' border-top: 1px solid #ccc;\n')
- arquivo_html.write(' margin: 20px 0;\n')
- arquivo_html.write('}\n')
- arquivo_html.write('.pagina {\n')
- arquivo_html.write(' display: none;\n')
- arquivo_html.write('}\n')
- arquivo_html.write('.pagina.ativa {\n')
- arquivo_html.write(' display: block;\n')
- arquivo_html.write('}\n')
- arquivo_html.write('</style>\n')
- arquivo_html.write('<script>\n')
- arquivo_html.write('function mostrarPagina(pagina) {\n')
- arquivo_html.write(' var paginas = document.getElementsByClassName("pagina");\n')
- arquivo_html.write(' for (var i = 0; i < paginas.length; i++) {\n')
- arquivo_html.write(' paginas[i].style.display = "none";\n')
- arquivo_html.write(' }\n')
- arquivo_html.write(' document.getElementById("pagina-" + pagina).style.display = "block";\n')
- arquivo_html.write('}\n')
- arquivo_html.write('</script>\n')
- arquivo_html.write('</head>\n')
- arquivo_html.write('<body>\n')
- # Adicionar a mensagem de exportação
- arquivo_html.write(f'<p>Exportado em {data_hora_atual}</p>\n')
- # Adicionar links de paginação
- for i, pagina in enumerate(paginas):
- arquivo_html.write(f'<a href="javascript:void(0);" onclick="mostrarPagina({i+1});">Página {i+1}</a>\n')
- # Adicionar conteúdo de cada página
- for i, pagina in enumerate(paginas):
- arquivo_html.write(f'<div class="pagina" id="pagina-{i+1}">\n')
- for filme in pagina:
- arquivo_html.write('<h2>{}</h2>\n'.format(filme['Título']))
- arquivo_html.write('<p>{}</p>\n'.format(filme['Descrição']))
- arquivo_html.write('<hr>\n')
- arquivo_html.write('</div>\n')
- arquivo_html.write('<script>\n')
- arquivo_html.write('mostrarPagina(1);\n')
- arquivo_html.write('</script>\n')
- arquivo_html.write('</body>\n')
- arquivo_html.write('</html>\n')
- print("Arquivo 'filmes.html' gerado com sucesso!")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement