Google-Suche aus Python-Programm

stimmen
-1

Ich versuche, eine Eingabedatei zu nehmen, jede Zeile lesen, Google-Suche mit dieser Linie und drucke alle Suchergebnisse aus der Abfrage nur wenn das Ergebnis von einer bestimmten Website. Ein einfaches Beispiel meines Punkt zu illustrieren, wenn ich Hund suche ich aus wikipedia gedruckt nur Ergebnisse will, ob das ein Ergebnis oder zehn Ergebnisse von wikipedia sein. Mein Problem ist, ich habe immer wirklich seltsam Ergebnisse. Unten ist mein Python-Code, der eine bestimmte URL enthält Ich will Ergebnisse.

Mein Programm

inputFile = open(small.txt, 'r') # Makes File object
outputFile = open(results1.txt, w) 
dictionary = {}  # Our hash table
compare = www.someurl.com/ # urls will compare against this string

from googlesearch import GoogleSearch

for line in inputFile.read().splitlines():
    lineToRead = line
    dictionary[lineToRead] = [] #initialzed to empty list
    gs = GoogleSearch(lineToRead)
    for url in gs.top_urls():
        print url # check to make sure this is printing URLs
        compare2 = url
        if compare in compare2: #compare the two URLs, if they match 
            dictionary[lineToRead].append(url) #write out query string to dictionary key & append EACH url that matches 
inputFile.close()

for i in dictionary:
    print i # this print is a test that shows what the query was in google (dictionary key)
    outputFile.write(i+\n)
    for j in dictionary[i]: 
        print j # this print is a test that shows the results from the query which should look like correct URL: www.medicaldepartmentstore.com/...(dictionary value(s))
        outputFile.write(j+\n) #write results for the query string to the output file.

Meine Ausgabedatei ist falsch, so wie es angenommen hat, formatiert werden soll

query string
http://www.
http://www.
http://www.
query string
http://www.
query string
http://www.medical...
http://www.medical...
Veröffentlicht am 18/12/2015 um 23:12
vom benutzer
In anderen Sprachen...                            


2 antworten

stimmen
0

Können Sie den Umfang der Ergebnisse an die spezifischen Stelle (zB Wikipedia) zum Zeitpunkt der Abfrage begrenzen? Zum Beispiel mit:

gs = GoogleSearch("site:wikipedia.com %s" % query) #as shown in https://pypi.python.org/pypi/googlesearch/0.7.0

Dies würde anweisen Google von dieser Domäne nur die Ergebnisse zurück, so dass Sie sie nicht filtern müssen, nachdem die Ergebnisse zu sehen.

Beantwortet am 18/12/2015 um 23:30
quelle vom benutzer

stimmen
0

Ich denke , @Cahit die richtige Idee hat. Der einzige Grund , warum Sie Linien würde immer nur die Query - String ist , weil die Domain , die Sie für nicht in die gesucht wurden top_urls(). Sie können dies durch Überprüfung überprüfen , ob das Array im Wörterbuch für einen bestimmten Schlüssel enthalten ist leer

for i in dictionary:
    outputFile.write("%s: " % str(i))
    if len(dictionary[i]) == 0:
        outputFile.write("No results in top_urls\n")
    else:
        outputFile.write("%s\n" % ", ".join(dictionary[i]))
Beantwortet am 19/12/2015 um 00:13
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more