URL кодирует ненулевую пару в Python - PullRequest
14 голосов
/ 01 апреля 2009

Я пытаюсь использовать Google AJAX (JSON) API веб-поиска в Python. Я застрял, потому что Pyll urllib.urlencode () принимает только пары значений, а не строки сами по себе для кодирования. В Google API строка запроса является поисковым термином и не связана с переменной.

query = "string that needs to be encoded"
params = urllib.urlencode(query) # THIS FAILS
# http://code.google.com/apis/ajaxsearch/documentation/reference.html
url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&rsz=large&%s&%s" % (params, GOOGLE_API_KEY)

request = urllib2.Request(url)
request.add_header('Referer', GOOGLE_REFERER)

search_results = urllib2.urlopen(request)
raw_results = search_results.read()
json = simplejson.loads(raw_results)
estimatedResultCount = json['responseData']['cursor']['estimatedResultCount']

if estimatedResultCount != 0:
    print "Google: %s hits" % estimatedResultCount

Как мне urlencode мои условия поиска?

1 Ответ

36 голосов
/ 01 апреля 2009

Я думаю, что вы ищете urllib.quote вместо.

...