Différences entre les versions de « Utilisateur:Zoe.vds »

De {}
Aller à la navigation Aller à la recherche
Ligne 1 : Ligne 1 :
 
=Writing Bot=  
 
=Writing Bot=  
  
==Énoncés de différents bots twitter==  
+
==CODE==
  
*Un bot sur Pingu qui tweet Noot Noot toutes les heures (le nombre de noot faisant référence à l'heure exacte?).  
+
<syntaxhighlight lang="python">
 +
#!python
 +
# -*- coding: utf-8 -*-
 +
 
 +
import mechanize
 +
import lxml.html as parser
 +
import cssselect
 +
import random
 +
 
 +
 
 +
#Étape 1 : naviguer sur le site cible poesie.webnet et récupérer son code source.
 +
#Pour ça : besoin d'un navigateur : déclaration + informations.
 +
 
 +
br = mechanize.Browser()
 +
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; Linux x86_64; rv:69.0) Gecko/20100101 Firefox/69.0')]
 +
br.set_handle_robots(False)
 +
 
 +
 
 +
#Étape 2 : récupérer le code source de la page + les liens des différentes lettres de l'alphabet.
 +
 
 +
def getHtmlTree(url):
 +
    data = br.open(url, timeout=10)
 +
    source = data.read()
 +
    tree = parser.fromstring(source)
 +
    return tree
 +
 
 +
def getRandomLink(url, cssselector):
 +
    tree = getHtmlTree(url)
 +
   
 +
    for selector in cssselect.parse(cssselector):
 +
        xpath_selector = cssselect.HTMLTranslator().selector_to_xpath(selector)
 +
        links = tree.xpath(xpath_selector)
 +
        return random.choice(links).get('href')
 +
 
 +
#Étape 3 : à partir d'une lettre random, récupérer les liens des noms d'auteurs. 
 +
 
 +
link_lettre = getRandomLink('https://poesie.webnet.fr/lesgrandsclassiques/Author', '.author-list__menu li a')
 +
 
 +
print(link_lettre)
 +
 
 +
link_auteur = getRandomLink('https://poesie.webnet.fr'+link_lettre, '.author-list__link')
 +
 
 +
print(link_auteur)
 +
 
 +
link_poeme = getRandomLink('https://poesie.webnet.fr'+link_auteur, '.author-list__link')
 +
 
 +
print(link_poeme)
  
*Un bot qui tweet une série d'onomatopées dans diverses langues (cf. https://www.wikiwand.com/fr/Liste_d%27onomatopées_dans_différentes_langues). Le bot ferait référence à la chanson What Does The Fox Say? (https://www.youtube.com/watch?v=jofNR_WkoCE) et proposerait diverses combinaisons à partir de la liste d'onomatopées. Le bot posterait toutes les 20 minutes.
+
#Étape 4 : récupérer les poèmes
  
*Un bot qui terminerait ses phrases par "ta mère". Les sources textuelles seraient des poèmes de Victor Hugo, Baudelaire, Verlaine, Rimbaud et autres poètes romantiques. Ce qui donnerait des combinaisons comme : "demain dés l'aube ta mère" ou "l'éternité ta mère" > @poete_nrv
+
poemeTree = getHtmlTree('https://poesie.webnet.fr'+link_poeme)
*''Autre version possible : reprendre les grands titres de l'actualité et les ponctuer par "ta mère"''  
+
for selector in cssselect.parse('.poem__content'):
 +
    xpath_selector = cssselect.HTMLTranslator().selector_to_xpath(selector)
 +
    poems = poemeTree.xpath(xpath_selector)
 +
    #Permet de conserver les retours à la ligne
 +
    for br in poems[0].xpath("//br"):
 +
        br.tail = "\n" + br.tail if br.tail else "\n"
 +
    #Étape 5 : décomposer le poème en lignes
 +
    #print(poems[0].text_content())
 +
    #poems[0].split("\n")
 +
    #print(poems[0].text_content())
 +
    poems[0].text_content().split('')
 +
</syntaxhighlight>
  
*Un bot qui tweet une image représentant des fleurs (ou un bouquet de fleur) ainsi qu'un texte se rapprochant d'une insulte (ex. boudin, avorton, fumier,...). Le nom du bot serait "dites le avec des fleurs". Les images pourraient être trouvées à partir d'une bibliothèque (google image? à partir de la recherche "bouquet de fleurs") et les textes proviendraient d'une page Wikipédia recensant des insultes françaises. Le bot posterait toutes les heures.
 
  
 
==SCENARIO @POETE_NRV==
 
==SCENARIO @POETE_NRV==
Ligne 19 : Ligne 75 :
 
