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

Réseau/Web Python Discussion :

Fermer les popups de pub avec Selenium [Python 3.X]


Sujet :

Réseau/Web Python

  1. #1
    Membre régulier Avatar de animalx123
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2015
    Messages : 148
    Points : 96
    Points
    96
    Par défaut Fermer les popups de pub avec Selenium
    Bonjour a tous
    je souhaite récupérer des des données depuis un site web en le parcourant avec la pagination, jusqu'ici tout va bien , mais après 2 pages le site affiche des popups de pub google et autres qui bloquent mon scripte, j'utilise la librairie selinium pour parcourir les pages, voici 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
    20
    21
    22
    23
    24
    25
    options = Options()
    options.add_argument("--disable-notifications")
     
    driver = webdriver.Chrome('C:\\Users\\Animalx\\Desktop\\Scrapping-oued\\chromedriver.exe',chrome_options=options)
     
    driver.get('https://www.ouedkniss.com/automobiles')
    cond = True
    urls = []
     
    while cond:
     
        annonces=driver.find_elements_by_class_name('annonce_titre')
        for i in annonces:
            urls.append(i.find_element_by_tag_name('a').get_property('href'))
        try:
            driver.find_element_by_class_name('page_arrow').click()
            if driver.find_element_by_xpath('//*[@id="creative-content"]/canvas'):
                #ici j'ai recupéré les xPath de la iframe et le boutton dimiss mais ca ne marche pas
                driver.find_element_by_xpath('//*[@id="dismiss-button"]/div/svg/path[1]').click()
                print('ads Bloked .................................')
     
        except:
            cond =False
     
    print (len(urls))
    j'ai beau cherché dans la documentations et les forums mais je ne trouve pas de solution;
    Merci d'avance de votres aide.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par animalx123 Voir le message
    j'ai beau cherché dans la documentations et les forums mais je ne trouve pas de solution
    SI je cherche avec les mots clefs "selenium handle popup", on trouve des tutos comme celui-ci (et d'autres).

    Après si vous voulez qu'on vous les traduise en français... c'est pas moi qui va le faire.

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

  3. #3
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 951
    Points : 9 280
    Points
    9 280
    Par défaut
    hello,
    si tu accèdes aux autres pages de ton site non pas en cliquant sur le bouton suivant mais en chargeant la page concernée, il n'y a pas de pubs bloquantes.
    Et pour accélérer le chargement des pages, il faut créer un profil dans un répertoire accessible en écriture (option --user-data-dir). Cela va permettre de gérer le cache, les cookies etc ...

    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
    # coding=utf-8
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    options = Options()
    options.add_argument("--user-data-dir=D:\\Temp\\chrome") #Path to your chrome profile
    driver = webdriver.Chrome(options=options,service_args=["--verbose", "--log-path=D:\\temp\chrome.log"])
    driver.set_window_size(640, 640)
    cond = True
    urls = []
    j=1
    while cond:
        driver.get('https://www.ouedkniss.com/automobiles/' + str(j))
        annonces=driver.find_elements_by_class_name('annonce_titre')
        for i in annonces:
            urls.append(i.find_element_by_tag_name('a').get_property('href'))
        j +=1
        if j == 10: # à modifier suivant le nombre de pages désirées
            cond = False
     
     
    print (len(urls))
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  4. #4
    Membre régulier Avatar de animalx123
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2015
    Messages : 148
    Points : 96
    Points
    96
    Par défaut
    ça vraiment réglé mon problème , merci @jurassic pork

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème avec les popups
    Par ironboy007 dans le forum IRC / mIRC
    Réponses: 3
    Dernier message: 17/06/2008, 12h55
  2. probleme avec les popup
    Par bocande dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/12/2006, 21h53
  3. Fermer tous les popup
    Par Beewiz dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/08/2006, 18h09
  4. Fermer une popup avec onclick
    Par griese dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 06/07/2006, 17h27
  5. [MFC] Fermer les Popup, mais pas l'appli
    Par Grey dans le forum MFC
    Réponses: 4
    Dernier message: 16/11/2005, 20h30

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