Différences entre les versions de « Utilisateur:Mathus »
| (15 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 1 : | Ligne 1 : | ||
| + | [[Fichier:courrier_3.jpg]]  | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | Bots resultat:   | ||
| + | |||
| + | 2 bots. Le 1e choisit un article du figaro au hasard et en extrait un commentaire qu'il poste sur twitter. Le 2e surveille le premier recupère son dernier tweet et y répond, aussi avec un commentaire du figaro au hasard.  | ||
| + | |||
| + | |||
| + | Bots idée:  | ||
| + | |||
| + | -2 bots twitter qui discutent, la nature de la discussion doit encore être défini. (ex possible: des lignes de dialogues tirés de 2 scripts différents)  | ||
| + | -un bot qui cherche d'autres bots et tente de dialoguer avec eux  | ||
| + | |||
| + | 1- Bot 1 va chercher un article d'actualité  | ||
| + | -Chercher un article de manière random sur 20minutes.fr   | ||
| + | |||
| + | 2- Bot 1 tweete l'article avec précédé d'une opinion (J'aime/j'aime pas)  | ||
| + | |||
| + | 3- Bot 2 Commente le tweet de Bot 1 avec un avis contraire + un argument  | ||
| + | -l'argument sera tiré d'un des commentaires de l'article selon la structure suivante [c'est faux car]+[commentaire] [tu as tort car]+[commentaire] (les 1e parties de phrases seront tirées d'une liste préfaite)  | ||
| + | |||
| + | 4- Bot 1 contre-argumente   | ||
| + | [pas du tout,]+[commentaire], [j'ai raison car]+[commentaire] (une autre liste  | ||
| + | |||
| + | 5- Bot 2 re-contre-argumente  | ||
| + | |||
| + | 6- Le 1e bot a cours d'arguments (plus de commentaires) insulte l'autre   | ||
| + | [créer une liste d'insultes]  | ||
| + | |||
| + | 7- l'autre Bot commence également à l'insulter  | ||
| + | |||
| + | 8-fin du cycle on recommence  | ||
| + | |||
| + | Le lien vers les comptes twitter:  | ||
| + | https://twitter.com/griboul27245981  | ||
| + | https://twitter.com/BigRival2000  | ||
| + | |||
| + | Bot1  | ||
| + | <syntaxhighlight lang = "python" >  | ||
| + | |||
| + | #la librairie qui permet de se connecter au site  | ||
| + | import mechanize  | ||
| + | #la librairie qui permet d'analyser la structure html  | ||
| + | import lxml.html  | ||
| + | #la librairie qui permet de sélectionner une info dans la structure html  | ||
| + | import cssselect  | ||
| + | import random  | ||
| + | import tweepy  | ||
| + | import ssl  | ||
| + | |||
| + | def getHtmlElements(url, selecteurCss):  | ||
| + |     #1. télécharger la source html de la page url  | ||
| + |     browser = mechanize.Browser()  | ||
| + |     browser.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]  | ||
| + |     browser.set_handle_robots(False)  | ||
| + | |||
| + |     #problème https  | ||
| + |     browser.set_ca_data(context=ssl._create_unverified_context(cert_reqs=ssl.CERT_NONE))  | ||
| + | |||
| + |     data = browser.open(url, timeout=10)  | ||
| + | |||
| + |     '''with open("output.txt", 'w') as f:  | ||
| + |         f.write(str(data.read()))'''  | ||
| + | |||
| + | |||
| + |     #2. analyser la source et la transformer en structure html navigable  | ||
| + |     source = data.read()  | ||
| + | |||
| + |     html = lxml.html.fromstring(source.decode('utf-8'))  | ||
| + | |||
| + | |||
| + |     #3. viser l'information qui nous intéresse  | ||
| + | |||
| + |     #convertir mon sélecteur css en objet cssselect  | ||
| + |     selecteurs = cssselect.parse(selecteurCss)  | ||
| + |         #0  | ||
| + |     #[objet cssselect]  | ||
| + | |||
| + |     selecteur = selecteurs[0]  | ||
| + | |||
| + |     chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(selecteur)  | ||
| + | |||
| + |     resultats = html.xpath(chemin_xpath)  | ||
| + | |||
| + |     return resultats  | ||
| + |     #print(resultats)  | ||
| + | |||
| + | |||
| + | #1. aller chercher les derniers liens vers les articles  | ||
| + | links = getHtmlElements('https://www.lefigaro.fr/elections/presidentielles', '.fig-main-col article > a')  | ||
| + | |||
| + | goodLinks = []  | ||
| + | |||
| + | for link in links:  | ||
| + |     goodLinks.append(link.get('href'))  | ||
| + | |||
| + | #2. prendre un lien au hasard  | ||
| + | link = random.choice(goodLinks)  | ||
| + | |||
| + | #3. aller chercher les commentaires de l'article  | ||
| + | comments = getHtmlElements(link, '.fig-comment__text')  | ||
| + | |||
| + | message = link  | ||
| + | |||
| + | |||
| + | #for comment in comments:  | ||
| + | #    print(str(comment.text_content()))  | ||
| + | comment = random.choice(comments)  | ||
| + | comment = str(comment.text_content())  | ||
| + | print(message, comment)  | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | #tweetter  | ||
| + | auth = tweepy.OAuthHandler('U8heHxw30x44znHzjcS03ryHT', 'IuOWfUhNKM0Nco7cGrO68LxKIEQz7x6sjQS9GMnGzXYhEj3Cv4')  | ||
| + | |||
| + | auth.set_access_token('1490622426241249281-ZO8TLflknF3UppuPOYSxwplOSBNtDI', 'XMcGyTCJVizugYnc3FXFZnLfcB3BbHysjPedNBoLaK7cK')  | ||
| + | api = tweepy.API(auth)  | ||
| + | |||
| + | status = comment  | ||
| + | |||
| + | |||
| + | api.update_status(status)  | ||
| + | |||
| + | |||
| + | </syntaxhighlight>  | ||
| + | |||
| + | Bot2:  | ||
| + | <syntaxhighlight lang = "python" >  | ||
| + | #la librairie qui permet de se connecter au site  | ||
| + | import mechanize  | ||
| + | #la librairie qui permet d'analyser la structure html  | ||
| + | import lxml.html  | ||
| + | #la librairie qui permet de sélectionner une info dans la structure html  | ||
| + | import cssselect  | ||
| + | import random  | ||
| + | import tweepy  | ||
| + | |||
| + | import ssl  | ||
| + | |||
| + | |||
| + | def getHtmlElements(url, selecteurCss):  | ||
| + |     #1. télécharger la source html de la page url  | ||
| + |     browser = mechanize.Browser()  | ||
| + |     browser.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]  | ||
| + |     browser.set_handle_robots(False)  | ||
| + | |||
| + |     #problème https  | ||
| + |     browser.set_ca_data(context=ssl._create_unverified_context(cert_reqs=ssl.CERT_NONE))  | ||
| + | |||
| + |     data = browser.open(url, timeout=10)  | ||
| + | |||
| + |     '''with open("output.txt", 'w') as f:  | ||
| + |         f.write(str(data.read()))'''  | ||
| + | |||
| + | |||
| + |     #2. analyser la source et la transformer en structure html navigable  | ||
| + |     source = data.read()  | ||
| + | |||
| + |     html = lxml.html.fromstring(source.decode('utf-8'))  | ||
| + | |||
| + | |||
| + |     #3. viser l'information qui nous intéresse  | ||
| + | |||
| + |     #convertir mon sélecteur css en objet cssselect  | ||
| + |     selecteurs = cssselect.parse(selecteurCss)  | ||
| + |         #0  | ||
| + |     #[objet cssselect]  | ||
| + | |||
| + |     selecteur = selecteurs[0]  | ||
| + | |||
| + |     chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(selecteur)  | ||
| + | |||
| + |     resultats = html.xpath(chemin_xpath)  | ||
| + | |||
| + |     return resultats  | ||
| + |     #print(resultats)  | ||
| + | |||
| + | |||
| + | #1. aller chercher les derniers liens vers les articles  | ||
| + | links = getHtmlElements('https://www.lefigaro.fr/elections/presidentielles', '.fig-main-col article > a')  | ||
| + | |||
| + | goodLinks = []  | ||
| + | |||
| + | for link in links:  | ||
| + |     goodLinks.append(link.get('href'))  | ||
| + | |||
| + | #2. prendre un lien au hasard  | ||
| + | link = random.choice(goodLinks)  | ||
| + | |||
| + | #3. aller chercher les commentaires de l'article  | ||
| + | comments = getHtmlElements(link, '.fig-comment__text')  | ||
| + | |||
| + | message = link  | ||
| + | |||
| + | |||
| + | |||
| + | #for comment in comments:  | ||
| + | #    print(str(comment.text_content()))  | ||
| + | comment = random.choice(comments)  | ||
| + | comment = str(comment.text_content())  | ||
| + | print(message, comment)  | ||
| + | |||
| + | |||
| + | #tweetter  | ||
| + | auth = tweepy.OAuthHandler('shRzAtjo36uMki6uMN6RhmKAG', 'URU2iLkQ0UlhCF0EhedVITfjWMOctfPSRAkzCBRt49wFtS4IiD')  | ||
| + | |||
| + | auth.set_access_token('1508360194945957890-90TjYzr9GjsEPn1sRffTMtAH4lbPba', 'MgRs6GAuuDbDCQST1x9UvhZrJvlXhRMNeVSNJ3Tq47fYZ')  | ||
| + | api = tweepy.API(auth)  | ||
| + | |||
| + | |||
| + | status = comment  | ||
| + | tweetId = '1517078566080761856'  | ||
| + | |||
| + | |||
| + | #api.update_status(status, in_reply_to_status_id = tweetId, auto_populate_reply_metadata = True)  | ||
| + | |||
| + | |||
| + | # fetching the user  | ||
| + | user = api.get_user(screen_name = 'griboul27245981')  | ||
| + | |||
| + | # fetching the ID  | ||
| + | ID = user.id_str  | ||
| + | |||
| + | print("The ID of the user is : " + ID)  | ||
| + | |||
| + | last_tweet = api.user_timeline(id = ID, count = 1)  | ||
| + | |||
| + | print(last_tweet[0].id)  | ||
| + | |||
| + | status = comment  | ||
| + | tweetId = last_tweet[0].id  | ||
| + | |||
| + | |||
| + | api.update_status(status, in_reply_to_status_id = tweetId, auto_populate_reply_metadata = True)  | ||
| + | |||
| + | </syntaxhighlight>  | ||
| + | |||
Poeme édition  | Poeme édition  | ||
Principe: à chaque page l'espaces entre les mots augmente  | Principe: à chaque page l'espaces entre les mots augmente  | ||
| − | <syntaxhighlight lang = "  | + | <syntaxhighlight lang = "python" > <!DOCTYPE html>  | 
| − | |||
| − | |||
<html>  | <html>  | ||
     <head>  |      <head>  | ||
Version actuelle datée du 24 mai 2022 à 13:44
Bots resultat:
2 bots. Le 1e choisit un article du figaro au hasard et en extrait un commentaire qu'il poste sur twitter. Le 2e surveille le premier recupère son dernier tweet et y répond, aussi avec un commentaire du figaro au hasard.
Bots idée:
-2 bots twitter qui discutent, la nature de la discussion doit encore être défini. (ex possible: des lignes de dialogues tirés de 2 scripts différents) -un bot qui cherche d'autres bots et tente de dialoguer avec eux
1- Bot 1 va chercher un article d'actualité -Chercher un article de manière random sur 20minutes.fr
2- Bot 1 tweete l'article avec précédé d'une opinion (J'aime/j'aime pas)
3- Bot 2 Commente le tweet de Bot 1 avec un avis contraire + un argument -l'argument sera tiré d'un des commentaires de l'article selon la structure suivante [c'est faux car]+[commentaire] [tu as tort car]+[commentaire] (les 1e parties de phrases seront tirées d'une liste préfaite)
4- Bot 1 contre-argumente [pas du tout,]+[commentaire], [j'ai raison car]+[commentaire] (une autre liste
5- Bot 2 re-contre-argumente
6- Le 1e bot a cours d'arguments (plus de commentaires) insulte l'autre [créer une liste d'insultes]
7- l'autre Bot commence également à l'insulter
8-fin du cycle on recommence
Le lien vers les comptes twitter: https://twitter.com/griboul27245981 https://twitter.com/BigRival2000
Bot1
#la librairie qui permet de se connecter au site
import mechanize
#la librairie qui permet d'analyser la structure html
import lxml.html
#la librairie qui permet de sélectionner une info dans la structure html
import cssselect
import random
import tweepy
import ssl
 
def getHtmlElements(url, selecteurCss):
    #1. télécharger la source html de la page url
    browser = mechanize.Browser()
    browser.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
    browser.set_handle_robots(False)
 
    #problème https
    browser.set_ca_data(context=ssl._create_unverified_context(cert_reqs=ssl.CERT_NONE))
 
    data = browser.open(url, timeout=10)
 
    '''with open("output.txt", 'w') as f:
        f.write(str(data.read()))'''
 
 
    #2. analyser la source et la transformer en structure html navigable
    source = data.read()
 
    html = lxml.html.fromstring(source.decode('utf-8'))
 
 
    #3. viser l'information qui nous intéresse
 
    #convertir mon sélecteur css en objet cssselect
    selecteurs = cssselect.parse(selecteurCss)
        #0
    #[objet cssselect]
 
    selecteur = selecteurs[0]
 
    chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(selecteur)
 
    resultats = html.xpath(chemin_xpath)
 
    return resultats
    #print(resultats)
 
 
#1. aller chercher les derniers liens vers les articles
links = getHtmlElements('https://www.lefigaro.fr/elections/presidentielles', '.fig-main-col article > a')
 
goodLinks = []
 
for link in links:
    goodLinks.append(link.get('href'))
 
#2. prendre un lien au hasard
link = random.choice(goodLinks)
 
#3. aller chercher les commentaires de l'article
comments = getHtmlElements(link, '.fig-comment__text')
 
message = link
 
 
#for comment in comments:
#    print(str(comment.text_content()))
comment = random.choice(comments)
comment = str(comment.text_content())
print(message, comment)
#tweetter
auth = tweepy.OAuthHandler('U8heHxw30x44znHzjcS03ryHT', 'IuOWfUhNKM0Nco7cGrO68LxKIEQz7x6sjQS9GMnGzXYhEj3Cv4')
 
auth.set_access_token('1490622426241249281-ZO8TLflknF3UppuPOYSxwplOSBNtDI', 'XMcGyTCJVizugYnc3FXFZnLfcB3BbHysjPedNBoLaK7cK')
api = tweepy.API(auth)
status = comment
api.update_status(status)
Bot2:
#la librairie qui permet de se connecter au site
import mechanize
#la librairie qui permet d'analyser la structure html
import lxml.html
#la librairie qui permet de sélectionner une info dans la structure html
import cssselect
import random
import tweepy
 
import ssl
def getHtmlElements(url, selecteurCss):
    #1. télécharger la source html de la page url
    browser = mechanize.Browser()
    browser.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
    browser.set_handle_robots(False)
 
    #problème https
    browser.set_ca_data(context=ssl._create_unverified_context(cert_reqs=ssl.CERT_NONE))
 
    data = browser.open(url, timeout=10)
 
    '''with open("output.txt", 'w') as f:
        f.write(str(data.read()))'''
 
 
    #2. analyser la source et la transformer en structure html navigable
    source = data.read()
 
    html = lxml.html.fromstring(source.decode('utf-8'))
 
 
    #3. viser l'information qui nous intéresse
 
    #convertir mon sélecteur css en objet cssselect
    selecteurs = cssselect.parse(selecteurCss)
        #0
    #[objet cssselect]
 
    selecteur = selecteurs[0]
 
    chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(selecteur)
 
    resultats = html.xpath(chemin_xpath)
 
    return resultats
    #print(resultats)
 
 
#1. aller chercher les derniers liens vers les articles
links = getHtmlElements('https://www.lefigaro.fr/elections/presidentielles', '.fig-main-col article > a')
 
goodLinks = []
 
for link in links:
    goodLinks.append(link.get('href'))
 
#2. prendre un lien au hasard
link = random.choice(goodLinks)
 
#3. aller chercher les commentaires de l'article
comments = getHtmlElements(link, '.fig-comment__text')
 
message = link
 
#for comment in comments:
#    print(str(comment.text_content()))
comment = random.choice(comments)
comment = str(comment.text_content())
print(message, comment)
#tweetter
auth = tweepy.OAuthHandler('shRzAtjo36uMki6uMN6RhmKAG', 'URU2iLkQ0UlhCF0EhedVITfjWMOctfPSRAkzCBRt49wFtS4IiD')
 
auth.set_access_token('1508360194945957890-90TjYzr9GjsEPn1sRffTMtAH4lbPba', 'MgRs6GAuuDbDCQST1x9UvhZrJvlXhRMNeVSNJ3Tq47fYZ')
api = tweepy.API(auth)
status = comment
tweetId = '1517078566080761856'
#api.update_status(status, in_reply_to_status_id = tweetId, auto_populate_reply_metadata = True)
  
# fetching the user
user = api.get_user(screen_name = 'griboul27245981')
  
# fetching the ID
ID = user.id_str
  
print("The ID of the user is : " + ID)
last_tweet = api.user_timeline(id = ID, count = 1)
print(last_tweet[0].id)
status = comment
tweetId = last_tweet[0].id
api.update_status(status, in_reply_to_status_id = tweetId, auto_populate_reply_metadata = True)
Poeme édition
Principe: à chaque page l'espaces entre les mots augmente
 <!DOCTYPE html>
<html>
    <head>
        <title>positions css</title>
        <link rel="stylesheet" href="style.css" type="text/css">
        <meta charset="utf-8">
    </head>
<body>
<section class="page">
    <p>
        une pie blanche dans le ciel 
J'ai des cheveux  
A'Z\x177W[{;;S/\x17{W\x17S;\x1bW[K;S~ 
Wesh la zone 
Ou est la mer, vive le vent 
a;rS\x17CK\x17'KS; 
[CKg\x1bS[C\x17K; 
Je suis telle une rose... Delicate et qui embaume... 
As'tu vu mon nez Tout elumine 
Chemin prevu Sillon trace 
J'espere ce qui m'est interdit 
O \x15age 
O Desespoir 
O Vieillesse ennemie 
une        pie        blanche        dans        le        ciel        
J'ai        des        cheveux                
A'Z\x177W[{;;S/\x17{W\x17S;\x1bW[K;S~        
Wesh        la        zone        
Ou        est        la        mer,        vive        le        vent        
a;rS\x17CK\x17'KS;        
[CKg\x1bS[C\x17K;        
Je        suis        telle        une        rose...        Delicate        et        qui        embaume...        
As'tu        vu        mon        nez        Tout        elumine        
Chemin        prevu        Sillon        trace        
J'espere        ce        qui        m'est        interdit        
O        \x15age        
O        Desespoir        
O        Vieillesse        ennemie        
une        pie        blanche        dans        le        ciel        
J'ai        des        cheveux                
A'Z\x177W[{;;S/\x17{W\x17S;\x1bW[K;S~        
Wesh        la        zone        
Ou        est        la        mer,        vive        le        vent        
a;rS\x17CK\x17'KS;        
[CKg\x1bS[C\x17K;        
Je        suis        telle        une        rose...        Delicate        et        qui        embaume...        
As'tu        vu        mon        nez        Tout        elumine        
Chemin        prevu        Sillon        trace        
J'espere        ce        qui        m'est        interdit        
O        \x15age        
O        Desespoir        
O        Vieillesse        ennemie        
une        pie        blanche        dans        le        ciel        
J'ai        des        cheveux                
A'Z\x177W[{;;S/\x17{W\x17S;\x1bW[K;S~        
Wesh        la        zone        
Ou        est        la        mer,        vive        le        vent        
a;rS\x17CK\x17'KS;        
[CKg\x1bS[C\x17K;        
Je        suis        telle        une        rose...        Delicate        et        qui        embaume...        
As'tu        vu        mon        nez        Tout        elumine        
Chemin        prevu        Sillon        trace        
J'espere        ce        qui        m'est        interdit        
O        \x15age        
O        Desespoir        
O        Vieillesse        ennemie        
une        pie        blanche        dans        le        ciel        
J'ai        des        cheveux                
A'Z\x177W[{;;S/\x17{W\x17S;\x1bW[K;S~        
Wesh        la        zone        
Ou        est        la        mer,        vive        le        vent        
a;rS\x17CK\x17'KS;        
[CKg\x1bS[C\x17K;        
Je        suis        telle        une        rose...        Delicate        et        qui        embaume...        
As'tu        vu        mon        nez        Tout        elumine        
Chemin        prevu        Sillon        trace        
J'espere        ce        qui        m'est        interdit        
O        \x15age        
O        Desespoir        
O        Vieillesse        ennemie        
une        pie        blanche        dans        le        ciel        
J'ai        des        cheveux                
A'Z\x177W[{;;S/\x17{W\x17S;\x1bW[K;S~        
Wesh        la        zone        
Ou        est        la        mer,        vive        le        vent        
a;rS\x17CK\x17'KS;        
[CKg\x1bS[C\x17K;        
     
    </p>
    
    
</section>
<section class="page">
</section>
</body>
</html>
@media print{
    @page{
        size:210mm 297mm;
    }
    section{
        border:none;
    }
}
@font-face {
    font-family: posterama;
    src: url(posterama-regular.ttf);
}
.page {
    width: 180mm;
    height: 260mm;
    padding: 10mm;
    font-family: monospace;
    }
pre {
  font-size: 20px;
}
import time
 
with open('poeme.txt','r') as f_open:
    data = f_open.read()
 
lines = data.splitlines()
resultat = ''
for i in range(1, 5):
    for indice in range(0, len(lines)):
        vers = lines[indice]
        mots = vers.split(' ')
        #print(mots)
        for indiceMot in range(0, len(mots)):
            #print(mots[indiceMot])
            resultat = resultat +  mots[indiceMot]
            for nbEspaces in range(0, i):
                resultat = resultat + ' '
        resultat = resultat + '\n'  
    print(resultat)
    time.sleep(1)
</syntaxhighlight>
# un script qui inverse l'ordre des vers
# un script qui met des mots en majuscules et des points d'exclamations au hasard
# un script qui multiplie certaines lettres ex : au lieu d'ecrire ou il ecrit ouuuuuuuuuuuuuuu
with open('poeme.txt','r') as f_open:
    data = f_open.read()
print(data)
pates = ["Spaghetti", "Penne", "tortellini", "Farfalle", "Fusilli", "Ravioles"]
print("Aime tu les pates ?")
reponse = input()
if  reponse == "non":
        print("Dans ce cas on à rien a se dire")
        exit()
elif reponse == "oui" :
    print("quels sont tes pates préféres ?")
    reponse2 = input()
i =0
while i < 5 :
    if reponse2.lower() == pates[1]:
        print("tu me degoute")
        print("quels sont tes pates préféres ?")
        reponse2 = input()
    
    if reponse2.lower() in pates :
        print("bien")
        i = i+1
        print("quels sont tes pates préféres ?")
        reponse2 = input()
    
    else :
        print("t'es con")
        print("quels sont tes pates préféres ?")
        reponse2 = input()
print("T'aime beaucoup les pates")