*À partir de ce vers, le programme ajoute ",ta mère."  
 
*À partir de ce vers, le programme ajoute ",ta mère."  
 
*Le programme envoie le tweet sur Twitter. Un nouveau tweet est posté toutes les 30 minutes.
 
*Le programme envoie le tweet sur Twitter. Un nouveau tweet est posté toutes les 30 minutes.
 +
 +
==ÉNONCÉS DE DIFFÉRENTS BOTS==
 +
 +
*Un bot sur Pingu qui tweet Noot Noot toutes les heures (le nombre de noot faisant référence à l'heure exacte?).
 +
 +
*Un bot qui tweet une série d'onomatopées dans diverses langues (cf. https://www.wikiwand.com/fr/Liste_d%27onomatopées_dans_différentes_langues). Le bot ferait référence à la chanson What Does The Fox Say? (https://www.youtube.com/watch?v=jofNR_WkoCE) et proposerait diverses combinaisons à partir de la liste d'onomatopées. Le bot posterait toutes les 20 minutes.
 +
 +
*Un bot qui terminerait ses phrases par "ta mère". Les sources textuelles seraient des poèmes de Victor Hugo, Baudelaire, Verlaine, Rimbaud et autres poètes romantiques. Ce qui donnerait des combinaisons comme : "demain dés l'aube ta mère" ou "l'éternité ta mère" > @poete_nrv
 +
*''Autre version possible : reprendre les grands titres de l'actualité et les ponctuer par "ta mère"''
 +
 +
*Un bot qui tweet une image représentant des fleurs (ou un bouquet de fleur) ainsi qu'un texte se rapprochant d'une insulte (ex. boudin, avorton, fumier,...). Le nom du bot serait "dites le avec des fleurs". Les images pourraient être trouvées à partir d'une bibliothèque (google image? à partir de la recherche "bouquet de fleurs") et les textes proviendraient d'une page Wikipédia recensant des insultes françaises. Le bot posterait toutes les heures.
  
 
=Poésie Binaire=  
 
=Poésie Binaire=  

Version du 12 mars 2020 à 08:37

Writing Bot

CODE

#!python
# -*- coding: utf-8 -*-

import mechanize
import lxml.html as parser
import cssselect
import random


#Étape 1 : naviguer sur le site cible poesie.webnet et récupérer son code source. 
#Pour ça : besoin d'un navigateur : déclaration + informations. 

br = mechanize.Browser()
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; Linux x86_64; rv:69.0) Gecko/20100101 Firefox/69.0')]
br.set_handle_robots(False)


#Étape 2 : récupérer le code source de la page + les liens des différentes lettres de l'alphabet. 

def getHtmlTree(url):
    data = br.open(url, timeout=10)
    source = data.read()
    tree = parser.fromstring(source)
    return tree

def getRandomLink(url, cssselector): 
    tree = getHtmlTree(url) 
    
    for selector in cssselect.parse(cssselector): 
        xpath_selector = cssselect.HTMLTranslator().selector_to_xpath(selector)
        links = tree.xpath(xpath_selector)
        return random.choice(links).get('href')

#Étape 3 : à partir d'une lettre random, récupérer les liens des noms d'auteurs.  

link_lettre = getRandomLink('https://poesie.webnet.fr/lesgrandsclassiques/Author', '.author-list__menu li a')

print(link_lettre)

link_auteur = getRandomLink('https://poesie.webnet.fr'+link_lettre, '.author-list__link')

print(link_auteur)

link_poeme = getRandomLink('https://poesie.webnet.fr'+link_auteur, '.author-list__link')

print(link_poeme)

#Étape 4 : récupérer les poèmes 

poemeTree = getHtmlTree('https://poesie.webnet.fr'+link_poeme) 
for selector in cssselect.parse('.poem__content'):
    xpath_selector = cssselect.HTMLTranslator().selector_to_xpath(selector)
    poems = poemeTree.xpath(xpath_selector)
    #Permet de conserver les retours à la ligne
    for br in poems[0].xpath("//br"):
        br.tail = "\n" + br.tail if br.tail else "\n"
    #Étape 5 : décomposer le poème en lignes
    #print(poems[0].text_content())
    #poems[0].split("\n")
    #print(poems[0].text_content())
    poems[0].text_content().split('')


SCENARIO @POETE_NRV

  • À partir de ce vers, le programme ajoute ",ta mère."
  • Le programme envoie le tweet sur Twitter. Un nouveau tweet est posté toutes les 30 minutes.

