Google search van Python-programma

stemmen
-1

Ik ben op zoek naar een input-bestand te nemen, lees elke regel, zoeken google met die lijn en alle zoekresultaten uit de query alleen als het resultaat is van een bepaalde website te drukken. Een eenvoudig voorbeeld om mijn punt te illustreren, als ik zoek hond die ik wil alleen de resultaten afgedrukt van wikipedia, of dat nu een resultaat of tien resultaten van wikipedia. Mijn probleem is dat ik heb steeds echt raar resultaten. Hieronder is mijn Python code die een specifieke URL Ik wil de resultaten van bevat.

mijn programma

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.

Mijn output bestand is onjuist, de manier waarop het zou moeten worden geformatteerd is

query string
http://www.
http://www.
http://www.
query string
http://www.
query string
http://www.medical...
http://www.medical...
De vraag is gesteld op 18/12/2015 om 23:12
user
In andere talen...                            


2 antwoorden

stemmen
0

Kun je de omvang van de resultaten aan de specifieke site (bijv wikipedia) beperken op het moment van de query? Bijvoorbeeld met behulp van:

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

Dit zou instrueren Google om alleen de resultaten van dat domein, zodat u niet nodig om ze te filteren na het zien van de resultaten.

antwoordde op 18/12/2015 om 23:30
bron van user

stemmen
0

Ik denk dat @Cahit heeft het juiste idee. De enige reden waarom zou je krijgen lijnen van alleen de query string is omdat het domein u zocht was niet in de top_urls(). U kunt dit controleren door te controleren of de array opgenomen in het woordenboek voor een bepaalde sleutel is leeg

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]))
antwoordde op 19/12/2015 om 00:13
bron van user

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