renix1

Test with Youtube, python 3.x

Aug 20th, 2016
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.93 KB | None | 0 0
  1. # coding: utf-8
  2. # !/usr/bin/env python3
  3. # script para ver o CPM do vídeo de tal youtuber...
  4.  
  5. """ Sem coloração agora. Com isso, temos suporte ao Windows e provável que ao DarwinOS também. """
  6.  
  7. # imports
  8. try:
  9.     import urllib.request
  10. except ImportError:
  11.     print("Erro de importação!!! Cheque se o módulo urllib.request está funcionando. O.O\n")
  12.     quit()
  13.  
  14. # video = "https://www.youtube.com/watch?v=RnU3lQ0EL1o", just for example, you should type with input :D
  15. try:
  16.     print("\nEu irei verificar o vídeo cada vez que o número de visualizações for modificado!:D")
  17.     video = input("Digite o link do vídeo: ")
  18. except KeyboardInterrupt:
  19.     print("Saindo do script...\n")
  20.  
  21. try:
  22.     def acessar_pagina(video):
  23.         page = urllib.request.urlopen(video)
  24.         lead = str(page.read())
  25.         return page, lead
  26.     page, lead = acessar_pagina(video)
  27.     #print(lead)
  28. except ValueError:
  29.     print("Por favor, digite um link válido!!!\n")
  30.     lead = []
  31.  
  32.  
  33. # print(lead)
  34.  
  35. def get_name_channel(lead):
  36.     if 'yt-user-info' in lead:
  37.         idx = lead.index('yt-user-info')
  38.         idx_start, idx_end = idx, idx
  39.         idx_start += 220
  40.         idx_end += 245
  41.         name_channel = lead[idx_start:idx_end:]
  42.         end = name_channel.find('</a>')
  43.         name_channel = name_channel[:end:]
  44.         return name_channel
  45.  
  46. def get_views_numbers(lead):
  47.     if '<div class="watch-view-count">' in lead:
  48.         idx = lead.index('<div class="watch-view-count">')
  49.         idx_start, idx_end = idx, idx
  50.         idx_start += 30
  51.         idx_end += 60
  52.         visu = lead[idx_start:idx_end:]
  53.         end = visu.index(' ')
  54.         views = visu[:end:]
  55.         return views
  56.     else:
  57.         return False
  58.  
  59.  
  60. def get_subscribers_numbers(lead):
  61.     if 'yt-subscriber-count' in lead:
  62.         idx = lead.index("yt-subscriber-count")
  63.         idx_start, idx_end = idx, idx
  64.         idx_start += 28
  65.         idx_end += 60
  66.         subscribers = lead[idx_start:idx_end:]
  67.         end = subscribers.index('"')
  68.         subscribers = subscribers[:end:]
  69.         return subscribers
  70.     else:
  71.         return False
  72.  
  73.  
  74. def acess():
  75.     page, lead = acessar_pagina(video)
  76.     views = get_views_numbers(lead)
  77.     subs = get_subscribers_numbers(lead)
  78.     return views, subs
  79.  
  80. visus_anterior, inscritos_anterior = None, None
  81. print("\nSeja bem vindo, espero que aproveite!\nUooooooooooooooooooou!!!!!\n")
  82. try:
  83.     while True:
  84.         name = get_name_channel(lead)
  85.         visus, inscritos = acess()
  86.         visus_idx = visus.find('.')
  87.         if (visus_anterior == visus):
  88.             pass
  89.         else:
  90.             print("-------------- VIEWS --------------")
  91.             print("Canal: %s\nVisualizações: %s\nInscritos: %s" % (name, visus, inscritos))
  92.             print("-------------- VIEWS --------------\n")
  93.         visus_anterior, inscritos_anterior = visus, inscritos
  94. except KeyboardInterrupt:
  95.     print("Saindo do script...\n")
Advertisement
Add Comment
Please, Sign In to add comment