Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
nombre réponses : 25

#0 Re : -1 »  Connection en python correcte, mais navigation dans le site impossible » Le 04/01/2015, à 18:43

grim7reaper
Réponses : 12

Salut,

Pour commencer, il faudrait que tu postes le code que tu utilises actuellement, car le code de ton premier message ne peut pas fonctionner (cook1 est utilisé mais jamais défini).
Bon sinon, il y a pas mal de choses qui pourrait être amélioré dans ce code (utiliser des fonctions pour le code qui se répète par exemple) mais bon c’est pas le problème principal pour le moment, on verra ça après.

#1 Re : -1 »  Connection en python correcte, mais navigation dans le site impossible » Le 04/01/2015, à 22:04

grim7reaper
Réponses : 12

Salut,

dva2tlse a écrit :

Salut grim7reaper,
en effet, j'avais posté un code où cook1 était monentanément enlevé, parce qu'il est dit dans la doc que si on utilise

sess=requests.Session()

alors il devient inutile de stocker les cookies; c'est ce que j'ai vérifié moi même.

En effet, l’objet Session gère les cookies, je l’ignorais.

dva2tlse a écrit :

Ce dernier 'GET' est quand même effectué avec mon identification; je peux le vérifier avec la première partie de la page qui s'affiche et où je vois bien que les "crédits" affichés sont les miens.

Que veux tu dire quand tu dis que la page est incomplète ? Il manque des liens ?

En parlant de lien, est-ce que tu es sûr que les tiens sont correctes ? Quand tu vas sur la page avec ton navigateur, est-ce qu’il t’affiche la même URL ?
Par exemple, le lien serait "http://www.toto.com/home#/panelboard/" au lieu de "http://www.toto.com/panelboard".

La page que tu veux afficher c’est ce panelboard ou c’est juste une étape pour atteindre la page que tu souhaites voir ?

dva2tlse a écrit :

Sinon en effet, ça fait trois fois la même chose, mais je ne sais même pas comment coder une fonction en python.

Il y a pas mal de bon tuto, l’anglais te dérange ou ça va ?

dva2tlse a écrit :

