Python programından Google arama

oy
-1

Ben, bir girdi dosyasını almak her satır okumak, bu hat ile google arama ve sonuç belli bir web sitesi değil SADECE sorgudan tüm arama sonuçlarını yazdırmak için çalışıyorum. Ben sadece wikipedia dan baskılı sonucu köpeği ararsanız bu bir sonuç veya wikipedia itibaren on sonuç olsun Basit bir örnek, benim noktası göstermek için. Benim sorunum gerçekten garip sonuçlar alıyoruz edilir. Aşağıda ben den sonucu belirli bir URL içeren benim Python kodudur.

programım

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.

Benim Çıktı dosyası geçersiz, şu biçimlendirilmiş olması gerekiyordu yoludur

query string
http://www.
http://www.
http://www.
query string
http://www.
query string
http://www.medical...
http://www.medical...
Oluştur 18/12/2015 saat 23:12
kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
0

sorgunun anda belirli bir sitenin (örn wikipedia) sonuçların kapsamını sınırlamak miyim? Örneğin, kullanılarak:

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

Bu, Google bu etki sadece sonuçları döndürmek için talimat vereceğini, bu nedenle sonuçları gördükten sonra bunları filtre gerekmez.

Cevap 18/12/2015 saat 23:30
kaynak kullanıcı

oy
0

Ben @Cahit doğru karar verdi galiba. Eğer satırlarını almak olacaktır tek nedeni sadece sorgu dizesi aradığınız alanı değildi çünkü top_urls(). Belirli bir anahtar için sözlükte bulunan dizi boş olup olmadığını kontrol ederek doğrulayabilirsiniz

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]))
Cevap 19/12/2015 saat 00:13
kaynak kullanıcı

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