IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Atteindre une partie d'une page web


Sujet :

Python

  1. #1
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut Atteindre une partie d'une page web
    Bonjour,

    Je souhaiterai atteindre une partie spécifique d'une page web en utilisant.
    J'utilise le module webbrowser pour atteindre l'url voulu (ça fonctionne nikel) mais si je rajoute au bout de cet url #la_ou_je_veux_aller j'ai une erreur qui se produit et qui me dit que le fichier cherché n'existe pas.


    D'avance merci de votre aide
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  2. #2
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonjour,

    ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    import webbrowser
    url = 'http://www.developpez.net/forums/d854380/autres-langages/python-zope/general-python/atteindre-partie-page-web/'
    webbrowser.open_new_tab(url + '/doc')
    Une erreur d'url ?

    @+
    Merci d'utiliser le forum pour les questions techniques.

  3. #3
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Je vais apporter quelques infos complémentaires qui permettrons peut-être de trouver une solution car ce que tu me donnes ne fonctionne pas mieux.

    Dans mon programme je prévois une aide html en local.
    J'ai donc une fonction défini comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    def aide(self, evt):
        ...
        PROJECT_PATH = os.path.dirname(sys.argv[0])
        ...
        adress = PROJECT_PATH+'\\doc\\aide.html'
        webbrowser.open(adress)
        evt.Skip()
    Ce bout de code fonctionne très bien. Par contre si j'écris ce qui suit, python me dit que adress ne correspond à aucun fichier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    def aide(self, evt):
        ...
        PROJECT_PATH = os.path.dirname(sys.argv[0])
        ...
        adress = PROJECT_PATH+'\\doc\\aide.html#index_1'
        webbrowser.open(adress)
        evt.Skip()
    En effet python ne cherche pas la position index_1 dans aide.html mais un fichier appelé aide.html#index_1.

    J'espère avoir été assez clair.

    @+
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  4. #4
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonsoir,

    webbrowser se débrouille trés bien avec cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import webbrowser
    url = 'http://www.1001reductions.com/aide.htm#a1'
    webbrowser.open_new_tab(url)
    Tu utilise une liste (<li><a href="#index_1">...) qui donne sur une nouvelle page ? Pourquoi ne pas donner la page ?

    Et l'url en direct dans ton browser cela fonctionne ?

    @+
    Merci d'utiliser le forum pour les questions techniques.

  5. #5
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    En fait dans l'aide à l'utilisation du logiciel, j'ai plusieurs paragraphes et en fonction de l'étape à laquelle l'utilisateur est dans l'utilisation de mon programme je souhaite l'orienter vers le paragraphe correspondant.

    Pour faire simple voici un bout de code html ce que j'ai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <p id="generalite">I°) Généralité</p>
    ...
    <br><br>
    <p id="etape_1">II°) Etape 1</p>
    ...
    <br><br>
    <p id="etape_2">III°) Etape 2</p>
    ...
    Le but est donc de mettre à la fin de l'url
    #generalite ou #etape_1 ou #etape_2...

    L'exemple que tu me donnes fonctionne effectivement. Je constate que la seule différence réside dans le fait que ton lien est un lien "internet" alors que moi je travaille en "local".
    Qu'à cela ne tienne, sans solution simple et rapide je mettrai la doc sur le net.
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  6. #6
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonsoir Jiyuu,

    Il me semble que tu manque une question importante : Et l'url en direct dans ton browser cela fonctionne ?

    Je suis désolé d'insister dessus mais soit c'est du code HTML directement lisible par le browser et là c'est un problème de programmation, soit tu a besoin d'un serveur web (local : apache ?) pour tes tests.

    @+
    Merci d'utiliser le forum pour les questions techniques.

  7. #7
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Bonsoir,

    Désolé pour cet oubli. L'url en direct fonctionne. C'est bien pour ça que je vais mettre la doc online. Je me vois mal être obligé d'installer un serveur apache sur le PC client pour seulement permettre de consulter une page html. Au pire si j'ai vraiment besoin de l'avoir en local j'en ferai une version pdf.

    Retrouver le paragraphe sera peut-être plus difficile.
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  8. #8
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonjour,

    Si le chemin fonctionne en direct pourquoi ne pas utiliser une redirection ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    import webbrowser
     
    lanceur = """
    <html>
    <head>
    <title>Aide</title>
    <meta http-equiv="refresh" content="0; url=http://www.1001reductions.com/aide.htm#a1" />
    </head>
    <body>
    </body>
    </html>
    """
     
    creation = open("lanceur.htm", "w")
    creation.write(lanceur)
    creation.close()
     
    webbrowser.open("lanceur.htm")
    @+

    Edit : Ou, pour utiliser ton code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    import webbrowser
    import os.path
     
    adress = 'http://www.1001reductions.com/aide.htm#a1'
    lanceur = """
    <html>
    <head>
    <title>Aide</title>
    <meta http-equiv="refresh" content="0; url="""+ adress +"""" />
    </head>
    <body>
    </body>
    </html>
    """
     
    PathLanceur = os.path.join(os.getcwd(), "lanceur.htm")
     
    if os.path.isfile(PathLanceur): os.remove(PathLanceur)
     
    creation = open(PathLanceur, "w")
    creation.write(lanceur)
    creation.close()
     
    webbrowser.open(PathLanceur)
    Merci d'utiliser le forum pour les questions techniques.

  9. #9
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Je t'avoue ne pas avoir pensé à ça. Effectivement ça fonctionne. Ça fonctionne tellement bien que la page d'ouvre dans 2 onglets...!?!

    Sais-tu d'où cela peut venir?
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  10. #10
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonjour,

    Citation Envoyé par Jiyuu Voir le message
    Je t'avoue ne pas avoir pensé à ça.
    Normal. Cela demande une approche déstructurée de l'extrem programming ou si tu préfère du bidouillage sans bases solides qui fais tout mon charme.

    Après test je n'ai pas le même résultat (une seule page) sous Debian/Firefox3 ou sous Vista/IE, du moins avec le code fournis (et donc la page internet).
    Ceci même avec new=X, autoraise, ou open_new (options non prises en comptes en fait chez moi).
    Un paramètre de ton navigateur ?
    Regarde ce que te donne un timing dans la page html : @+

    A propos : Bonnes fêtes à tous.
    Merci d'utiliser le forum pour les questions techniques.

  11. #11
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonjour,

    Une alternative (webbrowser me semble bien capricieux lors de mes tests et c'est noël après tout )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    from webbrowser import get as WebGet
    from subprocess import Popen, PIPE
    from os import waitpid
    from sys import stdout
     
    Url = 'http://www.1001reductions.com/aide.htm#a1'
    Navigateur = WebGet().name
    commande = Popen([Navigateur, Url], stdout=PIPE)
    sts = waitpid(commande.pid, 1)
    @+

    Edit : Bon, ok. En fait c'est pour tester si cela ne viens pas de subprocess utilisé dans webbrowser
    Merci d'utiliser le forum pour les questions techniques.

  12. #12
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Hello,

    Je viens de revoir tes posts. Je n'ai pas trop eu le temps de me remettre sur mon problème depuis la semaine dernière. Je vais regarder tout ceci jeudi. EN tout cas merci de ton aide et bonne fin d'année à tous
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  13. #13
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Effectivement webbrowser est un peu capricieux...

    J'ai envie de d'essayer en passant avec un fichier pdf et de renvoyer l'utilisateur au bon paragraphe en utilisant les signets. Je pense que ceci est faisable.

    Sais-tu si l'une des commandes données ici permettrait de faire ceci?

    D'avance merci et bonne fin d'année à tous
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  14. #14
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonsoir Jiyuu,

    En toute franchise je ne connais pas (sauf pour imprimer) les lignes de commandes (arguments) du reader d'Adobe pour ouvrir sur une page en Python.
    Il me semble que tu vas te lancer dans un truc pas possible...
    Autant se lancer dans une aide sous Tkinter.

    Sinon :

    Citation Envoyé par Jiyuu Voir le message
    Je t'avoue ne pas avoir pensé à ça. Effectivement ça fonctionne. Ça fonctionne tellement bien que la page d'ouvre dans 2 onglets...!?!
    C'est a dire que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    import webbrowser
     
    lanceur = """
    <html>
    <head>
    <title>Aide</title>
    <meta http-equiv="refresh" content="0; url=http://www.1001reductions.com/aide.htm#a1" />
    </head>
    <body>
    </body>
    </html>
    """
     
    creation = open("lanceur.htm", "w")
    creation.write(lanceur)
    creation.close()
     
    webbrowser.open("lanceur.htm")
    T'ouvre deux onglets ?
    Merci d'utiliser le forum pour les questions techniques.

  15. #15
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Citation Envoyé par PauseKawa Voir le message
    C'est a dire que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    import webbrowser
     
    lanceur = """
    <html>
    <head>
    <title>Aide</title>
    <meta http-equiv="refresh" content="0; url=http://www.1001reductions.com/aide.htm#a1" />
    </head>
    <body>
    </body>
    </html>
    """
     
    creation = open("lanceur.htm", "w")
    creation.write(lanceur)
    creation.close()
     
    webbrowser.open("lanceur.htm")
    T'ouvre deux onglets ?
    Hello et bonne année,

    C'est exactement ça. Ce bout de script m'ouvre deux onglets avec un contenu identique.
    J'ai essayé avec un content =10. Les pages se mettent à jour exactement au même moment. En soit ce n'est pas très dérangeant mais ce n'est pas un fonctionnement "normal".
    Là je fais mes essais avec Chrome. Je vais faire les essais avec IE et FF et je te donnerais les résultats.

    [EDIT]
    Problème identique avec FF
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  16. #16
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonsoir Jiyuu,

    J'avoue être perplexe : J'ai tester cela (et l'histoire du Navigateur = WebGet().name avec un os.system aussi) sur trois postes (Vista/XP/Debian) avec plusieurs navigateurs différents (Windows Internet Exploreur et FF sous Vista, IE + FF sous XP, FF sous Debian) à chaque fois... Pour n'avoir qu'un onglet et le bon.
    A tu tester sur un autre poste ? Cela ne vient il pas de ton poste de test ?

    Bon courage et tiens nous au courant de la solution adoptée.

    @+
    Merci d'utiliser le forum pour les questions techniques.

Discussions similaires

  1. Imprimer une partie de la page web courante
    Par Kazumi dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/05/2014, 11h11
  2. Imprimer une partie de la page web
    Par touf35 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/06/2008, 21h10
  3. Réponses: 1
    Dernier message: 04/04/2008, 12h14
  4. masquer une partie d'une vidéo par une banniere
    Par lezabour dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 16/10/2006, 16h47
  5. copier une partie d'une image vers une autre
    Par gregcat dans le forum Langage
    Réponses: 1
    Dernier message: 14/04/2006, 13h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo