Python-Skript, das von der Google-Suche zum sofortigen Speichern der Suchergebnisseite führt

Zweck

Selbst wenn Sie Keywords eingeben, während Sie an sie denken, und eine Google-Suche durchführen, ist diese in der Regel ineffizient, z. B. doppelte Suchvorgänge, wenn Sie nicht aufzeichnen, wonach und wie Sie gesucht haben.

Es ist jedoch mühsam, sich Notizen nacheinander zu machen. Ich denke, dass viele Leute die Suchergebnisseite von Google in Form einer Seitenquelle oder eines Webarchivs speichern und sie langsam erneut betrachten.

Das ist aber auch etwas nervig.

Daher haben wir den Prozess von der Eingabe von Suchwörtern bis zum Speichern von HTML in einem Schritt zusammengefasst.

Funktion

-Wenn Sie (1) Suchwörter und (2) die Anzahl der pro Seite angezeigten Ergebnisse angeben, wird die Suchergebnisseite als HTML-Datei im Arbeitsverzeichnis (CWD) gespeichert.

Wie benutzt man

Sie werden also zweimal dazu aufgefordert

--Geben Sie die Abfrage (Suchbegriff) bei der ersten Eingabeaufforderung ein.

Über das Skript

――Es ist aus verschiedenen Gründen nutzlos eine Klasse, aber bitte haben Sie Verständnis ... ――Dieses Mal, wenn Sie html_text erhalten, legen Sie es sofort in einer HTML-Datei ab, aber Sie können es natürlich so verwenden, wie es ist, ohne es in einer Datei abzulegen.

Seitenstruktur der Suchergebnisse

――Wenn Sie sich den HTML-Code ansehen, werden die Linkziele der Ergebnisse viermal pro Fall angezeigt, wodurch sich Aussehen und Form ändern. ――Es gibt nur den Hauptsitz der Strukturierung (?), Also ist es wirklich gut gemacht ...

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

Python-Skript, das von der Google-Suche zum sofortigen Speichern der Suchergebnisseite führt
Eine Geschichte über einen Python-Anfänger, der versucht, Google-Suchergebnisse mithilfe der API abzurufen
Python-Skript, das den Status des Servers über den Browser überprüfen kann
Ein Skript, das 0, 1 an die erste Python-Primzahl zurückgibt
"Python Kit", das Python-Skripte von Swift aufruft
Python-Skript, das eine JSON-Datei aus einer CSV-Datei erstellt
Ein Python-Skript, das die Anzahl der Jobs für eine bestimmte Bedingung von Indeed.com abruft
Erstellen Sie ein Python-Skript, um zu überprüfen, ob der Link unter der angegebenen URL gültig ist
Ein Python-Skript, das ein GTK-Bild (Clipboard) in einer Datei speichert.
So führen Sie ein Python-Programm in einem Shell-Skript aus
Erstellen eines Python-Skripts, das die e-Stat-API unterstützt (Version 2)
Ich habe versucht, das Python-Skript unter Windows 10 von 2.7.11 auf 3.6.0 zu ändern
Ein Python-Skript, das Oracle-Datenbankdaten in CSV konvertiert
Python-Skript, das den Inhalt zweier Verzeichnisse vergleicht
Extrahieren Sie den Wert, der einem Wert am nächsten kommt, aus einem Listenelement in Python
Ich habe versucht, ein Skript zu erstellen, das die Tweets eines bestimmten Benutzers auf Twitter verfolgt und das veröffentlichte Bild sofort speichert
Erstellen Sie ein Shell-Skript, um die Python-Datei mehrmals auszuführen
Aus einem Buch, das der Programmierer lernen kann ... (Python): Finden Sie den häufigsten Wert
Ich habe ein Skript geschrieben, um Webseiten-Links in Python zu extrahieren
[Python] Ein Hinweis, dass ich das Verhalten von matplotlib.pyplot zu verstehen begann
[Python] Ein Programm, das den Inhalt der Liste nach links dreht
Übergeben Sie die ausgewählten Elemente in Tablacus Explorer von JScript an Python und benennen Sie sie alle gleichzeitig um
Python-Skript, das mithilfe der Bing-Image-Suche automatisch typische Bilder sammelt
[Python] Untersuchen Sie die Eigenschaften der Titel der Top-Websites in den Google-Suchergebnissen
Extrahieren Sie mit Python Zeilen, die den Bedingungen entsprechen, aus einer Textdatei
Aus einem Buch, das der Programmierer lernen kann ... (Python): Bedingte Suche (Maximalwert)
[An die Herren auf Twitter] Ich habe ein Skript geschrieben, um .jpg-large sofort in .jpg zu konvertieren.
Aus einem Buch, das die Denkweise des Programmierers interessanterweise gelernt hat (Python)
Ich habe "Ich habe versucht, ein Skript zu erstellen, das gepostete Bilder sofort speichert, indem ich zu den Tweets eines bestimmten Benutzers auf Twitter zurückgekehrt bin" überarbeitet.
Konvertieren Sie Memos sofort mit Python 2to3
Führen Sie ein Skript von Jupyter aus, um es zu verarbeiten
So aktualisieren Sie Google Sheets von Python
Durchsuche das Labyrinth mit dem Python A * -Algorithmus
Führen Sie den Python-Interpreter im Skript aus
Verwenden Sie Django aus einem lokalen Python-Skript
[Python3] Code, der verwendet werden kann, wenn Sie die Erweiterung eines Bildes sofort ändern möchten
[Python] Ein Programm, das die Partitur rundet
So führen Sie Maya Python-Skripte aus
Die Geschichte der IPv6-Adresse, die ich auf ein Minimum beschränken möchte
Erstellen Sie ein Plugin, mit dem Sie in Python nach Registerkarten für Sublime Text 3 suchen können
Python-Skript, das SQL-Dateien liest, BigQuery ausführt und CSV speichert
Rund um die Authentifizierung von PyDrive2, einem Paket zum Betreiben von Google Drive mit Python
Python-Version (PHP zu Python), die die nachfolgende Zeichenfolge aus der angegebenen Zeichenfolge (Erweiterung) löscht
[Python] So speichern Sie Bilder mit Beautiful Soup sofort im Web
[Python] Lösung für das Problem, dass Elemente beim Kopieren einer Liste verknüpft werden
Ich habe ein Skript geschrieben, um die Schluckuhr wiederzubeleben, die bald sterben wird
Python-Skript zum Abrufen einer Liste von Eingabebeispielen für den AtCoder-Wettbewerb
Konvertieren der cURL-API in ein Python-Skript (mithilfe des IBM Cloud-Objektspeichers)
[Python] Ich habe versucht, den Typnamen als Zeichenfolge aus der Typfunktion abzurufen
Ich habe ein Skript erstellt, das das aktive Fenster mit win32gui von Python aufzeichnet
[Python] Laden Sie das Originalbild von der Google Bildsuche herunter
Bearbeiten Sie Excel in Python, um eine Pivot-Tabelle zu erstellen
CSV-Ausgabe der Google-Suche mit [Python]! 【Einfach】