Advertisement
Guest User

Untitled

a guest
Dec 20th, 2017
342
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.60 KB | None | 0 0
  1. import os.path #et kontrollida, kas fail on olemas
  2. import json #et dictionary lugeda faili sisse
  3. import requests #et linki saada
  4. from bs4 import BeautifulSoup #html koodi lugeda
  5. import smtplib #emaili saatmine
  6.  
  7. def kontrolliFilmiDicti(failinimi):
  8. if os.path.exists(failinimi):
  9. fail = open(failinimi, 'r',encoding='utf-8')
  10. filmiDict = json.loads(fail.read())
  11. fail.close()
  12. #kui faili pole, siis teeme tühja faili
  13. else:
  14. filmiDict = {}
  15. return filmiDict
  16.  
  17. def saadaMeil(saatjaMeil, saatjaParool, saajaMeil):
  18. msg2 = ''
  19. for film in filmid:
  20. nimi = film.select_one('.list-item-desc-title a').text
  21. kpv = film.select_one('.event-releaseDate b').text
  22. zanrid = film.select_one('.genre-names b').text
  23. youtubeLink = film.select_one('.btn-group a')
  24.  
  25. if youtubeLink:
  26. youtube = youtubeLink.get('href') #päris youtube link
  27. else:
  28. youtube = None
  29.  
  30. uuid = film.select_one('.list-item-desc-title a').get('href') #url id, et eristada filme lihtsalt
  31.  
  32. if uuid not in filmiDict:
  33. if youtube:
  34. msg2 += ('\n\n Apollos on uus film: ' + nimi + ', mis esilinastub ' + str(kpv) + ' ja mille traileri link on: ' + str(youtube) + '. Filmi zanr on: ' + zanrid + '.')
  35. else:
  36. msg2 += ('\n\n Apollos on uus film: ' + nimi + ', mis esilinastub ' + str(kpv) + '. Filmi zanr on: ' + zanrid + '.')
  37. filmiDict[uuid] = {"nimi":nimi, "kuupäev":kpv, "zanr":zanrid, "treiler":youtube}
  38. msg1 = 'Tere!\n'
  39. msg3 = '\n\nHead filmielamust!'
  40. msg = msg1 + msg2 + msg3
  41. if msg2 != '':
  42. server = smtplib.SMTP('smtp.gmail.com', 587)
  43. server.starttls()
  44. server.login(saatjaMeil, saatjaParool)
  45. server.sendmail(saatjaMeil, saajaMeil, msg.encode('utf-8'))
  46. server.quit()
  47.  
  48. #Loeme andmed sisse html koodina
  49. linkApollo = requests.get('https://www.apollokino.ee/soon')
  50. supp = BeautifulSoup(linkApollo.text, 'html.parser')
  51. #Otsime koha üles, kus asuvad meie filmid ja nende info
  52. filmid = supp.select(".ContentBlockComingSoon .EventList-container > div")
  53. #kontrollime, kas fail on juba olemas ja loeme faili sisse juhul, kui see on olemas
  54. kontrolliFilmiDicti('filmid.txt')
  55.  
  56. #NB! Saatja meil peab olema @gmail.com lõpuga!
  57. saadaMeil('lehtmetslane@gmail.com', 'mees123GG', 'meeliste@mail.com')
  58.  
  59. json_string = json.dumps(filmiDict) #teeb dictionary oma jamaks, et see ilusti stringina faili panna
  60.  
  61. fail = open('filmid.txt', 'w', encoding='utf-8')
  62. fail.write(json_string)
  63. fail.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement