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 :

Besoin d'aide pour compléter un script


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Conseil en assistance à maîtrise d'ouvrage
    Inscrit en
    Janvier 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil en assistance à maîtrise d'ouvrage
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2015
    Messages : 10
    Par défaut Besoin d'aide pour compléter un script
    Bonjour à tous,

    J'ai ce script qui va scrapper différents balises

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    from urllib.request import urlopen
    from bs4 import BeautifulSoup
    html = urlopen('https://www.catedraldesevilla.es/visite-culturelle/')
    bs = BeautifulSoup(html, "html.parser")
    titles = bs.find_all(['title', 'h1', 'h2','h3','h4','h5','h6','p','img','alt'])
    print('List all the header tags :', *titles, sep='\n\n')
    Ce script n'ouvre qu'une seule url

    Je voudrait ouvrir plusieurs url ou mieux, ouvrir les 100 premiers résultats d'une requète google

    Comment puis je faire ?

    Merci mille fois pour votre aide

    Bien à vous tous
    Max

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Salut,

    Citation Envoyé par MaxwellCoste Voir le message
    Je voudrait ouvrir plusieurs url ou mieux, ouvrir les 100 premiers résultats d'une requète google
    Avec une boucle "for" qui applique une opération (appelle une fonction) à une liste (d'URL) préalablement construite...

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

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2018
    Messages : 4
    Par défaut
    Salut j'avais déjà fait un programme comme le tien, alors j'ai essayé de refaire un petit truc rapidement et j'espère que ça pourra t'aider.
    Ce n'est pas exactement ce que tu as demandé, ce bout de code fait une recherche sur bing, il et affiche tous les liens des resultats qui apparaisent sur les 3 premières pages.

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    from concurrent.futures import ThreadPoolExecutor as PoolExecutor
    import http.client
    import socket
    from bs4 import BeautifulSoup
    import sys
     
    def getPage(page):
        """
            Function to open a link, take the url of a website, and return the contain of
            the website
        """
        try:
            # always set a timeout when you connect to an external server
            url =  "www.bing.com"
            #connection
            connection = http.client.HTTPSConnection(url, timeout=10)
            #send a request 
            connection.request("GET", page)
            #get the response on the request
            response = connection.getresponse()
            #reead and return the response
            return response.read()
        except socket.timeout:
            # in a real world scenario you would probably do stuff if the
            # socket goes into timeout
            pass
     
     
    def nbrPage ():
        """
            Function to browse all resultat pagesand get their url in a list
        """
        result = getPage(page)
        soup = BeautifulSoup(result,features="html.parser")
        liste=[]
        for nbr in range(1,21,10):
            liste.append("/search?q={}&first={}".format(url,nbr))
            dif = 21 - nbr
            if dif <= 10 :
                liste.append("/search?q={}&first={}".format(url, nbr + dif))
        print(liste)
        return liste
     
    def openAllResultPages():
        #condition to excute an operation 7 times in same time
        with PoolExecutor(max_workers=7) as executor:
             #open 7 url in the same time,
            for _ in executor.map(getPage, urls):
                #initialise soul by getting the contain of the result
                soup = BeautifulSoup(_,features="html.parser")
                print(soup.findAll("cite"))
     
    url = input("make a research : ")
    page = "/search?q={}&first=11".format(url)
    urls = nbrPage()
    output = openAllResultPages()

    Tu peux le tester chez toi si tu as déjà tout ce qu'il faut installer sur ta machine, sinon instlle ce qui te manque et teste.
    Si tu as des questions je me ferais un plaisir de te répondre aussi vite que possible.
    Entre temps j'espère que ce code t'aura aidé

Discussions similaires

  1. Besoin d'aide pour compléter script
    Par lolo81100 dans le forum Shell et commandes GNU
    Réponses: 12
    Dernier message: 21/01/2012, 18h28
  2. Besoin d'aide pour adapter un script
    Par Marshall31 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 16/05/2008, 09h18
  3. Besoin d'aide pour installer un script PHP
    Par picasso1er dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 15
    Dernier message: 14/09/2007, 12h00
  4. Réponses: 4
    Dernier message: 14/08/2006, 15h50
  5. Besoin d'aide pour faire un script
    Par shinux2004 dans le forum Langage
    Réponses: 4
    Dernier message: 16/07/2005, 16h44

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