Python3 (Beautiful Soup + Tkinter)

Iniciado por noxonsoftwares, Mayo 14, 2020, 03:21:06 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Buenas gente de UC hace tiempo sin compartir nada, solo mirando desde las sombras....

Resulta que estaba sin PC y bueno pues ahora que ya esta la maquina conmigo para intentar recordar algo pues me puse a programar y aprender sobre web scraping, es algo basico pero para el que no lo conoce creo que le sera de ayuda.

Basicamente lo que hace es conseguir todas las peliculas "Latino Español" en calidad 1080 de la tan conocida pagina EliteTorre......Claro que aun le falta mas retoque y pues pienso agregarle que al descargar directamente habra el torrent, Saludos

aqui una simple captura.



y aqui el codigo:

Código: php

import requests
from bs4 import BeautifulSoup
from tkinter import *
from tkinter import messagebox
import tkinter.ttk as ttk
import webbrowser


class gui:

    def contador(self):
        items = len(self.tree.get_children())
        messagebox.showinfo('Titulos', 'Se encuentraron ' + str(items) + ' peliculas')

    def mjs_alerta(self):
        messagebox._show('Aviso', 'Debe seleccionar una pelicula de la lista.',
                         messagebox.INFO)

    def salir(self):
        self.ventana.destroy()

    def abrir(self):
        try:
            item = self.tree.selection()[0]
            lista = self.tree.item(item, 'value')
            webbrowser.open(lista[1])
        except:
            self.mjs_alerta()

    # Abrimos el navegador al hacer doble click sobre el item en la lista
    def OnDoubleClick(self, event):
        item = self.tree.selection()[0]
        lista = self.tree.item(item, 'value')
        webbrowser.open(lista[1])

    def __init__(self, ventana):
        self.ventana = ventana
        ventana.title('Peliculas de elitetorrents')
        ventana.resizable(0, 0)
        ventana.geometry("340x250+365+240")

        messagebox.showinfo('INICIANDO', 'Cargando Titulos de peliculas. Puede que esto tome tiempo dependiendo de su '
                                         'conexion. Por favor sea paciente.')

        self.stilo = ttk.Style()
        # Configuracion del Treeview
        self.stilo.configure("Treeview", foreground='white', background='#660000')
        self.stilo.configure("Treeview.Heading", background='black', foreground='red')
        # Configuración del Boton
        self.stilo.configure("TButton", background='black', foreground='yellow', font='ArialBold')

        # lb_header= ['TITULOS', 'Link']
        lb_header = ['TITULOS']
        self.tree = ttk.Treeview(columns=lb_header, show='headings')
        self.tree.pack(fill=BOTH)

        for col in lb_header:
            self.tree.heading(col, text=col.title())

        for listar in range(1, 68):
            cant = 0 + listar
            url = requests.get(
                'https://www.elitetorrent.nl/idioma/espanol-latino-11/page/' + str(cant) + '/?post_type=peliculas')
            soup = BeautifulSoup(url.content, "lxml")

            for x in soup.find_all('link', {'rel': 'canonical'}):
                print(x['href'])

            for a in soup.find_all('a', {'class': 'nombre'}):
                calidad = a['title'] + " : " + a['href']
                if (calidad.count('1080p') != 0):
                    self.tree.insert("", 0, values=(a['title'], a['href']))

        self.tree.bind("<Double-1>", self.OnDoubleClick)  # Al hacer dos click abre la pelicula

        self.btn = ttk.Button(text='Salir', command=self.salir).pack(side=RIGHT)
        self.bt2 = ttk.Button(text='Descargar', command=self.abrir).pack(side=LEFT)

        self.contador()


if __name__ == '__main__':
    wind = Tk()
    application = gui(wind)
    wind.mainloop()


Mayo 14, 2020, 03:24:06 AM #1 Ultima modificación: Mayo 14, 2020, 03:25:50 AM por Gabriela
Muy interesante tu aporte.
Útil en tiempos de cuarentena a causa del Coronavirus.

Gracias por compartirla con nosotros.

Saludos

Gabriela
Tú te enamoraste de mi valentía, yo me enamoré de tu oscuridad; tú aprendiste a vencer tus miedos, yo aprendí a no perderme en tu abismo.

Gracias por la info.

Yo empecé hace poco también a verlo y me decanté por Selenium, la verdad que para la gestión de páginas webs que cargan usando JS está bastante bien. Te recomiendo echarle un vistazo.

Un saludo!

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Gracias por la info.

Yo empecé hace poco también a verlo y me decanté por Selenium, la verdad que para la gestión de páginas webs que cargan usando JS está bastante bien. Te recomiendo echarle un vistazo.

Un saludo!

Ok, gracias vot a investigar sobre Selenium a ver que hago con eso jejeje.


Saludos