Bernez a écrit 1088 commentaires

  • # MechanicalSoup

    Posté par  . En réponse au message Question de newbie sur la soumission de formulaire avec python-request. Évalué à 3 (+2/-0).

    Voici une solution avec MechanicalSoup, une surcouche à requests et BeautifulSoup (un analyseur de HTML) :

    import re
    from mechanicalsoup import StatefulBrowser
    
    browser = StatefulBrowser()
    browser.open('https://www.e-chargement.com/orsayuniversite/restau/')
    browser.select_form()
    browser['badge_number'] = '12345'
    browser['badge_nom'] = 'Nom Prénom'
    browser.submit_selected()
    for td in browser.page.find_all('td'):
        if td.find(string=re.compile('Solde')):
            break
    print(td.find_next_sibling().string)

    Les variables browser.page et td sont des objets BeautifulSoup. Il faut lire un peu la doc pour comprendre comment ils marchent.

    MechanicalSoup automatise quelques opérations qu'on pourrait réaliser manuellement avec requests. L'idée est d'aller sur la page https://www.e-chargement.com/orsayuniversite/restau/, puis de poster le formulaire, et exploiter la page obtenue.

    Avec requests, ça donnerait un truc du genre :

    session = requests.Session()
    session.get('https://www.e-chargement.com/orsayuniversite/restau/')

    pour initialiser la session. Puis il faut poster le formulaire :

    reponse = session.post('https://www.e-chargement.com/identif_badge.Asp', data={
        'badge_number': '12345', 'badge_nom': 'Nom Prénom', 'badge_div': '1234'
    })

    La valeur de badge_div est celle d'un <input type="hidden"> du formulaire, à récupérer avec BeautifulSoup. Après il reste à exploiter reponse.text.

    Les sessions requests se chargent de gérer les redirections et les cookies.

  • [^] # Re: spécifier l'interface réseau

    Posté par  . En réponse au message Pourquoi ma machine ne répond[rait] à aucun ping IPv6 vers quelque adresses locale que ce soit?. Évalué à 3.

    Les adresses de lien local sont dédiées à un réseau donné et ne sont pas routables.

    Potentiellement, tu pourrais avoir la même adresse sur deux interfaces différentes. L'OS n'étant pas censé lire dans tes pensées, il peut être utile d'expliciter qui tu cherches réellement à contacter.

  • # spécifier l'interface réseau

    Posté par  . En réponse au message Pourquoi ma machine ne répond[rait] à aucun ping IPv6 vers quelque adresses locale que ce soit?. Évalué à 3.

    Dans le temps, il fallait spécifier l'interface réseau pour faire un ping sur une adresse de lien local (en fe80). Tu peux essayer un "ping -6 -I nom_interface_réseau fe80::5d94:9a78:f014:2ab3".

    Ça pourrait aider aussi à comprendre d'avoir les sorties des commandes "ip -6 a" et "ip -6 r".

  • # préjudice subi

    Posté par  . En réponse au message Après les prix des billets opaques c'est l'indemnisation des retards qui devient opaque à la SNCF. Évalué à 1.

    Tu as une métrique objective pour mesurer le préjudice subi ?

  • [^] # Re: Bof

    Posté par  . En réponse à la dépêche Sortie de la version 2.0 de Grisbi, logiciel de comptabilité. Évalué à 6.

    Un logiciel de comptabilité qui ne gère par le "fichier des écritures comptables" est inutile en france aujourd'hui

    Je n'ai aucune idée de ce qu'est un « fichier des écritures comptables » et pourtant j'utilise grisbi pour ma comptabilité personnelle depuis des années avec satisfaction. Je ne sais pas ce qu'il en est pour la compta d'association ou autre, mais il est largement exagéré de dire de façon aussi autoritaire que grisbi est juste « inutile » .

  • # Un syndicat, vraiment ?

    Posté par  . En réponse au journal Comment se faire justice soi-même ?. Évalué à 8.

    Pour le syndicat […] ils attendent 4% de mes gains. C'est rentable.

    Une fois remboursé […] le syndicat

    Tu as pris des gros raccourcis, ou il y a vraiment un « syndicat » qui t'a vendu une prestation de défense d'un travailleur ? C'est un boulot d'avocat ça, pas de syndicaliste. Les syndicats défendent gratuitement. Au pire des syndicalistes ont des décharges, mais ils ne font pas payer les gens qu'ils défendent.

  • [^] # Re: Majuscules accentuées

    Posté par  . En réponse au journal Une histoire d'encodage de caractères. Évalué à 5.

    Avec un linux-fr azerty de base, on a tous les accents en capitales : ÉÀÙÖÔÇ.
    Il suffit de maintenir la touche "CAPS LOCK".

    On peut peut aussi les obtenir en tapant <Shift><AltGr><lettre>. Et pour le tréma et l'accent circonflexe, ça se tape comme sur les minuscules, mais en maintenant <shift> quand on tape la lettre.

  • [^] # Re: coquille

    Posté par  . En réponse à la dépêche Python 3.9 est disponible. Évalué à 2.

    Et aussi :

    l’opérateur n’est pas commutable

    s/commutable/commutatif/

    Les clés/valeurs de droites écrasants celles de gauche

    s/droites/droite/
    s/écrasants/écrasant/

    La situation actuelle repose sur une succession de PEPs (484, 526, 544, 560, et 563) et ont abouti à l’existence d’une hiérarchie

    s/ont abouti/a abouti/

  • # Plateau rectangulaire

    Posté par  . En réponse à la dépêche Trivabble, l’aventure continue. Évalué à 1.

    Bonjour. Sur mon ordi, le plateau est un rectangle bien allongé (en largeur). C'est vraiment laid. Je remarque que le problème ne disparaît pas en redimensionnant la fenêtre de Firefox. Une idée ?

  • # ThinStation

    Posté par  . En réponse au message client leger. Évalué à 4.

    Il y a quelques années j'ai utilisé ThinStation avec un certain succès.

  • [^] # Re: Femmes et hommes sont-ils égaux à vélo ?

    Posté par  . En réponse à la dépêche BRouter, un calcul d’itinéraire libre pour vélo (mais pas que). Évalué à 4.

    les lobbies automobiles […] financent une bonne partie des campagnes sur les casques à vélos

    Aurais-tu des références pour étayer ce propos ?

  • [^] # Re: Bravo !

    Posté par  . En réponse au journal Scripting Python sous Linux. Évalué à 1.

    Ça m'empêchera pas de préférer perl pour faire du scripting système

    J'aimais beaucoup Perl, mais depuis que j'ai découvert Python, je l'ai complètement abandonné. Sans vouloir troller, que préfères-tu dans Perl par rapport à Python ?

  • # Affecter la variable DISPLAY

    Posté par  . En réponse au message Utiliser "at" pour lancer un programme graphique ?. Évalué à 3.

    Pour que le programme sache où s'afficher, il faut définir la variable DISPLAY. Fais précéder tes commandes de "DISPLAY=:0", par exemple "DISPLAY=:0 konsole".

  • [^] # Re: tmux en login shell sur la machine

    Posté par  . En réponse au message Mise en veille et SSH. Évalué à 1.

    sur la machine distante, comment detecter l'inactivité ?
    c'est généralement l'absence de frappe clavier qui distingue une machine active d'une machine inactive…

    On peut utiliser la charge de la machine sur les 15 dernières minutes, renvoyée par la commande uptime.

  • [^] # Re: Laisser faire ?

    Posté par  . En réponse à la dépêche WikHaiePédia. Évalué à 4.

    L'ONF va passer dans le privé

    Source ?

    Article de Reporterre

  • # Limite d'affichage par défaut pour les vues des paquets

    Posté par  . En réponse au message peut-on utiliser un filtre d'affichage dans aptitude ?. Évalué à 1.

    Bonjour,

    Ce que tu cherches ne serait-il pas le paramètre « Options de l'interface utilisateur »→« Limite d'affichage par défaut pour les vues des paquets » du menu « Options »→« Préférences » ?

  • [^] # Re: LineageOS - Google

    Posté par  . En réponse à la dépêche Les 10 paliers de libération d’un téléphone Android. Évalué à 3.

    Question naïve de quelqu'un qui n'a jamais eu de compte Google et donc jamais utilisé le playstore : il existe vraiment des banques qui ne permettent de faire des choses que sur une appli enfermée dans le playstore, et qui ne soient pas possibles sur leur site web ?

  • [^] # Re: awk

    Posté par  . En réponse au message Opérations sur les lignes d'un fichier (soustraction de chiffres). Évalué à 2.

    $ cat data.txt | awk -f filtre.awk

    UUOC !

  • [^] # Re: Utilisation de Python par un profane

    Posté par  . En réponse à la dépêche Python pour la rentrée 2019 — partie 1 ― Popularité. Évalué à 6.

    Avec x=1 y=2 z=3 quelle est la valeur de : x * 3 - y + z - 4 ?

    python l'interprète de gauche à droite et le résultat est 0

    mais en fait tu voulais exprimer (x * 3) - ((y + z) - 4)

    Python se contente de suivre les règles de priorités normales des mathématiques. Je ne comprends pas comment tu en es venu à vouloir l'interpréter autrement.

  • # Pas de listes en Python ?

    Posté par  . En réponse au journal La spécialité N.S.I. de la réforme du lycée ( épisode 2 ). Évalué à 3.

    Dans leur document est écrit que « les listes n’existent pas de façon native en Python ». Auriez-vous une idée de ce qu'ils ont voulu dire par là ? Le type natif list de Python ne sert pas à faire des listes ?

  • # Ils racontent n'importe quoi

    Posté par  . En réponse au message Question Certificat pks12 avec ou sans certificat racine ?. Évalué à 1.

    Les certificats des autorités racines sont une information publique disponible dans la quasi totalité des navigateurs du monde. C'est à la base même du fonctionnement des certificats. Prétendre qu'il faut les cacher n'a aucun sens.

    Le fait que ça ne soit pas évident pour toi montre qu'il te reste beaucoup à apprendre sur les certificats. Pour une introduction à ce sujet, tu peux lire la page de la doc d'Apache (il y a bien sûr des tas d'autres sources d'information).

  • [^] # Re: Perception et langue

    Posté par  . En réponse au journal 7 faits que j'ai appris cette semaine. Évalué à 10. Dernière modification le 20 mai 2019 à 09:54.

    Un autre exemple qui est surprenant pour un Français : en hindi, le même mot est utilisé pour dire « hier » et « demain » (कल).
    Idem avec les mots signifiant avant-hier/après-demain, avant-avant-hier/après-après-demain et avant-avant-avant-hier/après-après-après-demain (oui oui, le hindi a des mots spécifiques pour tout ça).
    C'est comme si l'écart avec aujourd'hui était plus important que le fait que ce soit du passé ou du futur. En pratique on comprend le bon sens grâce au contexte. À noter que l'expression « hier, aujourd'hui et demain » existe en hindi et utilise bel et bien le même mot pour hier et demain.

  • # Doc ?

    Posté par  . En réponse au journal L'increvable le retour. Évalué à 3.

    Il y a un manuel de la machine quelque part ? Et les plans de construction ?
    Sinon, vous savez si il y a au moins un exemplaire qui a été construit ? Il n'y a que des images de synthèse sur le site.

  • [^] # Re: Commencer par le début

    Posté par  . En réponse au message IPtables -configuration. Évalué à 1.

    Non, ce n'est pas le cas. Il va bloquer tout les packets ou tout les flags sont à 1

    En effet. Je n'ai jamais utilisé l'option --tcp-flags et j'ai interprété un peu vite le ALL comme un ANY. Merci pour la correction.

  • [^] # Re: Commencer par le début

    Posté par  . En réponse au message IPtables -configuration. Évalué à 3.

    un peu moins la partie avec les --tcp-flags (c'est ma lecture du moment, tout lire sur ce qui suis ce paramètre).

    Le pare-feu iptables est conçu d'une façon telle qu'il faut d'abord apprendre TCP/IP avant de réussir à l'utiliser. Tu t'y prends à l'envers à lire la doc d'iptables avant de la doc généraliste sur TCP/IP.

    j'ai passé des heures et des heures à tester chaque règle jusqu'à ce que firefox, transmission etc. fonctionne, avec le nombre de ligne minimal

    Encore une fois c'est une approche qui me semble bien plus laborieuse que de commencer par lire un peu de doc sur TCP/IP et les grands principes d'iptables.

    Où se trouve les erreurs dans ce qui suis ?

    Difficile de faire un retour cohérent tellement tes règles partent dans tous les sens. Voici juste des commentaires sur quelques unes d'entre elles :
    iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
    Avec ça tu bloques tout le trafic TCP.

    ̀iptables -A FORWARD -m state --state INVALID -j DROP
    La chaîne FORWARD ne sert à rien sur une machine qui ne fait pas routeur.

    iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT
    De l'ESTABLISHED dans la chaîne OUTPUT n'a pas trop de sens.

    iptables -A INPUT -p icmp -j DROP
    Mauvaise idée de bloquer tout l'ICMP comme ça. Non seulement tu empêches l'utilisation de ping, mais en plus tu bloques des messages utiles de routeurs (style host unreachable).

    ̀ # SSH
    iptables -A INPUT -p tcp --dport 666 -j DROP
    `
    Le protocole SSH utilise le port 22 (par défaut).

    Sinon, comme dit par Gérald, ce n'est pas très utile de bloquer des paquets dans OUTPUT.

    Il faut aussi avoir conscience qu'un pare-feu ne sert à peu près à rien sur un ordinateur de particulier derrière une box qui fait du NAT.