Sortie CSV de la recherche Google avec [Python]! 【Facile】

Article original

Contexte

Lorsque j'ai recherché quelque chose, je voulais extraire le résumé, le titre et l'URL de la recherche Google, car le résumé Google me dit ce que je veux rechercher.

Objectif

Automatisez la recherche Google, obtenez des résultats de recherche, convertissez en CSV et produisez. En automatisant, vous pouvez réduire le temps passé à rechercher.

Définition d'exigence

  1. Fonctionnement automatique du navigateur
  2. Obtenez le titre, le résumé et l'URL des résultats de la recherche
  3. Exportez le résultat obtenu au format CSV

environnement

Méthode de construction de l'environnement

Le programme créé cette fois-ci est basé sur la version 81 de Chrome. Par conséquent, veuillez définir la version de Chrome sur 81 avant d'exécuter le programme. ↓ C'est facile à comprendre. Comment vérifier la version de Google Chrome

pip install selenium
pip install chromedriver_binary

Code réellement écrit

import csv
import time  #Requis pour utiliser le sommeil
from selenium import webdriver  #Utiliser automatiquement le navigateur Web (python-m pip install selenium)
import chromedriver_binary  #Code pour passer le chemin

def ranking(driver):
    i = 1  #Définir le numéro de boucle et le numéro de page

    title_list = []  #Préparez une liste vide pour stocker le titre
    link_list = []  #Préparez une liste vide pour stocker l'URL
    summary_list = []
    RelatedKeywords = []

    #Boucle jusqu'à ce que la page actuelle dépasse la page d'analyse maximale spécifiée
    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_group1 = driver.find_elements_by_class_name('s')
        class_group2 = driver.find_elements_by_class_name('nVcaUb')
        #Boucle For qui extrait les titres et les liens et les ajoute à 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(attribut href d'une balise)

        for elem in class_group1:
            summary_list.append(elem.find_element_by_class_name('st').text)  #Lien(attribut href d'une balise)

        for elem in class_group2:
            RelatedKeywords.append(elem.text)  #Lien(attribut href d'une balise)

        #Il n'y a qu'un seul "Suivant", mais j'ose chercher plusieurs par éléments. Une liste vide signifie la dernière page.
        if driver.find_elements_by_id('pnnext') == []:
            i = i_max + 1
        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)  #Passer à la page suivante
            i = i + 1  #mettre à jour i
            time.sleep(3)  #Attendez 3 secondes

    return title_list, link_list, summary_list, RelatedKeywords  #Spécifiez une liste de titres et de liens comme valeur de retour



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

#Ouvrir un exemple de HTML
driver.get('https://www.google.com/')  #Ouvrez Google
i_max = 5  #Définissez le nombre de pages à analyser
search = driver.find_element_by_name('q')  #Champ de recherche en HTML(name='q')Spécifier
search.send_keys('Automatisation du grattage"Python"')  #Envoyer le mot de recherche
search.submit()  #Effectuer une recherche
time.sleep(1.5)  # 1.Attendez 5 secondes

#Exécutez la fonction de classement pour obtenir le titre et la liste des URL
title, link, summary, RelatedKeywords = ranking(driver)


csv_list = [["Classement", "Titre", "emballer", "Lien", "Mots clés associés"]]

for i in range(len(title)):
    add_list=[i+1,title[i],summary[i],link[i]]
    csv_list.append(add_list)

#Enregistrer la liste de titres au format csv

with open('Search_word.csv','w',encoding="utf-8_sig") as f:
    writecsv = csv.writer(f, lineterminator='\n')
    writecsv.writerows(csv_list)

driver.quit()


Impressions

Au total, j'ai pu le créer en environ 4 heures. Je suis satisfait car je peux désormais faire fonctionner automatiquement le navigateur en utilisant du sélénium et également obtenir le titre. Vous pouvez l'utiliser lors de la rédaction d'un blog!

Qu'est-ce que je peux faire

  1. Vous pouvez maintenant lire le document sans aversion
  2. Automatisation de la recherche Google
  3. Sortie au format CSV

Tâche

  1. Vérifiez comment utiliser la liste Rendez cela possible en associant Google Colab et des feuilles de calcul
  2. Je souhaite pouvoir effectuer une recherche à partir de la feuille de calcul comme indiqué dans les deux dernières URL de référence.
  3. Si le nom de la classe HTML change, cela ne sera plus possible, je veux donc pouvoir acquérir des données de manière flexible même si le nom de la classe change.

