Underc0de

Programación Scripting => Python => Mensaje iniciado por: noxonsoftwares en Mayo 14, 2020, 03:21:06 am

Título: Python3 (Beautiful Soup + Tkinter)
Publicado por: noxonsoftwares en Mayo 14, 2020, 03:21:06 am
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.

(https://noxonsoftwares.imfast.io/Captura%20de%20pantalla_2020-05-14_03-10-50.png)

y aqui el codigo:

Código: [Seleccionar]
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()

Título: Re:Python3 (Beautiful Soup + Tkinter)
Publicado por: Gabriela en Mayo 14, 2020, 03:24:06 am
Muy interesante tu aporte.
Útil en tiempos de cuarentena a causa del Coronavirus.

Gracias por compartirla con nosotros.

Saludos

Gabriela
Título: Re:Python3 (Beautiful Soup + Tkinter)
Publicado por: kuro en Mayo 14, 2020, 10:11:58 am
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!
Título: Re:Python3 (Beautiful Soup + Tkinter)
Publicado por: noxonsoftwares en Mayo 14, 2020, 02:13:42 pm
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