Advertisement
Guest User

Untitled

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