#1351 Le 13/06/2013, à 20:06
- ljere
Re : /* Topic des codeurs [8] */
je vais donc continuer avec l'adaptation du script wificheck
je voudrais donc des avis sur les lib à utiliser
je pense utiliser os et sys pour lancer les commandes systèmes je vais avoir besoin de sudo est ce que ça peut être gênant
je pense ensuite que le fichier ainsi constitué pourrait directement être envoyé sur le forum donc authentification nécessaire
pour que le script soit facilement utilisable il faudrait une fenêtre qui propose les choix suivants
mot de passe du pc:
votre pseudo:
votre mot de passe du forum:
l'url ou envoyé le retour:
qu'en pensez vous?
ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon
Hors ligne
#1352 Le 13/06/2013, à 21:11
- grim7reaper
Re : /* Topic des codeurs [8] */
@ljere : j’ai pas trop compris ce que tu voulais dire dans ton message de 19:23.
Dans quel cas ça fonctionne et dans quel cas ça plante ?
coucou
Pour le scrapping, la dernière fois que j'ai fait ça, j'ai pris lxml (qui peut prendre une adresse web directement en paramettre) et c'était très bien, mieux que beautifulsoup je dirais, mais bon, ça fait des années que je n'ai pas touché ce dernier (le bot des couches tards :]).
Salut
Ouais, sympa lxml.
Ça ressemble à Nokogiri en Ruby (sur le fait que l’on puisse faire du xpath ou utiliser le css selector).
Du coup, on y gagne pas mal.
Genre :
def liste(address, filename):
url = urlopen(address, timeout=10)
encoding = url.headers['content-type'].split('charset=')[-1]
page = url.read().decode(encoding)
parser = BeautifulSoup(page)
table = parser('tbody')[0]
rows = table('tr')
with open(filename, mode='w', encoding='utf-8') as fichier:
for row in rows:
fichier.write(row('td')[1].a['title'] + '\n')
devient
def liste(address, filename):
page = lh.parse(address).getroot()
with open(filename, mode='w', encoding='utf-8') as fichier:
for link in page.xpath('//tbody[1]/tr/td[2]/a[1]'):
fichier.write(link.get('title') + '\n')
Sinon requests est extrèmement populaire, c'est vraiment une bonne lib, avec une interface bien foutus, c'est le genre qui fait "90% du besoin, avec 10% de la complexité", et c'est très bien comme ça.
requests est au scrapping ce que D est au C++, c’est ça ?
je pense utiliser os et sys pour lancer les commandes systèmes je vais avoir besoin de sudo est ce que ça peut être gênant
Pour sudo, le plus simple c’est peut-être de lancer le script avec, non ?
je pense ensuite que le fichier ainsi constitué pourrait directement être envoyé sur le forum donc authentification nécessaire
Bah requests semble le bon choix, confirmé par M. Python (alias tshirtman)
pour que le script soit facilement utilisable il faudrait une fenêtre qui propose les choix suivants
mot de passe du pc:
votre pseudo:
votre mot de passe du forum:
l'url ou envoyé le retour:
qu'en pensez vous?
Ça me semble pas mal oui. Et pour un truc aussi simple, TkInter qui est fourni de base avec Python devrait être suffisant.
Sinon, si tes problèmes avec BeautifulSoup persiste je plussoie l’utilisation de lxml
Dernière modification par grim7reaper (Le 13/06/2013, à 21:27)
Hors ligne
#1353 Le 13/06/2013, à 21:38
- ljere
Re : /* Topic des codeurs [8] */
pour mon message de 19:23 le problème c'est réglé tout seul apparemment vu que je n'ai rien modifié dans le script,
je l'avais juste entre temps testé dans une console python3 essai d'ailleurs concluant donc tout va bien je retesterai demain pour être sure encore merci pour ton aide
sur ceux bonne nuit
ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon
Hors ligne
#1354 Le 14/06/2013, à 12:19
- Dr Le Rouge
Re : /* Topic des codeurs [8] */
Je vais devoir me mettre à l'assembleur.
C'est deux suites de Cauchy qui veulent aller à la soirée 'no limit'. Hélas, à l'entrée le videur leur dit : "désolé, c'est complet !".
mon site perso (π²/6.fr) et mon blog
Hors ligne
#1355 Le 14/06/2013, à 12:31
- grim7reaper
Hors ligne
#1356 Le 14/06/2013, à 13:06
- ljere
Re : /* Topic des codeurs [8] */
d’après mes recherches si j'ai bien compris on doit envoyer au forum pour se faire authentifier une url du type
form_sent=1&redirect_url=http%3A%2F%2Fforum.ubuntu-fr.org%2Findex.php&req_username=monpseudo&req_password=motdepasse&login=Identification
ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon
Hors ligne
#1357 Le 14/06/2013, à 13:10
- Shanx
Re : /* Topic des codeurs [8] */
d’après mes recherches si j'ai bien compris on doit envoyer au forum pour se faire authentifier une url du type
form_sent=1&redirect_url=http%3A%2F%2Fforum.ubuntu-fr.org%2Findex.php&req_username=monpseudo&req_password=motdepasse&login=Identification
Ça ressemble à une requête de type GET. Et honnêtement, ça m’étonnerait que le forum utilise ça, vu que le mot de passe circule en clair sur le réseau.
Je ne sais pas du tout si ça fonctionne pour les sites internet, mais une identification utilisant un truc du genre EAP ou CHAP me semble plus plausible.
Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied
Hors ligne
#1358 Le 14/06/2013, à 13:25
- Pylades
Re : /* Topic des codeurs [8] */
À ton avis, pourquoi nesthib recommande-t-il aux modos de se connecter en HTTPS ?
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#1359 Le 14/06/2013, à 13:27
- Shanx
Re : /* Topic des codeurs [8] */
Sérieux ? Oo’
Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied
Hors ligne
#1360 Le 14/06/2013, à 13:37
- Dr Le Rouge
Re : /* Topic des codeurs [8] */
@ grim : lire (pour l'instant) mais si le deuxième doctorant que mes chefs recrutent n'a de compétences que théoriques (maths/théorie de la complexité, etc), il va falloir que je m'y mette sérieusement >_<"
C'est deux suites de Cauchy qui veulent aller à la soirée 'no limit'. Hélas, à l'entrée le videur leur dit : "désolé, c'est complet !".
mon site perso (π²/6.fr) et mon blog
Hors ligne
#1361 Le 14/06/2013, à 13:44
- grim7reaper
Re : /* Topic des codeurs [8] */
@ljere : tu essayes de te connecter avec quelle bibliothèque ?
@Le Rouge : et ça serait pour écrire quoi en assembleur ?
Nan, parce que dans 90% des cas quand je vois des gens écrire de l’assembleur ça donne du code moins bon que le compilo’ et en plus ça gêne ce dernier pour faire son boulot d’optimisation.
Les 10% restant, c’est soit parce que le mec sait ce qu’il fait (et sait comment fonctionne le modèle de proc‘ sur lequel il bosse) et/ou cas spéciaux (genre vectorisation où les compilo’ ont encore un peu de mal à le faire seul si ce n’est pas évident).
Hors ligne
#1362 Le 14/06/2013, à 13:49
- Dr Le Rouge
Re : /* Topic des codeurs [8] */
Pour implémenter des primitives cryptographiques. Note qu'à mon avis je ne vais pas étudier d'asm sur du x86 tout mignon mais sur des processeurs beaucoup moins puissants (capteur, etc). En (très) gros, je bosse sur les trucs du style du chiffre PRESENT.
C'est deux suites de Cauchy qui veulent aller à la soirée 'no limit'. Hélas, à l'entrée le videur leur dit : "désolé, c'est complet !".
mon site perso (π²/6.fr) et mon blog
Hors ligne
#1363 Le 14/06/2013, à 13:51
- Kanor
Re : /* Topic des codeurs [8] */
ljere a écrit :d’après mes recherches si j'ai bien compris on doit envoyer au forum pour se faire authentifier une url du type
form_sent=1&redirect_url=http%3A%2F%2Fforum.ubuntu-fr.org%2Findex.php&req_username=monpseudo&req_password=motdepasse&login=IdentificationÇa ressemble à une requête de type GET. Et honnêtement, ça m’étonnerait que le forum utilise ça, vu que le mot de passe circule en clair sur le réseau.
Je ne sais pas du tout si ça fonctionne pour les sites internet, mais une identification utilisant un truc du genre EAP ou CHAP me semble plus plausible.
euh non les identifications sur les site web c'est ouveert
une identifications sans https, je pense que c'est aussi bien de supprimer l’identification.
Et identification se fait avec une méthode POST sur le forum (mais ça change rien niveau sécurité sauf pour ne pas avoir l'url d'enregistré dans l'historique du navigateur )
Dernière modification par Kanor (Le 14/06/2013, à 13:55)
Hors ligne
#1364 Le 14/06/2013, à 13:52
- grim7reaper
Re : /* Topic des codeurs [8] */
Pour implémenter des primitives cryptographiques.
Du genre ?
Note qu'à mon avis je ne vais pas étudier d'asm sur du x86 tout mignon mais sur des processeurs beaucoup moins puissants (capteur, etc).
Ha ouais, du coup si tu tombes sur un compilo’ fait par le fabriquant et que le complio’ est moisi tu as tes chances.
Dans tout les cas, faudra bencher.
@ljere : si tu utilises requests, le code suivant fonctionne pour moi :
#!/usr/bin/env python3
import requests
payload = { 'req_username' : 'XXX',
'req_password' : 'YYY',
'redirect_url' : 'http://forum.kubuntu-fr.org/',
'form_sent' : '1' }
r = requests.post('http://forum.kubuntu-fr.org/login.php?action=in', payload)
print(r.cookies)
Dernière modification par grim7reaper (Le 14/06/2013, à 14:14)
Hors ligne
#1365 Le 14/06/2013, à 13:56
- Dr Le Rouge
Re : /* Topic des codeurs [8] */
Le Rouge a écrit :Pour implémenter des primitives cryptographiques.
Du genre ?
Chiffrement, fonction de hâchage, code d'authentification. C'est tout a priori.
C'est deux suites de Cauchy qui veulent aller à la soirée 'no limit'. Hélas, à l'entrée le videur leur dit : "désolé, c'est complet !".
mon site perso (π²/6.fr) et mon blog
Hors ligne
#1366 Le 14/06/2013, à 14:34
- ljere
Re : /* Topic des codeurs [8] */
je m'y prenais mal j'étais pourtant pas très loin j'en étais la avant que tu me donnes la méthode magique
form = { "req_username" : 'login', "req_password" : 'mot de passe', "redirect_url" : "http://forum.ubuntu-fr.org/", "form_sent" : '1' }
r = requests.post('http://forum.fubuntu-fr.org/login.php?action=in', form)
print(r.cookies)
ps: donc voila ou j'en suis, le fichier est bien créé mais pas envoyé
from subprocess import check_output
import requests
#identification sur le forum
payload = { 'req_username' : 'login',
'req_password' : 'mot de passe',
'redirect_url' : 'http://forum.ubuntu-fr.org/',
'form_sent' : '1' }
r = requests.post('http://forum.ubuntu-fr.org/login.php?action=in', payload)
print(r.cookies)
# /etc/lsb-release
lsb = open('/etc/lsb-release')
# lsusb
lsu = check_output('lsusb').decode('ascii')
# lspci -k -nn | grep -A 3 -i net
lsp = check_output('lspci -k -nn | grep -A 3 -i net', shell=True).decode('ascii')
#création du fichier log
with open('wifi.log', mode='w', encoding='utf-8') as fichier:
fichier.write("[code]"+lsb.read()+lsu+lsp+"[/code]")
#envoi du contenu du log sur le forum
file = ("[code]"+lsb.read()+lsu+lsp+"[/code]")
message = { 'req_message' : file,
'form_sent' : '1' }
requests.post('http://forum.ubuntu-fr.org/viewtopic.php?id=1107651&p=55', message)
Dernière modification par ljere (Le 14/06/2013, à 16:41)
ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon
Hors ligne
#1367 Le 14/06/2013, à 15:56
- Kanor
Re : /* Topic des codeurs [8] */
os.popen
bad
tu doit utiliser ce module pour lancer des commande
http://docs.python.org/2/library/subprocess.html
cat /etc/lsb-release
tu va de faire taper par nesthib pas de cat pour lire un fichier
echo "$(</etc/lsb-release)"
sinon il y a aussi la commande
lsb_release -a
edit: et biensur il y a pas besoin de bash pour ça
file_obj = open('/etc/lsb-release')
ta requête n'est pas bonne, regarde dans firebug dans l'onglet réseau pour voir les paramètre nécessaire.
Dernière modification par Kanor (Le 14/06/2013, à 16:01)
Hors ligne
#1368 Le 14/06/2013, à 16:17
- grim7reaper
Re : /* Topic des codeurs [8] */
Comme Kanor l’a fait remarqué, pas besoin de cat ici.
Python lit très bien les fichiers :
with open('/etc/lsb-release', encoding='ascii') as fp:
lsb = fp.read()
Sinon, ton popen fonctionnait mal car c’est comme un fichier que tu ouvres.
Après, il faut lire avec read, puis le fermer avec close.
Ou alors, on utilise with
with popen('lsusb') as lsusb:
lsu = lsusb.read()
Ou alors, avec le module subprocess , encore plus simple :
from subprocess import check_output
lsu = check_output('lsusb').decode('ascii')
lsp = check_output('lspci -k -nn | grep -A 3 -i net', shell=True).decode('ascii')
shell=True est à utiliser si tu veux que ta commande soit dans une unique chaîne de caractères, cf. la doc’.
Bon, ça ne résout pas le problème d’envoi du message sur le forum. Mais au moins ça corrige le contenu du message ^^
Dernière modification par grim7reaper (Le 14/06/2013, à 16:20)
Hors ligne
#1369 Le 14/06/2013, à 16:34
- Kanor
Re : /* Topic des codeurs [8] */
Bon, ça ne résout pas le problème d’envoi du message sur le forum. Mais au moins ça corrige le contenu du message ^^
C'est mieux de trouver tout seul
Hors ligne
#1370 Le 14/06/2013, à 16:42
- ljere
Re : /* Topic des codeurs [8] */
j'ai modifié le script ci dessus merci de votre aide ^^
Dernière modification par ljere (Le 14/06/2013, à 16:44)
ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon
Hors ligne
#1371 Le 14/06/2013, à 16:59
- amj
Re : /* Topic des codeurs [8] */
Salut
@ljere ce que tu cherches pour se connecter au forum doit se trouver sur le compteur couche tard
compteur_couche_tard.py
Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.
Hors ligne
#1372 Le 14/06/2013, à 17:06
- ljere
Re : /* Topic des codeurs [8] */
merci amj j'ai déjà ce script ainsi que celui des lèves tôt qui tourne sur mon serveur,
d'ailleurs le prochain objectif sera une réécriture de zéro de ce compteur en python3 car ils sont en python2
je dirai même que l'info se trouve ici
file = open('url','r')
tid = file.readline().split('=')[1] # la premiere ligne contenant l'addresse du topic.
file.close()
fp = mechanize.urlopen("http://forum.ubuntu-fr.org/post.php?tid="+tid)
forms = mechanize.ParseResponse(fp)
fp.close()
form = forms[1]
file = open("count","r")
form["req_message"] = file.read()
fp = mechanize.urlopen(form.click())
file.close()
fp.close()
j'ai essayé d'adapter en
message = { 'req_message' : file,
'redirect_url' : 'http://forum.ubuntu-fr.org/',
'form_sent' : '1' }
requests.post('http://forum.ubuntu-fr.org/post.php?tid=http://forum.ubuntu-fr.org/viewtopic.php?id=1107651&p=55?action=in', message)
mais visiblement je suis trop bête ça ne fonctionne toujours pas
Dernière modification par ljere (Le 14/06/2013, à 18:30)
ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon
Hors ligne
#1373 Le 14/06/2013, à 18:46
- grim7reaper
Re : /* Topic des codeurs [8] */
Je penche que le code correct doit ressembler à ça :
msg_info = { 'req_message': 'hello world', 'form_sent': '1' }
requests.post('http://forum.kubuntu-fr.org/post.php?tid=1107651', msg_info, cookies=cookies)
Le tid c’est juste le Topic ID, pas l’url complète comme tu sembles le faire.
cookies étant les cookies que tu récupères après t’être identifié.
Cela dit, ça ne fonctionne pas non plus donc il doit encore manquer quelque chose.
Hors ligne
#1374 Le 14/06/2013, à 19:41
- ljere
Re : /* Topic des codeurs [8] */
merci grim7reaper tu es trop fort je n'aurai jamais pensé à utiliser le cookies que je pensai acquis je commençais à devenir dingue
voici donc le code fonctionnel
from subprocess import check_output
import requests
#identification sur le forum
payload = { 'req_username' : 'saeba-ryo',
'req_password' : 'mot de passe',
'redirect_url' : 'http://forum.ubuntu-fr.org/',
'form_sent' : '1' }
r = requests.post('http://forum.ubuntu-fr.org/login.php?action=in', payload)
cookies = (r.cookies)
# /etc/lsb-release
lsb = open('/etc/lsb-release')
# lsusb
lsu = check_output('lsusb').decode('ascii')
# lspci -k -nn | grep -A 3 -i net
lsp = check_output('lspci -k -nn | grep -A 3 -i net', shell=True).decode('ascii')
file = ("[code]"+lsb.read()+lsu+lsp+"[/code]")
#création du fichier log
with open('wifi.log', mode='w', encoding='utf-8') as fichier:
fichier.write(file)
#envoi du contenu du log sur le forum
message = { 'req_message' : file,
'form_sent' : '1' }
requests.post('http://forum.ubuntu-fr.org/post.php?tid=1107651&p=55?action=in', message, cookies=cookies)
Dernière modification par ljere (Le 14/06/2013, à 20:35)
ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon
Hors ligne
#1375 Le 14/06/2013, à 19:49
- grim7reaper
Re : /* Topic des codeurs [8] */
Bah pour le coup c’est toi qui est balèze.
Moi ça ne fonctionne toujours pas ^^'
Je vais essayer avec ton script, c’est bizarre car je ne vois pas trop de différence avec ce que je fais.
Édit : bon bah ça fonctionne avec le tien, il faut que je regarde ça de plus près alors.
Dernière modification par grim7reaper (Le 14/06/2013, à 19:51)
Hors ligne