A python script to get RSS feeds from french-speaking Belgian broadcasting online video service.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

79 lignes
2.9KB

  1. # coding: utf-8
  2. def makefeedauvio(pid):
  3. """get an Atom feed from the pid of an auvio (pid is in the URL when you're on a show page)"""
  4. import requests as rq
  5. from bs4 import BeautifulSoup
  6. from feedgen.feed import FeedGenerator
  7. #generate Atom Feed
  8. fg = FeedGenerator()
  9. fg.id('http://www.rtbf.be/auvio/')
  10. fg.title(u'Auvio')
  11. fg.logo('http://www.static.rtbf.be/tv/media/images/ico/favicon-auvio-32x32.png')
  12. fg.subtitle(u"Flux Atom d'une émission d'Auvio.")
  13. feedlink = u'http://gauchiste.club/auvio/' + str(pid)
  14. fg.link(href=(feedlink), rel='self')
  15. fg.language(u'fr_BE')
  16. #obtain page html
  17. lien="https://www.rtbf.be/auvio/archives?pid="+str(pid)+"&contentType=complete"
  18. response = rq.get(lien)
  19. soup = BeautifulSoup(response.content, features="lxml")
  20. jolihtml=soup.prettify()
  21. listpage=jolihtml.split()
  22. #analyze the html from the page
  23. i=0
  24. autravail=False
  25. listinfo=[]
  26. lepremier=True
  27. TitreIncomplet=True
  28. #Grosse boucle d'analyse du HTML et mise en place dans un fichier XML
  29. for elements in listpage:
  30. if "rtbf-media-li__header" in elements and autravail== False:
  31. #on va ici que si on commence une partie avec des infos interessantes, sinon la boucle va dans le else non noté et rajoute juste un à i
  32. autravail = True
  33. elif autravail == True and "/time" in elements :
  34. #normalement, on a la liste complète avec les infos qui nous conviennent ici. On arrive ici uniquement quand le elif en dessous a fini de tourner.
  35. autravail = False
  36. #fc = fg.add_entry()
  37. if lepremier==True:
  38. #We don't use the first list because the first list given by the methode give us something totally unrelated and useless in all cases
  39. lepremier=False
  40. else:
  41. #l'id et le lien
  42. monHref=listinfo[3]
  43. IdLien=monHref[6:-2]
  44. #le titre
  45. j=4
  46. titre=u''
  47. #4 car le titre est en position 4 dans la liste
  48. while TitreIncomplet==True:
  49. if '/a' in listinfo[j]:
  50. TitreIncomplet=False
  51. titre=titre + IdLien
  52. else:
  53. titre=titre+listinfo[j]+u' '
  54. j+=1
  55. #mettre les éléments dans feed
  56. fe = fg.add_entry()
  57. fe.id(IdLien)
  58. fe.title(titre)
  59. fe.link(href=IdLien)
  60. TitreIncomplet=True
  61. listinfo=[]
  62. elif autravail== True:
  63. #au travail, on rajoute dans une liste les éléments qui nous interessent.
  64. toadd=listpage[int(i)]
  65. listinfo.append(toadd)
  66. i+=1
  67. #exporter le feed
  68. #atomfeed = fg.atom_str(pretty=True)
  69. fg.atom_file(u''+str(pid)+u'.xml')
  70. #return atomfeed
  71. def makefeedVRTNU()