script~20171216-180339.py 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #!/usr/bin/env python2.7.14
  2. # -*- coding: utf-8 -*-
  3. # libraries webscrapping
  4. # from pattern.web import Newsfeed
  5. # from pattern.web import Wikipedia
  6. from pattern.web import *
  7. import wikipedia
  8. # libraries traitement langage
  9. from pattern.en import tag
  10. import random
  11. # -------------------------- #
  12. # déclaration des fonctions
  13. # -------------------------- #
  14. # fonction qui récupère un flux RSS
  15. def get_rss( url ):
  16. # on boucle dans le flux rss
  17. for result in Newsfeed().search(url)[:1]:
  18. # on recupère le premier titre
  19. str = repr(result.title)
  20. # on remplace les apostrophe
  21. str = str.replace("'","")
  22. # on enlève le u (première lettre unicode string)
  23. str = str.replace(str[:1],'')
  24. return str
  25. # fonction qui teste une string pour trouver un nom
  26. def prc_word( str, postag ):
  27. words = []
  28. # on cherche dans la str les noms et on les stocke dans une liste
  29. for word, pos in tag(str):
  30. if pos == postag:
  31. words.append(word)
  32. # on retourne le second élement du tableau
  33. #list_len = len(words)
  34. #ran_num = random.randint(0,list_len)
  35. #return words[ran_num]
  36. return words
  37. # fonction qui va chercher une page wikipedia
  38. def get_wiki( str ):
  39. # on appelle la page wikipedia
  40. page = wikipedia.page( str )
  41. # on recupère le contenu texte
  42. cont = page.content
  43. # on sépare le texte avec les retours à la ligne
  44. res = cont.split('\n')
  45. #res = wikipedia.summary(str, sentences=1)
  46. #res = wikipedia.search(str, results=1)
  47. #list_len = len(res)
  48. #ran_num = random.randint(0,list_len)
  49. #return res[ran_num]
  50. return res
  51. # fonction pour écrire le fichier texte
  52. def write_txt( str, nom_file ):
  53. # on ouvre un fichier
  54. file = open(nom_file, 'w')
  55. # on l'écrit
  56. file.write( str )
  57. file.close()
  58. print 'fichier écrit'
  59. # -------------------------- #
  60. # appelle des fonctions
  61. # -------------------------- #
  62. # on recupère un flux rss
  63. str_rss = get_rss('https://www.theguardian.com/world/rss')
  64. # on recupère un nom
  65. wrd_tag = prc_word(str_rss, 'NN')
  66. # on va chercher la définition dans wikipedia
  67. str_from_word = get_wiki(wrd_tag)
  68. # on recupère un nom
  69. #wrd_tag2 = prc_word(str_from_word[1], 'NN')
  70. # on va chercher la définition dans wikipedia
  71. #str_from_word2 = get_wiki(wrd_tag2)
  72. #str_final = str_rss + '\n' + wrd_tag + '\n' + str_from_word
  73. print str_rss
  74. print wrd_tag
  75. print str_from_word
  76. #print wrd_tag2
  77. #print str_from_word2[2]
  78. #write_txt(str_final, 'test.txt')