Почему запросы Google API через simplejson, возвращающийся “responseData”: пустой указатель?

Я пробую к screenscrape первый результат поиска Google использование Python и simplejson, но я не могу получить доступ к результатам поиска способ, которым онлайн демонстрируют много примеров. Вот отрывок:

url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&%s' % (query)
search_results = urllib.urlopen(url)
json = simplejson.load(search_results)
try:
    results = json['responseData']['results'] # always fails at this line
    first_result = results[0]
except:
    print "attempt to set results failed"

Когда я перехожу к http://ajax.googleapis.com/ajax/services/search/web?v=1.0&stackoverflow (или что-либо еще замененное %s) в браузере, это отображает строку "{"responseData": пустой указатель, "responseDetails": "развертка клипа", "responseStatus": 204}". Там некоторый другой путь состоит в том, чтобы получить доступ к результатам поиска Google в Python помимо попытки использовать по-видимому пустой responseData?

1
задан user374372 23 June 2010 в 15:34
поделиться

1 ответ

Вы пропустили & q =. Вам также следует подумать об использовании API-ключа. http://code.google.com/intl/de/apis/ajaxsearch/documentation/ . Помимо этого простого строкового контакта не будет работать, вам нужно экранировать параметр.

 url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q= ' + urllib.quote_plus(query)
2
ответ дан 2 September 2019 в 23:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: