Script Python qui va de la recherche Google à l'enregistrement de la page de résultats de recherche à la fois

Objectif

Même si vous tapez des mots clés comme vous pouvez l'imaginer et effectuez une recherche Google, cela a tendance à être inefficace, comme les recherches en double, sauf si vous enregistrez ce que vous avez recherché et comment.

Cependant, il est difficile de prendre des notes une par une, donc je pense que beaucoup de gens enregistrent la page de résultats de recherche de Google sous la forme d'une source de page ou d'une archive Web et la considèrent à nouveau lentement.

Cependant, c'est aussi un peu ennuyeux.

Par conséquent, nous avons résumé le processus de la saisie des mots clés de recherche à l'enregistrement du HTML en une seule étape.

une fonction

-Si vous donnez (1) des mots-clés de recherche et (2) le nombre de résultats affichés par page, la page de résultats de recherche sera enregistrée sous forme de fichier HTML dans le répertoire de travail (CWD).

Comment utiliser

Vous serez invité deux fois, donc

--Saisissez la requête (mot-clé de recherche) à la première invite, --Si vous souhaitez ajouter des options de recherche (site: go.jp, filetype: pdf, etc.), saisissez-les ensemble à ce stade. * c.f. * Améliorer la précision de la recherche sur le Web

À propos du script

――C'est inutilement une classe pour diverses raisons, mais comprenez s'il vous plaît ... ――Cette fois, lorsque vous obtenez html_text, vous le déposez immédiatement dans un fichier HTML, mais vous pouvez bien sûr l'utiliser tel quel sans le déposer dans un fichier.

Structure de la page de résultats de recherche

――Lorsque vous regardez le HTML, les destinations des liens des résultats apparaissent quatre fois par cas, changeant leur apparence et leur forme. ――Il n'y a que le siège de la structuration (?), Donc c'est vraiment bien fait ...

google_fetcher.py


import os
from urllib.parse import quote_plus, urlunsplit
import requests
import re
PROJECT_ROOT_PATH = '.'


class GoogleResultsPage:
    '''Query text, Results number per page -> search results response'''
    def __init__(self, query, rslts_num):
        self.__qry = query
        self.__num = rslts_num

        query_string  = 'q='+quote_plus(self.__qry)+'&num='+str(self.__num)
        search_string = urlunsplit(
            ('https', 'www.google.com', '/search', query_string, ''))
        self.__sstr   = search_string

    def page_fetcher(self):
        '''Fetch the result page and return as a text response'''
        my_headers = {'user-agent':
                      'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6)\
                      AppleWebKit/537.36 (KHTML, like Gecko)\
                      Chrome/84.0.4147.105 Safari/537.36'}
        response = requests.get(self.__sstr,
                                headers=my_headers, timeout=(3.05, 27))
        return response.text


################################
# Output to a file.
def html_to_file(html_text):
    '''Text response content to a HTML file.'''
    output_file_name = re.sub(r'[\/.:;*?"<>|  ]', r'_', query)+'.html'
    output_file_path = os.path.join(PROJECT_ROOT_PATH, output_file_name)
    with open(output_file_path, 'w') as f:
        f.write(html_text)

    print('Done! ', end='')
    print('File path:', output_file_path)

if __name__ == '__main__':
    query     = input('Query? >>  ')
    rslts_num = input('Results per page (upto 100)? >>  ')

    html_text  = GoogleResultsPage(query, rslts_num).page_fetcher()
    html_to_file(html_text)

Recommended Posts

