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.
-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.
Sie werden also zweimal dazu aufgefordert
--Geben Sie die Abfrage (Suchbegriff) bei der ersten Eingabeaufforderung ein.
――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.
――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)