[Sélénium Python] Titre et URL de la sortie CSV après avoir récupéré les résultats de recherche Google

environnement

macOS Catalina 10.15.3 Python 3.6.5

Aperçu

Recherchez sur Google avec n'importe quel mot et obtenez une liste des résultats de recherche jusqu'à n'importe quel nombre de pages Titre de sortie et URL vers csv

Méthode (copie OK)

# !python3
#Obtenez le titre et l'URL des résultats de recherche Google et affichez le fichier CSV

import time, chromedriver_binary, os, csv
from selenium import webdriver

output_path = "/Répertoire de sortie final csv
os.chdir(putput_path)                        

driver = webdriver.Chrome()                 #Préparer Chrome

#Ouvrez le HTML
driver.get("https://www.google.com/")       #Ouvrez Google
search = driver.find_element_by_name("q")   #Barre de recherche"q"Spécifier
search.send_keys(“xxx yyy zzz“)  #Envoyer le mot de recherche
search.submit()                             #Effectuer une recherche
time.sleep(3)                               #Attendez 3 secondes

def ranking(driver):
    i = 1 #Fixé à 1
    i_max = 10 #Combien de pages souhaitez-vous rechercher?
    title_list = []
    link_list = []

    #Boucle jusqu'à ce que la page actuelle dépasse la page d'analyse maximale spécifiée(i_max)
    while i <= i_max:
        #Le titre et le lien sont de classe="r"Est dans
        class_group = driver.find_elements_by_class_name("r")
        # class="r"Extraire les titres et les liens de,Boucle For à ajouter à la liste
        for elem in class_group:
            title_list.append(elem.find_element_by_class_name('LC20lb').text)           #Titre(class="LC20lb")
            link_list.append(elem.find_element_by_tag_name('a').get_attribute('href'))  #Lien(href d'une balise)

        #Il n'y a qu'un seul bouton "Suivant", mais j'ose rechercher plusieurs éléments par éléments.S'il s'agit d'une liste vide, cela signifie la dernière page.
        if driver.find_elements_by_id("pnnext") == []:
            i = i_max + 1   #Sans la page suivante,Dépasse de force le nombre maximum de pages et met fin à la boucle
        else:
            #L'URL de la page suivante est id="pnnext"Attribut Href
            next_page = driver.find_element_by_id("pnnext").get_attribute("href")
            driver.get(next_page)
            i = i + 1       #Parcourez la page
            time.sleep(3)   #3 secondes de pause,Répétez cette opération jusqu'au nombre maximal de pages spécifié
    return title_list, link_list 

#Exécutez la fonction de classement définie ci-dessus pour obtenir le titre et la liste d'URL
title, link = ranking(driver)

#Cracher avec csv[[a,1],[b,2]]Créez une liste comme
result = [list(row) for row in zip(title, link)]

#sortie csv en utilisant result
with open("result.csv", mode="w", encoding="utf-8") as f:
    writer = csv.writer(f, lineterminator="\n")
    writer.writerows(result)

#Fermer le navigateur
driver.quit()

Recommended Posts

[Sélénium Python] Titre et URL de la sortie CSV après avoir récupéré les résultats de recherche Google
Gratter les résultats de recherche de Google Actualités en Python (2) Utiliser Beautiful Soup
Sortie CSV de la recherche Google avec [Python]! 【Facile】
Recherche récursive de fichiers et de répertoires en Python et sortie
Grattage au sélénium en Python
Grattage avec du sélénium en Python
[Python scraping] J'ai essayé la recherche Google Top10 en utilisant Beautifulsoup et sélénium
Scraping avec Selenium en Python (Basic)
Grattage avec Python, Selenium et Chromedriver
Exporter et exporter des fichiers en Python
Sélénium et python pour ouvrir Google
[Python scraping] Affiche l'URL et le titre du site contenant un mot-clé spécifique dans un fichier texte
Entrée / sortie de données en Python (CSV, JSON)
[Python] Explorez les caractéristiques des titres des meilleurs sites dans les résultats de recherche Google
Pratiquer le web scraping avec Python et Selenium
[Python] Comment nommer les données de table et les sortir avec csv (méthode to_csv)
J'ai essayé le web scraping en utilisant python et sélénium
Essayez d'exécuter Google Chrome avec Python et Selenium
Évaluation de la vitesse de sortie du fichier CSV en Python
CSV en Python
[Mac] Un moyen très simple d'exécuter des commandes système en Python et de générer les résultats
Traitement pleine largeur et demi-largeur des données CSV en Python
Implémenter la recherche de priorité en profondeur (DFS) et la recherche de priorité de largeur (BFS) en python
Dichotomie avec Python
entrée et sortie python
Recherche linéaire en Python
Sortie japonaise avec Python
Grattage avec du sélénium [Python]
Recherche binaire en Python
J'ai essayé de [gratter] des images de mode et des phrases de texte avec Python.
Application pour afficher et rechercher des mémos locaux (agenda) en Python
En Python, les éléments de la liste sont triés et sortis sous forme d'éléments et de multiples.
[Selenium] Changer la destination de sortie du journal lors de l'exécution de phantomjs avec python3
Google recherche la chaîne sur la dernière ligne du fichier en Python
Exportez les informations produit au format CSV à l'aide de l'API de recherche de produits Rakuten [Python]