Les références

  1. J'ai essayé d'extraire le titre de la recherche Google et la liste d'URL avec Python
  2. Locating Elements
  3. Récit de difficultés à ouvrir des fichiers autres que CP932 (Shift-JIS) encodés sous Windows
  4. Je souhaite pouvoir effectuer une recherche dans la feuille de calcul comme indiqué dans les deux dernières URL de référence.
  5. [Python] Que faire si vous ne pouvez pas extraire les résultats de recherche Google [avec commentaire]
  6. [[Python]] Sortie csv de la recherche Google![Facile](article original)](https://acfoapon.hatenablog.com/entry/2020/04/16/120000?_ga=2.113898116.2051319045.1587005144-1011829840.1582693178)

Prochaine mise en œuvre

Préparez une liste CSV et créez un programme pour y lire les mots recherchés. Combinez avec le programme créé cette fois pour faciliter la recherche avec plusieurs mots de recherche. Il permet également de stocker des données à l'aide de feuilles de calcul.

Recommended Posts

Sortie CSV de la recherche Google avec [Python]! 【Facile】
Sortie vers un fichier csv avec Python
Python> Numéros de sortie de 1 à 100, 501 à 600> Pour csv
[Python] Téléchargez l'image d'origine à partir de la recherche d'images Google
Recherche séquentielle avec Python
Lire JSON avec Python et générer un CSV
Générez une instruction d'insertion à partir de CSV avec Python.
Dichotomie avec python
Dichotomie avec Python 3
Convertir JSON en CSV avec Python de Splunk
Enregistrez automatiquement les images de vos personnages préférés à partir de la recherche d'images Google avec Python
[Sélénium Python] Titre et URL de la sortie CSV après avoir récupéré les résultats de recherche Google
Un moyen facile de gratter avec Python en utilisant Google Colab
[Python-pptx] Afficher les informations de police PowerPoint au format csv avec python
Supprimer les en-têtes de fichiers CSV à plusieurs formats avec python
Lire csv avec des pandas python
[Analyse de co-occurrence] Analyse de co-occurrence facile avec Python! [Python]
Essayez la sortie Python avec Haxe 3.2
Étudiez Python avec Google Colaboratory
Synchronisation facile des dossiers avec Python
Recherche de bits complète avec Python
Écrire en csv avec Python
Compilation facile de Python avec NUITKA-Utilities
Serveur HTTP facile avec Python
Accédez à Google Drive avec Python
Les moteurs de recherche fonctionnent avec python
Rechercher des tweets Twitter avec Python
Avec skype, notifiez avec skype de python!
Télécharger le fichier csv avec python
Rationalisez la recherche Web avec Python
Remarques sur l'importation de données depuis MySQL ou CSV avec Python
Facile avec juste Python! Affichez les figures Graphviz au format draw.io!
Obtenez des données de l'API d'analyse avec le client API Google pour python
Exportez les informations produit au format CSV à l'aide de l'API de recherche de produits Rakuten [Python]
Appeler C depuis Python avec DragonFFI
[Python] Traitement parallèle facile avec Joblib
Créer Apache Log CSV avec Python
Utilisation de Rstan de Python avec PypeR
[Python] Ecrire dans un fichier csv avec Python
Installez Python à partir des sources avec Ansible
Entrée / sortie avec Python (mémo d'apprentissage Python ⑤)
Utiliser de force Google Translate à partir de python
Programmation facile Python + OpenCV avec Canopy
[Note] Sortie Hello world avec python
Sortie du journal de test unitaire avec python
Transmission de courrier facile avec Hâte Python3
Exécutez Aprili depuis Python sur Orange
Optimisation bayésienne très simple avec Python
Gérer les fichiers Excel CSV avec Python
Appelez python de nim avec Nimpy
Visualisez facilement vos données avec Python seaborn.
Lire et écrire du CSV avec Python
Exécution parallèle facile avec le sous-processus python
Charger fbx depuis python avec cinema4d
Utiliser l'API Google Analytics de Python
Extraire le jeu de données bigquery et la liste des tables avec python et la sortie en CSV