Es ist möglich, dies zu tun. Das Setup ist ... nicht sehr einfach, aber das Endergebnis ist, dass Sie das gesamte Web von Python mit wenigen Zeilen Code durchsuchen können.
Es gibt insgesamt 3 Hauptschritte.
1. Schritt: Holen Google API-Schlüssel
Die pygoogle ‚s-Seite heißt es:
Leider Google nicht mehr unterstützt die SOAP-API für die Suche, noch tun sie neue Lizenzschlüssel zur Verfügung stellen. Kurz gesagt, PyGoogle ist ziemlich viel zu diesem Zeitpunkt tot.
Sie können stattdessen ihre AJAX-API verwenden. Werfen Sie einen Blick hier für Beispielcode: http://dcortesi.com/2008/05/28/google-ajax-search-api-example-python-code/
... aber man kann eigentlich nicht AJAX API verwenden entweder. Sie müssen einen Google API-Schlüssel erhalten. https://developers.google.com/api-client-library/python/guide/aaa_apikeys Für den einfachen experimentellen Gebrauch schlage ich "Serverschlüssel" vor.
2. Schritt: Setup benutzerdefinierte Suchmaschine, so dass Sie das gesamte Web
der Tat suchen, ist die alte API nicht verfügbar. Die beste neue API, die verfügbar ist, ist die benutzerdefinierte Suche. Es scheint nur zu unterstützen, in bestimmten Bereichen suchen jedoch nach folgenden this SO answer Sie die gesamte Web durchsuchen können:
- Vom Google Custom Search Homepage (http://www.google.com/cse/), klicken Sie auf eine benutzerdefinierte Suchmaschine erstellen.
- Geben Sie einen Namen und eine Beschreibung für Ihre Suchmaschine ein.
- Geben Sie unter Suchmaschine definieren im Feld Zu durchsuchende Websites mindestens eine gültige URL ein (setzen Sie jetzt einfach www.anyurl.com, um hinter diesen Bildschirm zu gelangen. Mehr dazu später).
- Wählen Sie die gewünschte CSE-Edition aus und akzeptieren Sie die Nutzungsbedingungen, und klicken Sie dann auf Weiter. Wählen Sie die gewünschte Layoutoption aus, und klicken Sie dann auf Weiter.
- Klicken Sie auf einen der Links im Abschnitt Nächste Schritte, um zu Ihrem Steuerungsfeld zu navigieren.
- Klicken Sie im linken Menü unter Systemsteuerung auf Grundlagen.
- Wählen Sie im Bereich "Sucheinstellungen" die Option "Das gesamte Web durchsuchen", aber die darin enthaltenen Websites aus.
- Klicken Sie auf Änderungen speichern.
- Klicken Sie im linken Menü unter Systemsteuerung auf Sites.
- Löschen Sie die Website, die Sie bei der Ersteinrichtung eingegeben haben. https://support.google.com/customsearch/answer/2631040
3. Schritt:
Dieser Ansatz von Google wird auch empfohlen, Google API-Client für Python
pip install google-api-python-client
, weitere Infos hier installieren:
4. Schritt (Bonus): tun, um die Suche
So, nachdem diese nach oben einstellen, können Sie die Codebeispiele aus wenigen Orten folgen:
und mit diesem Ende:
from googleapiclient.discovery import build
import pprint
my_api_key = "Google API key"
my_cse_id = "Custom Search Engine ID"
def google_search(search_term, api_key, cse_id, **kwargs):
service = build("customsearch", "v1", developerKey=api_key)
res = service.cse().list(q=search_term, cx=cse_id, **kwargs).execute()
return res['items']
results = google_search(
'stackoverflow site:en.wikipedia.org', my_api_key, my_cse_id, num=10)
for result in results:
pprint.pprint(result)
Nach einigen Optimierungen Sie einige Funktionen schreiben könnte, die genau wie Ihr Snippet verhalten, aber ich werde diesen Schritt hier überspringen.
Es sieht so aus, als ob die benutzerdefinierte Suche Ergebnisse im Cache zurückgibt, die nicht mit den neuesten Google-Funden übereinstimmen? – Alex