Google recherche de programme Python

voix
-1

Je suis en train de prendre un fichier d'entrée, lisez chaque ligne, la recherche google avec cette ligne et d'imprimer tous les résultats de la recherche de la requête que si le résultat est à partir d'un site Web spécifique. Un exemple simple pour illustrer mon point, si je recherche chien, je ne veux que les résultats imprimés de wikipedia, que ce soit un résultat ou dix résultats de wikipedia. Mon problème est que j'ai été obtenir des résultats vraiment bizarre. Voici mon code Python qui contient une URL spécifique que je veux des résultats de.

mon programme

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.

Mon fichier de sortie est incorrect, la façon dont il est censé être formaté est

query string
http://www.
http://www.
http://www.
query string
http://www.
query string
http://www.medical...
http://www.medical...
Créé 18/12/2015 à 23:12
utilisateur
Dans d'autres langues...                            


2 réponses

voix
0

Pouvez-vous limiter la portée des résultats sur le site spécifique (par exemple wikipedia) au moment de la requête? Par exemple, en utilisant:

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

Cela Google instructions pour revenir seulement les résultats de ce domaine, vous aurez donc pas besoin de les filtrer après avoir vu les résultats.

Créé 18/12/2015 à 23:30
source utilisateur

voix
0

Je pense que @Cahit a la bonne idée. La seule raison pour laquelle vous obtiendriez lignes de simplement la chaîne de requête est parce que le domaine que vous recherchez n'a pas été dans le top_urls(). Vous pouvez vérifier cela en vérifiant si le tableau contenu dans le dictionnaire pour une clé donnée est vide

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]))
Créé 19/12/2015 à 00:13
source utilisateur

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