Utilisateur:Mathus
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")