Advertisement
Guest User

Untitled

a guest
Dec 20th, 2017
401
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.50 KB | None | 0 0
  1. import os.path #Kontrollib, kas fail on olemas
  2. import json #Teeb dictionary oma stringiks, et seda faili panna
  3. import requests #Lingi saamiseks
  4. from bs4 import BeautifulSoup #Aitab html koodi lugeda
  5. import smtplib #Emaili saatmine ja mingi hookuspookus
  6. from email.mime.text import MIMEText #Emaili saatmine -> kirja pealkiri
  7. from email.mime.multipart import MIMEMultipart #Paneb kirja pealkirja ja sisu kokku
  8. import urllib.request
  9. import urllib.parse
  10. import re
  11.  
  12. def kontrolliFilmiDicti(failinimi):
  13. if os.path.exists(failinimi):
  14. fail = open(failinimi, 'r',encoding='utf-8')
  15. filmiDict = json.loads(fail.read())
  16. fail.close()
  17. #Kui faili pole, siis teeme tühja faili
  18. else:
  19. filmiDict = {}
  20. return filmiDict
  21.  
  22. def saadaMeil(saatjaMeil, saatjaParool, saajaMeil):
  23. msgSisu = ''
  24. for film in filmid:
  25. nimi = film.select_one('.list-item-desc-title a').text
  26. kpv = film.select_one('.event-releaseDate b').text
  27. zanrid = film.select_one('.genre-names b').text
  28. youtubeLink = film.select_one('.btn-group a')
  29.  
  30. if youtubeLink:
  31. youtube = youtubeLink.get('href') #Päris youtube link
  32. trailer = (' Traileri link on: ' + str(youtube))
  33. else:
  34.  
  35. query_string = urllib.parse.urlencode({"search_query" : nimi})
  36. html_content = urllib.request.urlopen("http://www.youtube.com/results?" + query_string)
  37. search_results = re.findall(r'href=\"\/watch\?v=(.{11})', html_content.read().decode())
  38. youtube = ("http://www.youtube.com/watch?v=" + search_results[0])
  39. trailer = (' Kahjuks Apollo lehel trailerit pole, siin on YouTubest filmi pealkirja otsides leitud võimalik trailer:' + str(youtube))
  40.  
  41. uuid = film.select_one('.list-item-desc-title a').get('href') #URL ID, et eristada filme lihtsasti
  42.  
  43. if uuid not in filmiDict:
  44. msgSisu += ('\n Apollos on uus film: ' + nimi + ', mis esilinastub ' + str(kpv) + '.' + str(trailer) + '. Filmi zanr on: ' + zanrid + '.\n')
  45.  
  46. filmiDict[uuid] = {"nimi":nimi, "kuupäev":kpv, "zanr":zanrid, "treiler":youtube}
  47. msg = MIMEMultipart()
  48. msgTervitus = 'Tere!\n'
  49. msgLopp = '\nHead filmielamust!'
  50. msg4 = msgTervitus + msgSisu + msgLopp #Paneme emaili sisu kokku
  51. msg['Subject'] = "Uued filmid Apollos"
  52. msg.attach(MIMEText(msg4, 'plain')) #Paneme kokku emaili pealkirja ja sisu
  53. text = msg.as_string() #Tanu sellele on meil tapitahed!!
  54. if msgSisu != '':
  55. server = smtplib.SMTP('smtp.gmail.com', 587)
  56. server.starttls()
  57. server.login(saatjaMeil, saatjaParool)
  58. server.sendmail(saatjaMeil, saajaMeil, text.encode('utf-8'))
  59. server.quit()
  60.  
  61. #Loeme andmed sisse html koodina
  62. linkApollo = requests.get('https://www.apollokino.ee/soon')
  63. supp = BeautifulSoup(linkApollo.text, 'html.parser')
  64. #Otsime koha üles, kus asuvad meie filmid ja nende info
  65. filmid = supp.select(".ContentBlockComingSoon .EventList-container > div")
  66. #Kontrollime, kas fail on juba olemas ja loeme faili sisse juhul, kui see on olemas
  67. filmiDict = kontrolliFilmiDicti('filmid.txt')
  68. #NB! Saatja meil peab olema @gmail.com lõpuga!
  69. saadaMeil('lehtmetslane@gmail.com', 'mees123GG', 'meeliste@mail.com')
  70.  
  71. json_string = json.dumps(filmiDict) #Teeb dictionary oma jamaks, et see ilusti stringina faili panna
  72. #Kirjtame uue faili, kus sees on ka kõik uued filmid
  73. fail = open('filmid.txt', 'w', encoding='utf-8')
  74. fail.write(json_string)
  75. fail.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement