Подтвердить что ты не робот

Поиск Google с использованием python script

Может ли кто-нибудь помочь мне написать питон script, который ищет google и печатает ссылки лучших результатов.

4b9b3361

Ответ 1

Может, что-то вроде этого?

import urllib
import json as m_json
query = raw_input ( 'Query: ' )
query = urllib.urlencode ( { 'q' : query } )
response = urllib.urlopen ( 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&' + query ).read()
json = m_json.loads ( response )
results = json [ 'responseData' ] [ 'results' ]
for result in results:
    title = result['title']
    url = result['url']   # was URL in the original and that threw a name error exception
    print ( title + '; ' + url )

Прочтите документы http://docs.python.org/

Ответ 2

Попробуйте это, его очень просто использовать: https://pypi.python.org/pypi/google

Документы: https://breakingcode.wordpress.com/2010/06/29/google-search-python/

Github: https://github.com/MarioVilas/google

Установите этот пакет python, и использование будет таким же простым, как это:

# Get the first 5 hits for "google 1.9.1 python" in Google Pakistan
from google import search

for url in search('google 1.9.1 python', tld='com.pk', lang='es', stop=5):
    print(url)

Ответ 3

лучше использовать google apis но очень уродливая версия.. (альтернатива использованию google api) вы можете фильтровать контент, если хотите

import os, urllib, sys
filename = 'http://www.google.com/search?' + urllib.urlencode({'q': ' '.join(sys.argv[1:]) })
cmd = os.popen("lynx -dump %s" % filename)
output = cmd.read()
cmd.close()
print output

он будет печатать точно, что когда-либо отображал браузер, когда вы что-то искали в google

Ответ 5

Я нашел здесь здесь

import urllib2
import urllib
import json

url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&"

query = raw_input("What do you want to search for ? >> ")

query = urllib.urlencode( {'q' : query } )

response = urllib2.urlopen (url + query ).read()

data = json.loads ( response )

results = data [ 'responseData' ] [ 'results' ]

for result in results:
    title = result['title']
    url = result['url']
    print ( title + '; ' + url )

Работает как шарм

Ответ 6

Если у вас есть сильное предпочтение избегать библиотек Google, вы можете использовать их JSON API для получения до 4 результатов за раз, что будет делать следующий код:

import requests
import json

query = "cats+dogs"

#NB. add 'start=3' to the query string to move to later results
r = requests.get('http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=' + query)

# JSON object
theJson = r.content
theObject = json.loads(theJson)

# Print it all out
for index,result in enumerate(theObject['responseData']['results']):
    print str(index+1) + ") " + result['titleNoFormatting']
    print result['url']

В этом случае используется requests, что значительно лучше, чем urllib, предложенное выше!

Ответ 7

Как заметил @Zloy Smiertniy, ответ можно найти здесь.

Однако, если вы используете Python 3, синтаксис raw_input, urllib изменился, и нужно декодировать response. Таким образом, для Python 3 можно использовать:

import urllib
import urllib.request
import json
url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&"
query = input("Query:")
query = urllib.parse.urlencode( {'q' : query } )
response = urllib.request.urlopen (url + query ).read()
data = json.loads ( response.decode() )
results = data [ 'responseData' ] [ 'results' ]
for result in results:
    title = result['title']
    url = result['url']
    print ( title + '; ' + url )

Ответ 8

Попробуйте следующее:

import webbrowser
lib = input()
url = "https://www.google.co.in/search?q=" +(str(lib))+ "&oq="+(str(lib))+"&gs_l=serp.12..0i71l8.0.0.0.6391.0.0.0.0.0.0.0.0..0.0....0...1c..64.serp..0.0.0.UiQhpfaBsuU"
webbrowser.open_new(url)

Ответ 9

Я новичок в Python. Просто моя простая идея для поиска в Google.

import webbrowser
lib=raw_input("Enter what you want to search for:")
ur="https://www.google.co.in/gfe_rd=cr&ei=Q7nZVqSBIMSL8QeBpbOoDQ#q="
webbrowser.open_new(ur+lib)

Ответ 10

from pygoogle import pygoogle
g = pygoogle('quake 3 arena')
g.pages = 5
print '*Found %s results*'%(g.get_result_count())
g.get_urls()