2016-07-17 14 views
0

Ich möchte Top-Ten-Ergebnis von Google-Suchmaschine erhalten. Ich schrieb:Google-Suche - Python

from google import search 
for i in search('python', stop=10): 
    print i 

Es gibt mehr als 10 Ergebnisse zurück. Was ist ein guter Weg, Top-n-Ergebnisse zu erhalten? Wenn ich stop = 10 bis stop = 2 ändere, wird genau die gleiche Anzahl von Ergebnissen zurückgegeben. Ist es möglich, nur Hauptdomain-Namen zu drucken (jetzt druckt es mehrere Links aus derselben Domain (zB Wikipedia) und auch Bilder, wenn sie sich auf der ersten Ergebnisseite befinden)?

Antwort

1

Sie können das googlescraper Modul hier verwenden.

Wie viele URLs haben wir auf allen Seiten erhalten?

Wie viele Treffer hat Google mit unserem Keyword gefunden (wie auf der ersten Seite gezeigt)?

print(results[0]['num_results_for_kw']) 

Sie diesen Link für weitere Informationen überprüfen können: Check this link

Hoffe, dass es helfen;)

+0

Ich lese darüber, aber es ist ein Modul für Python 3.4 und neuer. Ich benutze 2,7 ... – jundymek

1

Von the source code for search liest, sieht es wie das reale Verhalten ist, dass es gibt Seiten voller Ergebnisse bis es erreicht (oder passiert) stop. Wenn also 14 Links auf der ersten Suchergebnisseite angezeigt werden, erhalten Sie mindestens 14 Links.

Aber es ist ziemlich einfach, weniger als das aufzählen. Hier ist Code, der den Trick tun sollte:

from __future__ import print_function 
from itertools import islice 

from google import search 

for url in islice(search('python', stop=5), 0, 5): 
    print(url)