ÉNONCÉS DE DIFFÉRENTS BOTS

  • Un bot sur Pingu qui tweet Noot Noot toutes les heures (le nombre de noot faisant référence à l'heure exacte?).
  • Un bot qui terminerait ses phrases par "ta mère". Les sources textuelles seraient des poèmes de Victor Hugo, Baudelaire, Verlaine, Rimbaud et autres poètes romantiques. Ce qui donnerait des combinaisons comme : "demain dés l'aube ta mère" ou "l'éternité ta mère" > @poete_nrv
  • Autre version possible : reprendre les grands titres de l'actualité et les ponctuer par "ta mère"
  • Un bot qui tweet une image représentant des fleurs (ou un bouquet de fleur) ainsi qu'un texte se rapprochant d'une insulte (ex. boudin, avorton, fumier,...). Le nom du bot serait "dites le avec des fleurs". Les images pourraient être trouvées à partir d'une bibliothèque (google image? à partir de la recherche "bouquet de fleurs") et les textes proviendraient d'une page Wikipédia recensant des insultes françaises. Le bot posterait toutes les heures.

Poésie Binaire

Poème en code binaire

1011010110010111100101101111111001101000001100101111010001000001110101110111011100110001101101001011110011110100110100011011011100101110111011101000100000110110011001010100000110001111011111100100010100011001010101001010111000011011010010110010111100001100101111010011010011110100110100111011111101110010110000011011011010110010111100101101111111001101000001100101111010001000001110101110111011100110001101101001111000011110101111010001000001100001010000011011001100001010000011011001101001110011111011101100101010110000011011000011010011111001011110011111010001000001110101110111001000001110011110010111000111110010110010111101000101110

Traduction

Zeros et uns
Rythment le cod(e).
Repetition,
Zeros et uns
Saut a la ligne,
C'est un secret.

Manipulations du poème

Création d'un programme

Le programme permute les mots de moins de 3 lettres, et les mots de plus de 5 lettres.

Résolution [1]

Le code de Violette

Résolution du code de Violette

print ("Quel est ton nom?")
name = raw_input()
print (name+" est ton nom de poète.") 

with open ('Poetry','r') as POEME:
    poeme = POEME.read()


x = poeme.replace ("a", "aouuuu") 
y = x.replace ("g", "grrrrrrr")
    
print (y)

Dernier énoncé

#!python
# -*- coding: utf-8 -*-

#Définition des ≠ tableaux  
    
article = ["Les", "Le", "une", "un", "le", "L", "la"]
nom = ["editions", "Canape", "mission", "roman", "larme", "code", "ORDINATEUR", "Circuits", "zero", "repetition", "saut", "ligne", "secret"]
complement = ["grand", "transformiste", "vrai", "faux", "nomr", "blanc", "bien", "binaire", "claire", "Immenses"]
verbe = ["avaient donne", "est", "est", "est", "rythment", "est"]
    
#random = module permettant de générer de l'aléatoire  
#new_vers = nouveau tableau vide à remplir avec éléments article/nom/compl/verbe
    
from random import *
        
#Génération du programme dans une boucle de répétition selon le nb demandé par utilisateur 

print("Combien de vers veux-tu générer?")
nombre_lignes = int(raw_input()) 
    
for compteur in range (0, nombre_lignes): 
    new_article = choice(article)
    new_nom = choice(nom)
    new_complement = choice(complement)
    new_verbe = choice(verbe) 
    print(new_article + " " + new_nom + " " + new_complement + " " + new_verbe)

Shuffle.py

with open ('Poetry','r') as POEME:
poeme = POEME.read()
lignes = poeme.splitlines()
from random import *  
shuffle(lignes) 
for lignes in lignes : 
    print(lignes)
Saut a la ligne,
transformiste.
m'avaient donne
une mission :
Repetition,
C'est un secret.
Cest nomr ou blanc 
Cest vrai ou faux
Zeros et uns
touts est tres claire
un ou zero 
L ORDINATEUR
larme amme bien 
Zeros et uns
Les editions
le code binaire 
Rythment le cod(e).
un grand roman
Circuits Immenses
"Le Canape"


touts est tres claire
le code binaire 
un ou zero 
m'avaient donne
transformiste.
Zeros et uns
larme amme bien 
Saut a la ligne,
Cest vrai ou faux
un grand roman
"Le Canape"
Les editions
Cest nomr ou blanc 
Repetition,
une mission :
Zeros et uns
Rythment le cod(e).
C'est un secret.
L ORDINATEUR
Circuits Immenses

Manipulation trouvée via https://fiches-isn.readthedocs.io/fr/latest/random.html

Édition

3 livrets : énoncé, résultat et code source. 
3 pages HTML + 3 feuilles de style.

Étapes de travail :

  • travail sur des schémas (système de mise en page extensible)
  • mise en commun
  • mise en place