Script Python qui va de la recherche Google à l'enregistrement de la page de résultats de recherche à la fois
Une histoire sur un débutant Python essayant d'obtenir des résultats de recherche Google à l'aide de l'API
Script Python qui peut vérifier l'état du serveur à partir du navigateur
Un script qui renvoie 0, 1 attaché au premier Python prime
"Kit Python" qui appelle des scripts Python depuis Swift
Script Python qui crée un fichier JSON à partir d'un fichier CSV
Un script python qui obtient le nombre de travaux pour une condition spécifiée sur Indeed.com
Créez un script python pour vérifier si le lien à l'URL spécifiée est valide
Un script Python qui enregistre une image de presse-papiers (GTK) dans un fichier.
Comment exécuter un programme Python à partir d'un script shell
Création d'un script Python prenant en charge l'API e-Stat (ver.2)
J'ai essayé de changer le script python de 2.7.11 à 3.6.0 sur Windows10
Un script python qui convertit les données Oracle Database en csv
Script Python qui compare le contenu de deux répertoires
Extraire la valeur la plus proche d'une valeur à partir d'un élément de liste en Python
J'ai essayé de créer un script qui retrace les tweets d'un utilisateur spécifique sur Twitter et enregistre l'image publiée à la fois
Créez un script shell pour exécuter le fichier python plusieurs fois
À partir d'un livre que le programmeur peut apprendre ... (Python): trouver la valeur la plus fréquente
J'ai écrit un script pour extraire les liens de pages Web en Python
[python] Une note que j'ai commencé à comprendre le comportement de matplotlib.pyplot
[Python] Un programme qui fait pivoter le contenu de la liste vers la gauche
Passez les éléments sélectionnés dans Tablacus Explorer de JScript à python et renommez-les tous à la fois
Script Python qui collecte automatiquement des images typiques à l'aide de la recherche d'images Bing
[Python] Explorez les caractéristiques des titres des meilleurs sites dans les résultats de recherche Google
Extraire les lignes qui correspondent aux conditions d'un fichier texte avec python
À partir d'un livre que le programmeur peut apprendre ... (Python): Recherche conditionnelle (valeur maximale)
[Aux messieurs sur Twitter] J'ai écrit un script pour convertir immédiatement .jpg-large en .jpg.
D'un livre qui apprend de manière intéressante la façon de penser du programmeur (Python)
J'ai refactoré "J'ai essayé de faire un script qui enregistre les images postées à la fois en retournant sur les tweets d'un utilisateur spécifique sur Twitter".
Convertir un mémo à la fois avec Python 2to3
Exécuter un script depuis Jupyter pour traiter
Comment mettre à jour Google Sheets à partir de Python
Rechercher le labyrinthe avec l'algorithme python A *
Exécuter l'interpréteur Python dans le script
Utiliser Django à partir d'un script Python local
[Python3] Code qui peut être utilisé lorsque vous souhaitez modifier l'extension d'une image à la fois
[Python] Un programme qui arrondit le score
Comment exécuter des scripts Maya Python
L'histoire de l'adresse IPv6 que je souhaite conserver au minimum
Créez un plugin qui vous permet de rechercher les onglets Sublime Text 3 en Python
Script Python qui lit les fichiers SQL, exécute BigQuery et enregistre le csv
Autour de l'authentification de PyDrive2, un package pour faire fonctionner Google Drive avec Python
Version Python (PHP vers Python) qui supprime la chaîne de caractères suivante de la chaîne de caractères spécifiée (extension)
[Python] Comment enregistrer des images sur le Web à la fois avec Beautiful Soup
[Python] Solution au problème que les éléments sont liés lors de la copie d'une liste
J'ai écrit un script pour relancer la montre gulp qui mourra bientôt
Script Python pour obtenir une liste d'exemples d'entrée pour le concours AtCoder
Convertir l'API cURL en script Python (à l'aide du stockage d'objets IBM Cloud)
[Python] J'ai essayé d'obtenir le nom du type sous forme de chaîne de caractères à partir de la fonction type
J'ai fait un script pour enregistrer la fenêtre active en utilisant win32gui de Python
[Python] Téléchargez l'image d'origine à partir de la recherche d'images Google
Modifier Excel à partir de Python pour créer un tableau croisé dynamique
Sortie CSV de la recherche Google avec [Python]! 【Facile】