Почему запросы Google API через simplejson возвращают "responseData": null? - PullRequest
1 голос
/ 23 июня 2010

Я пытаюсь отсканировать первый результат поиска в 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 ": null," responseDetails ":" clip sweeping "," responseStatus ": 204}." Есть ли какой-нибудь другой способ получить доступ к результатам поиска Google в Python, кроме попытки использовать явно пустые данные response?

1 Ответ

2 голосов
/ 23 июня 2010

Вы пропустили & 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...