Google-søk fra Python-program

stemmer
-1

Jeg prøver å ta en input-fil, lese hver linje, søk google med den linjen og skrive ut alle søkeresultatene fra spørringen bare hvis resultatet er fra et bestemt nettsted. Et enkelt eksempel for å illustrere mitt poeng, hvis jeg søker dog jeg bare vil ha resultater som skrives ut fra wikipedia, enten det være ett resultat eller ti resultater fra wikipedia. Mitt problem er at jeg har fått veldig rare resultater. Nedenfor er min Python-kode som inneholder en bestemt nettadresse jeg vil ha resultater fra.

mitt program

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.

Min utdatafilen er feil, er det slik det er ment å være formatert

query string
http://www.
http://www.
http://www.
query string
http://www.
query string
http://www.medical...
http://www.medical...
Publisert på 18/12/2015 klokken 23:12
bruker
På andre språk...                            


2 svar

stemmer
0

Kan du begrense omfanget av resultatene til det spesifikke området (f.eks wikipedia) på tidspunktet for spørringen? For eksempel bruker:

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

Dette vil instruere Google å returnere bare resultatene fra dette domenet, så du trenger ikke å filtrere dem etter å ha sett resultatene.

Svarte 18/12/2015 kl. 23:30
kilden bruker

stemmer
0

Jeg tror @Cahit har rett idé. Den eneste grunnen til at du ville være å få linjer med bare søkestrengen er fordi domenet du leter etter ikke var i top_urls(). Du kan kontrollere dette ved å sjekke om matrisen som finnes i ordlisten for en gitt nøkkel er tom

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]))
Svarte 19/12/2015 kl. 00:13
kilden bruker

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