Vyhledávání Google z programu Python

hlasů
-1

Snažím se, aby vstupní soubor, číst každý řádek, Google Search se tento řádek a vytisknout všechny výsledky hledání z dotazu pouze pokud je výsledek z určitého webu. Jednoduchý příklad pro ilustraci můj názor, když jsem hledat psa chci jen výsledky vytištěné z Wikipedie, ať už je to jeden výsledek nebo deset výsledky z wikipedie. Můj problém je, že jsem byl stále opravdu podivné výsledky. Níže je můj Python kód, který obsahuje konkrétní URL chci výsledky.

Můj 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.

Můj výstup souboru je nesprávný, jak to má být formátován je

query string
http://www.
http://www.
http://www.
query string
http://www.
query string
http://www.medical...
http://www.medical...
Položena 18/12/2015 v 23:12
uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
0

Můžete omezit rozsah výsledků na konkrétním místě (např wikipedia) v době dotazu? Například, za použití:

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

To by pokyn Google vrátit pouze výsledky z dané domény, takže nebudete muset filtrovat poté, co viděl výsledky.

Odpovězeno 18/12/2015 v 23:30
zdroj uživatelem

hlasů
0

Myslím, že @Cahit má dobrý nápad. Jediný důvod, proč byste se dostat řádky jen řetězec dotazu je, že doména, kterou hledali nebyl v top_urls(). To lze ověřit kontrolou, pokud je pole obsažená ve slovníku pro daný klíč je prázdný

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]))
Odpovězeno 19/12/2015 v 00:13
zdroj uživatelem

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