(je bosse en fortran et j'ai même eu des réponses à des questions à ce sujet ici sur ce forum)(ou sur devellopez.com, chaipu)

Sur les deux en fait, et en ce qui me concerne je t’ai déjà répondu sur ce forum sur des questions Fortran wink

#2 Re : -1 »  Connection en python correcte, mais navigation dans le site impossible » Le 06/01/2015, à 15:15

grim7reaper
Réponses : 12

Salut,

Bizarre ça.
Est-ce que tu as comparé le code HTML que tu obtiens via ton code Python et le code que ton navigateur t'affiche (visible via Ctrl+U si tu utilises Firefox) ?
Ils diffèrent ou le code HTML est le même (je parle du code HTML, pas de l’aspect visuel) ?

Une explication possible (et probable) est qu’une partie de ce que tu vois soit généré via Javascript (et donc exécuté et généré par ton navigateur Web) et dans ce cas c‘est normal que ce que tu vois dans ton navigateur soit différent de ce que tu récupère via Python (mais le code HTML doit être le même).

Sinon, je ne sais pas quels lien tu veux accèder, mais si tu connais l’URL tu peux taper directement dessus après t’être identifié.
Par exemple pour accéder avec cette discussion, je dois:
- me logger
- j'arrive sur le forum (http://forum.ubuntu-fr.org/index.php)
- je vais dans la section « Développement et programmation » (http://forum.ubuntu-fr.org/viewforum.php?id=35)
- je vais dans ce topic (http://forum.ubuntu-fr.org/viewtopic.php?id=1759031)

Mais quand en Python, une fois que je suis loggué je pourrais directement taper dans http://forum.ubuntu-fr.org/viewtopic.php?id=1759031, pas besoin de faire le cheminement comme un humain en cliquant à droite à gauche.
Bien sûr, si tu ne connais pas les liens que tu veux aller voir (car c'est une liste généré dynamiquement par exemple, alors mon exemple n’est pas applicable)

#3 Re : -1 »  Connection en python correcte, mais navigation dans le site impossible » Le 07/01/2015, à 17:54

grim7reaper
Réponses : 12
dva2tlse a écrit :

les codes HTML que j'obtiens par mon script python et le code que mon navigateur affiche sont forcément exactement les mêmes, puisque je ne fais qu'afficher avec mon navigateur ce que j'ai reçu par le code python

Je voulais que tu compares le contenu du fichier et le code HTML quand tu visites le site avec ton navigateur (pas quand tu ouvres le fichier que tu as généré).

dva2tlse a écrit :

Par ailleurs, le Javascript, il y en a effectivement pas mal dans le fichier que j'enregistre et dont je ne visualise que le début, ou qu'une partie; est-ce que ça pourrait être lui qui empêche l'affichage de la fin des pages, ou du reste ?

Non, mais le Javascript est exécuté par ton navigateur et ça génére peut-être du code HTML supplémentaire.
Par contre, quand tu récupères le HTML via Python le Javascript n’est pas exécuté et ça pourrait expliquer la différence.

#4 Re : -1 »  Connection en python correcte, mais navigation dans le site impossible » Le 11/01/2015, à 20:55

grim7reaper
Réponses : 12
dva2tlse a écrit :

sauf que ce que tu écris me fait penser à un truc : je vais ouvrir mon site directement dans mon firefox pour en voir le contenu de la page avec un CTRL+U, et l'enregistrer quelquepart.
Hédonc je pourrai essayer de comparer avec celle que reçoit et enregistre le python.

C’est exactement ce que je te suggérais de faire smile
Alors, quel est le résultat ?
Est-ce que tu récupères la même chose ?
Est-ce que les liens que tu cherches sont dedans ?

dva2tlse a écrit :

Mais il se trouve par ailleurs, que quand j'ai le début de la homepage du site, après que le python m'y ait connecté, je peux prendre la main à ce moment-là; et c'est peut-être là que s'exécute le javascript qui affiche la fin de la page, d'où la différence entre l'accès "à la main" et l'accès par python.
Est-ce que ce que je dis est cohérent, ou est-ce que c'est du n'importe nawak ?

Je ne suis pas sur d’avoir bien compris ce que tu voulais dire, donc je ne peux pas vraiment répondre hmm

dva2tlse a écrit :

PS: je n'ai peut-être pas tout compris comment marchait le javascript, d'où l'imprécision de ma question, mais peut-être qu'il faut travailler en interactif pour que le javascript tourne, et est-ce qu'il n'y aurait pas moyen que ça tourne "depuis" un script quand même ? à+, David

Il y a peut-être des moyens en Python, il faudrait que je me renseigne car je n’ai jamais fait.

#5 Re : -1 »  Connection en python correcte, mais navigation dans le site impossible » Le 12/01/2015, à 14:49

grim7reaper
Réponses : 12

Ok.
Les pages sont donc très certainement identiques alors (tu pourrais lancer la commande diff sur les deux fichiers pour en être sûr).
Oui, le Javascript ne s’exécute qu’en « interactif » (en fait il s’exécute dans ton navigateur Web car les navigateurs ont un interpréteur Javascript embarqué, ce qui n’est pas le cas de ton script Python).
Je ne sais pas si scrapy gère le JavaScript, une solution pourrait être de passer par Selenium (apparemment il est possible d’utiliser les deux conjointement). Mais là je suis comme toi, je découvre…

#6 Re : -1 »  Système de fichiers pour serveur » Le 07/01/2015, à 15:32

grim7reaper
Réponses : 12

Salut maverick8001,

Dans le titre de ton sujet tu indiques que tu cherches un système de fichiers pour serveur. Est-ce que tu pourrais donner plus d’information sur en quoi ça concerne les serveurs ?
Ça permettrait de te donner de meilleurs conseils (ou de déplacer le sujet s’il n’est pas dans la bonne catégorie).

#7 Re : -1 »  Python: conversion string ---> int et pas float » Le 07/01/2015, à 15:39

grim7reaper
Réponses : 10
kboo a écrit :

Trouvé: avec modulo 1:
7.0 % 1 = 0

lavaleur = '7.0'
if float(lavaleur) % 1 == 0:
    lavaleur = str(int(float(lavaleur)))

mais c'est moche!

En effet, il y a mieux : la méthode is_integer

In [1]: x = 7.0
In [2]: x.is_integer()
Out[2]: True
In [3]: x = 3.14
In [4]: x.is_integer()
Out[4]: False

Avec ça tu peux tester si le nombre flottant est bien un entier avant de faire la conversion.

kboo a écrit :

La solution la plus crade de mon point de vu est de faire un try/except, qu'en pensez vous

Si tes nombres seront toujours de la forme XXX.YYYY, alors tu peux faire un simple test avec une regexp ("\d+(\.\d+)?") avant de faire la conversion.

Pour conclure, c’est quasiment toujours une mauvaise idée de comparer des nombres flottants avec ==
Petit exemple :

In [1]: 0.20-0.15 == 0.05
Out[1]: False

Donc attention…

#8 Re : -1 »  Python: conversion string ---> int et pas float » Le 07/01/2015, à 17:03

grim7reaper
Réponses : 10
tiramiseb a écrit :

Cela étant dit, tant qu'on ne fait pas d'opération et qu'on ne fait que comparer deux valeurs, alors on peut toujours rester sur un float, car 0.20 sera toujours égal à 0.20

C’est pas garanti.
Il faut que les algo’ qui convertissent les chaînes de caractères en nombre à virgule flottante soient les même de chaque côté.
Bon en pratique c’est quasiment toujours le cas vu que l’algo est particulièrement touffu, quasiment tout le monde utilise l’implémentation de David M. Gay.

#9 Re : -1 »  Python: conversion string ---> int et pas float » Le 07/01/2015, à 21:39

grim7reaper
Réponses : 10
tiramiseb a écrit :

Il faut que les algo’ qui convertissent les chaînes de caractères en nombre à virgule flottante soient les même de chaque côté.

La conversion étant effectuée dans la fonction is_in_selectableoptions() en utilisant la fonction float() de Python, on est assuré que c'est le même algo...

Dans ton code oui, mais dans le cas kboo, c’est pas lui qui converti mais une bibliothèque (« En lisant cette valeur, celle-ci est converti par xlrd en '7.0' et pas '7' ») donc il pourrait y avoir une différence (mais comme je le dit, il n’y en a vraisemblablement aucune).

#10 Re : -1 »  Python: conversion string ---> int et pas float » Le 08/01/2015, à 09:52

grim7reaper
Réponses : 10

Ok, j’avais dû mal comprendre le premier message kboo

#11 Re : -1 »  /* Topic des codeurs [8] */ » Le 25/11/2014, à 20:38

grim7reaper
Réponses : 2286
Le Rouge a écrit :

Moi je code des bidules pour ma thèse mais ça tient plus du script que du vrai logiciel.

En quel langage ?

Rolinh a écrit :

grim7reaper: bah j'imagine que les codeurs habituels codent toujours, nan?

Bah je sais pas c’est calme, avant y’avait plein de projet de tout les côté ici tongue

Pylades a écrit :

Bah là récemment j’ai codé un bidule web mais sinon, non, ça fait longtemps que je n’ai pas touché à du code.

En PHP ? tongue

Pylades a écrit :

P’tain j’ai plopé dans le TdCCT cette nuit, quelle honte…

D’autant plus que le topic est renommé en TdC maintenant :]

The Uploader a écrit :

le poignet droit qui fait mal et qui est rouge : bref tout ça m'inquiète un peu et j'essaie de faire des pauses/être dans la bonne position/ faire autre chose/ etc...)

T’utilises pas emacs pourtant big_smile

The Uploader a écrit :

(ou c'est peut-être parce que mes 30 ans arrivent à Noël... http://pix.toile-libre.org/upload/origi … 935740.gif )

Enfoiré de père Noël.

De mon côté je fais encore pas mal de C (le boulot aidant), Haskell j’ai un peu laissé tomber pour le moment (par contre je regarde sérieusement Ada et attend la version stable de Rust pour le regarder de plus près).
Mais je devrais sûrement arriver publier des trucs bientôt (pour certaines valeurs de « bientôt ») et écrire des articles de blog qui sont sur ma TODOLIST.

#12 Re : -1 »  /* Topic des codeurs [8] */ » Le 26/11/2014, à 10:55

grim7reaper
Réponses : 2286
Pylades a écrit :

Avec des bouts de Javascript dedans, aussi.

Et alors, c’était comment tongue
T’aime bien le typage à la PHP ? :]



Aller, histoire de poster un lien intéressant. En C99, on peut faire des trucs comme ça :

static void get_now_iso8601(char buf[static ISO8601_LEN]);

J’en avais déjà parlé à Rolinh mais comme c’est peu connu autant le poster ici aussi smile

#13 Re : -1 »  /* Topic des codeurs [8] */ » Le 28/11/2014, à 13:34

grim7reaper
Réponses : 2286

@Le Rouge : tu fais quel genre de trucs qui sont intenses au niveau calculs ? Intense comment ?

Elzen a écrit :
grim7reaper a écrit :

Ptain, j’ai raté des messages là.
Y’a un truc qui à changé au niveau du forum ? Avant je recevais des notifications.

Ça vient peut-être du fait que Être ou ne pas être soit temporairement inaccessible aux non-connectés.

Ce topic sera de nouveau accessible après la réorga.

C’était bien ça, depuis que c'est de nouveau accessible aux non-connectés je reçoit les notif’ RSS comme avant smile

#14 Re : -1 »  /* Topic des codeurs [8] */ » Le 23/12/2014, à 14:28

grim7reaper
Réponses : 2286

Y’en a qui ont jeté un œil à Rust ?
Perso je trouve que le langage a pas mal de points super intéressants :
- enfin un langage qui met le concept d’ownership au cœur du langage
- la gestion de mémoire par région (comme Cyclone ou les version temps-réel du GC de Java)
- les types genre Option/Result + pattern matching
- Cargo (pas trop joué avec, mais semble sympa au premier abord)

Et malgré cela, il reste bas-niveau, runtime optionnel et suit la philosophie du zero-cost abstraction.
Pour le moment, j’ai lu le guide + 2-3 autres documents et bidouillé un peu avec mais j'attends la v1 avant de faire des trucs sérieux.

Bon il lui manque quand même des trucs plus ou moins dispensable (genre memory pool (me semble difficile à intégrer au langage cela dit)), aucun langage n’est parfait.

#15 Re : -1 »  /* Topic des codeurs [8] */ » Le 24/12/2014, à 10:24

grim7reaper
Réponses : 2286
The Uploader a écrit :

J'avoue que Rust a l'air sympa comme un remplaçant crédible du C.

Du C mais aussi du C++.

The Uploader a écrit :

Le top serait d’avoir une norme ISO une fois que le langage sera un minimum stabilisé.

Je ne sais pas si Mozilla veut se lancer là dedans, à voir… C’est un investissement quand même, et ça rend les évolutions plus lente.
Ruby l’a fait parce que c’était une condition pour que ça puisse être utilisé par le gouvernement ou les administrations japonaise il me semble.

Y’a assez peu de langage standardisé ISO au final (enfin dont les évolutions sont « régulièrement » standardisé comme C, C++ et Ada par exemple)
Si on compte tout les les langages standardisé ISO même une seule fois, y’en a un peu plus:

#16 Re : -1 »  /* Topic des codeurs [8] */ » Le 24/12/2014, à 14:12

grim7reaper
Réponses : 2286
The Uploader a écrit :

Tiens j'ai aussi une question : quelqu'un a déjà testé QML ?

Nope.
Je fais déjà rarement des interfaces graphiques, et quand j'en fait c'est tellement simpliste que le faire « à l’ancienne » me suffit.

The Uploader a écrit :

Je trouve aucun bon bouquin dessus

Apparemment Créer des applications avec Qt 5 traite beaucoup de QML et QtQuick.

The Uploader a écrit :

(bon par contre pour le développement, j'ai bien essayé Netbeans/Eclipse/whatever plutôt que Visual Studio mais à chaque fois c'est trop limité ou trop instable. Le seul truc que j'ai pas vraiment essayé c'est KDevelop)

Ha ouais ?
À chaque fois que j'ai du utiliser Visual Studio, le truc que j'ai toujours pensé c'est : « y’a des gens qui payent pour ça ?! »
Mais bon, j'étais peut-être tombé sur des versions de merde…

#17 Re : -1 »  /* Topic des codeurs [8] */ » Le 26/12/2014, à 17:32

grim7reaper
Réponses : 2286
The Uploader a écrit :

La version Express est merdique, mais en gratuit et officiel t'as maintenant la version Community (VS 2013 Community Edition with Update 4 pour être exact) ce qui correspond à la version premium si j'ai bien compris (bref le truc juste en dessous de la version ultimate). Parmi les évolutions notables -> ça prend en charge git nativement (même si je préfère toujours commiter en ligne de commande avec msysgit).

Avec Nunit pour les tests unitaires, CodeMaid pour nettoyer les fichiers à la sauvegarde, (et ReSharper pour ceux qui veulent étendre les capacités de refactoring de VS et qui ont des sous), c'est pas mal. smile

mkay, très orienté C# tout ça…
Bon, de toute façon je suis clairement pas ciblé par VS vu que c'est du Windows-only (et que je n’utilise Windows ni à la maison, ni au boulot).

The Uploader a écrit :

Bon niveau libre un collègue m'a conseillé Eclipse... Faudrait que je regarde de nouveau... Mais je lorgne plutôt du côté de KDevelop, surtout quand ce dernier sera passé à KF5.

KDevelop à ses côtés sympa en effet (support de CMake en natif par exemple).

#18 Re : -1 »  /* Topic des codeurs [8] */ » Le 01/01/2015, à 10:07

grim7reaper
Réponses : 2286
Elzen a écrit :

Dites, les gens, j'me demandais…

un clavier virtuel, ça fonctionne en générant de faux événements X pour simuler l'appui sur des touches réelles, ou bien il existe un autre moyen d'envoyer du texte vers une application donnée ?

J’ai l’impression que ça passe très souvent par X en effet.
xvkbd, onboard et kvkbd font tous appel à XTestFakeKeyEvent.
Le seul qui sort du lot c’est GOK en utilisant SPI_generateKeyboardEvent.

Du coup, pour Wayland je sais pas trop comment ça va se passer. J’ai cru comprendre qu’il fallait passer par wl_input_method_context_commit_string (mais j’ai pas vraiment trouvé de doc à par ça…)
À la limite, faut regarder le code d’ibus car on dirait qu’il a eu un patch pour le support de Wayland.

#19 Re : -1 »  /* Topic des codeurs [8] */ » Le 01/01/2015, à 19:43

grim7reaper
Réponses : 2286
Elzen a écrit :

Merci pour les infos (tu connaissais plus de claviers virtuels que moi ^^) pour le coup de main sur le fichier UnicodeData.

De rien wink
À la base je ne connaissais que kvkbd, c’est en cherchant que j’ai trouvé les autres.

Elzen a écrit :

J'ai opté, dans l'immédiat, pour SPI_generateKeyboardEvent

Attention : c’est fourni par le binding C AT-SPI qui semble en voie de dépréciation :

https://developer.gnome.org/at-spi-cspi/ a écrit :

This module is heading towards planned deprecation.

#20 Re : -1 »  [RÉSOLU] apprendre à coder » Le 31/12/2014, à 08:38

grim7reaper
Réponses : 5

Salut,

adelphi a écrit :

Merci de me conseiller et me confirmer le bon choix du langage.

Python me semble un bon choix en effet (d’autres langage me semble aussi adapté mais Python étant un classique ça sera facile de trouver des ressources, même en français).

pires57 a écrit :

Pour ma part j'aurais conseillé ada.

Ada est un super langage, avec des tas de qualité.
Cela dit, pour débuter jeune et faire du dev’ récréatif c’est pas ce que je conseillerai quand même.

#21 Re : -1 »  [PAS RÉSOLU] Se logger sur un site web en python par une requête POST » Le 29/12/2014, à 16:53

grim7reaper
Réponses : 7

Salut,

Je serais toi, je tenterai :

import requests

payload = {'login': 'dva2tlse', 'pass': 'VeryStrong'}
resp = requests.post("http://www.le_site.com/login/loginSubmit", data=payload)

L’attribut action du formulaire c’est où envoyer les données, donc il faut que tu l’ajoutes à ton URL.
Du coup, en arguments tu as seulement login et pass.
Dernière note, il faut pas passer ton payload en tant que params mais en tant que data.

J’espère que ça va fonctionner (pas pu tester vu que je ne sais pas de quel site il s’agit), cela dit il est probable que tu doives aussi jouer avec les cookies pour t’authentifier.

#22 Re : -1 »  [PAS RÉSOLU] Se logger sur un site web en python par une requête POST » Le 29/12/2014, à 19:10

grim7reaper
Réponses : 7
dva2tlse a écrit :

Oui merci, ça marche comme ça; enfin je me retrouve avec un status_code de 200, après cette opération POST qui devrait me logger sur le site; Y a-t'il un autre moyen d'en être sûr ?

Un bon moyen c’est d’afficher resp.content qui va contenir le code HTML envoyé en réponse (tu peux l’enregistrer dans un fichier puis l’ouvrir avec Firefox (ou autre navigateur Web) pour mieux visualiser).

dva2tlse a écrit :

J'ai essayer de lire une autre page, qui requiert que l'on soit loggé, "http://www.le_site.com/friends" mais ça ne donne rien d'intéressant; donc je doute.

Probablement un problème de cookie alors.

dva2tlse a écrit :

EDIT: je ne sais même pas comment aller lire la sous-page interne au site :
au tout début, j'ai :
  resp = requests.get(url) # Sends a GET request. Returns Response object -------------- et ça ne sert peut-être à rien
puis :
resp2 = requests.post("http://example.com/login/loginSubmit", params=pars2)
et enfin
resp3 = requests.get("http://example.com/friends")

Mais comment puis-je vérifier ce qu'il se passe au fur et à mesure ?

Oui, la première requête me semble inutile.
Attention, dans la seconde tu utilises encore params=.
Pour voir au fur et à mesure, tu peux afficher le content comme je le disais plus haut.

dva2tlse a écrit :

EDIT2: je viens de lire la fin de ton post que j'avais zappée, en effet, il me faudra probablement dealer avec les cookies.
Pobablement avec s=requests.session(), mais je ne sais pas encore du tout à quoi ça va ressembler finalement.

C’est pas si compliqué que ça wink
En gros, il suffit de faire :

r = requests.post("http://example.com/login/loginSubmit", data=pars2)
cookies = r.cookies
r = requests.get("http://example.com/friends", cookies=cookies)

Sinon, je ne sais pas dans quelle mesure ça peut t’aider mais ljere avait fait un script qui, entre autres, se connectait au forum. Ça peut peut-être t’inspirer smile

#23 Re : -1 »  [PAS RÉSOLU] Se logger sur un site web en python par une requête POST » Le 30/12/2014, à 13:21

grim7reaper
Réponses : 7

Oui, il suffit de donner l’extension en .html

Sinon, un autre truc qui me vient à l’esprit c’est que le site tient peut-être compte de l’User-Agent aussi (certains sites font ça).
Par exemple, pour te faire passer pour Iceweasel (le Firefox de Debian), tu peux faire un truc du genre :

user_agent = {'User-agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:34.0) Gecko/20100101 Firefox/34.0 Iceweasel/34.0'}
r = requests.post("http://example.com/login/loginSubmit", headers = user_agent, data=pars2)

Si ce n’est pas indiscret, tu essayes de te connecter à quel site (si tu veux/peux pas le dire, pas de problème smile) ?

#24 Re : -1 »  personnaliser emacs » Le 31/12/2014, à 15:06

grim7reaper
Réponses : 26

Salut,

Je ne pense pas qu’il était nécessaire de déterrer un topic vieux de 7 ans pour ajouter cette précision (surtout sur un topic qui concerne Emacs).