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 :

Vérifier lien à partir d'une liste


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Edudiant
    Inscrit en
    Septembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Edudiant

    Informations forums :
    Inscription : Septembre 2016
    Messages : 6
    Points : 0
    Points
    0
    Par défaut Vérifier lien à partir d'une liste
    Bonjour, bonsoir.
    Je suis en train de créer un programme qui, à partir d'une liste, vérifie si des liens répondent à certaines exigences.
    Grâce aux librairies requests et beautifoulsoup, si un site a une différence, je l'enregistre dans un fichier texte.

    Fonctionnement (normal) du programme:
    Va dans dans list.txt
    Récupère le contenu et créé une liste[]
    Dans un boucle
    - Requests envoi la requête pour récupérer le contenu
    - Beautifulsoup permet de scinder une partie qui différencie les liens
    - Si une partie est présente dans le site -> On l'ajoute à ok.txt

    Voilà mon problème:
    Tous les liens de la liste sont testés SAUF qu'il n'y a que le dernier qui répond à un évaluation positive, exemple:
    Le lien a.php est bon, le lien b.php n'est pas bon.

    list.txt:
    ....
    a.php
    a.php
    b.php
    a.php

    Résultat console python:
    None
    None
    None
    OK

    Je me demande fortement la raison pour laquelle le code n'est pas "entièrement bon"
    Je vous joint ci-dessous mon 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
     
    import requests
    from bs4 import BeautifulSoup
     
    url = open('list.txt',"r")
    a = url.readlines()
    l = len(a)
     
    z = 0
     
    for i in range(1, l):
    	z = z + 1
    	r = requests.get(a[z])
    	html = BeautifulSoup(r.content)
    	lien = html.find('a', {'b' : 'c'})   # je n'ai pas mis les bons critères ici
    	if len(str(lien)) > 4:
    		save = open("ok.txt","a")
    		save.write(str(a[z]))
    		save.close()
    J'espère que vous pourrez m'aider! Merci beaucoup

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Dans votre code "save.write(str(a[z]))" devrait sauver l'URL et non None ou OK.
    Si vous postez du code, peut être faut-il commencer par vous assurer que:
    • il fonctionne,
    • il est cohérent avec le problème que vous racontez.

    Sinon on ne pourra pas beaucoup vous aider.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Edudiant
    Inscrit en
    Septembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Edudiant

    Informations forums :
    Inscription : Septembre 2016
    Messages : 6
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    Dans votre code "save.write(str(a[z]))" devrait sauver l'URL et non None ou OK.
    Si vous postez du code, peut être faut-il commencer par vous assurer que:
    • il fonctionne,
    • il est cohérent avec le problème que vous racontez.

    Sinon on ne pourra pas beaucoup vous aider.

    - W
    Bonsoir et merci pour votre reponse.

    Comme dit plus haut, le problème ne vient pas de l'enregistrement et je pense avoir essayer un nombre assez grand de fois avant d'avoir posté mon message sur le forum.

    Je vous demanderai alors de bien relire l'explication de l'erreur qui survient lors de l'exécution du script (en supprimant l'enregistrement dans le .txt)

    Merci

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par Paulhaha Voir le message
    Je vous demanderai alors de bien relire l'explication de l'erreur qui survient lors de l'exécution du script (en supprimant l'enregistrement dans le .txt)
    C'est vous qui demandez de l'aide. Si vous ne faites pas un minimum d'effort pour qu'on comprenne ce que vous racontez, tant pis pour vous.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Edudiant
    Inscrit en
    Septembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Edudiant

    Informations forums :
    Inscription : Septembre 2016
    Messages : 6
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    C'est vous qui demandez de l'aide. Si vous ne faites pas un minimum d'effort pour qu'on comprenne ce que vous racontez, tant pis pour vous.

    - W
    Effectivement c'est moi qui demande de l'ai et je suis désolé de voir que vous ne comprenez pas mon problème.

    J'essaie donc de me réexpliquer brièvement.

    Lors de l’exécution du programme tous les liens (de mon fichier .txt) sont testés et il n'y a que le dernier qui répond positivement à ma demande (même si apparait plus haut dans la liste)

    Exemple:
    Contenu Fichier .txt

    a.php
    b.php
    a.php
    a.php
    a.php
    b.php
    a.php

    Résultat lors de l'éxécution de mon script: (avec print de la requête)

    a.php <- None
    b.php <- None
    a.php <- None
    a.php <- None
    a.php <- None
    b.php <- None
    a.php <- OK

    Je suis donc dans l'incompréhension total en vu de ce résultat...
    Merci à vous

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par Paulhaha Voir le message
    Je suis donc dans l'incompréhension total en vu de ce résultat...
    Ce résultat que vous ne voulez/comprenez pas est produit par un code que vous ne montrez pas.
    Encore un effort...

    Peut être qu'on y arrivera d'ici la fin du week end

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Edudiant
    Inscrit en
    Septembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Edudiant

    Informations forums :
    Inscription : Septembre 2016
    Messages : 6
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Ce résultat que vous ne voulez/comprenez pas est produit par un code que vous ne montrez pas.
    Encore un effort...

    Peut être qu'on y arrivera d'ici la fin du week end

    - W
    Voilà mon effort
    Je vous ai fait une vidéo vous présentant: m
    • Mon code
    • La manipulation qui me permet de voir qu'il y a une erreur
      Je tiens à prévenir que j'ai flouté les url. (et ça n'empêche en rien la compréhension de l'erreur)

      Je sais évidemment qu'il y a une erreur ou une manière autre qui me permettra de résoudre mon problème mais je ne vois pas laquelle.
      J'espère vraiment ne pas vous déranger, surtout que je suis nouveau sur le forum.

      La vidéo: https://youtu.be/LyB4rmoP2G8

      Bien à vous

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Pologne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2016
    Messages : 26
    Points : 28
    Points
    28
    Par défaut Variable z
    Bonsoir,

    Pour commencer, il me semble inutile d'introduire une variable z qui de toute façon est incrémentée dans la boucle. Vous pouvez tout aussi bien utiliser la variable i. Cela rendra le code beaucoup plus lisible...

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par Paulhaha Voir le message
    Je sais évidemment qu'il y a une erreur ou une manière autre qui me permettra de résoudre mon problème mais je ne vois pas laquelle.
    J'espère vraiment ne pas vous déranger, surtout que je suis nouveau sur le forum.

    La vidéo: https://youtu.be/LyB4rmoP2G8
    Vu à la télé? çà ne marche pas avec moi.
    Néanmoins, comme je suis (parfois) gentil, je vous propose ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    url = open('list.txt',"r")
    print(url.readlines())
    normalement vous devriez avoir une idée sur la cause du problème.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Edudiant
    Inscrit en
    Septembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Edudiant

    Informations forums :
    Inscription : Septembre 2016
    Messages : 6
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Vu à la télé? çà ne marche pas avec moi.
    Néanmoins, comme je suis (parfois) gentil, je vous propose ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    url = open('list.txt',"r")
    print(url.readlines())
    normalement vous devriez avoir une idée sur la cause du problème.

    - W
    Bonjour,
    J'ai résolu mon problème, en effet (dans mon code) lorsque je print(a) j'obtenais une liste dans ce genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ['lien.php\n','lien.php\n','lien.php\n']
    J'ai donc fait dans ma boucle un .replace('\n',' ') lors de l'affichage de chaque lien.

    Voilà merci encore pour vos réponses, à bientôt

Discussions similaires

  1. Debutant -> lien à partir d'une boite de confirmation
    Par alexbubs dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/10/2005, 15h46
  2. Réponses: 32
    Dernier message: 22/09/2005, 10h40
  3. Réponses: 3
    Dernier message: 19/05/2005, 17h52
  4. Réponses: 3
    Dernier message: 25/04/2005, 15h26
  5. Trouver equation à partir d'une liste de points
    Par scarabee dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 27/05/2004, 17h05

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