Получение точных результатов поиска Google из API Google

#c# #ajax #json #api #google-custom-search

#c# #ajax #json #API #google-пользовательский поиск

Вопрос:

Что у меня есть?

  • Учетная запись Google.
  • Простой доступ к ключу API.
  • Я создал пользовательскую поисковую систему, я настроил поиск по всему Интернету, но сделал упор на включенные в него сайты, и я удалил все ссылки из раздела «Сайты для поиска» (чтобы он выполнял поиск по всему Интернету, а не ограничивался определенным веб-сайтом).
  • Из пользовательской поисковой системы я получил CX (идентификатор поисковой системы).

Если я попробую эту команду:

 https://www.googleapis.com/customsearch/v1?key=[MY_API_KEY]amp;cx=017576662512468239146:omuauf_lfveamp;q=intitle:"crazy stink"
  

(CX предоставлен Google в качестве примера здесь:https://developers.google.com/custom-search/json-api/v1/using_rest , но я получаю те же результаты, если устанавливаю свой собственный CX).

Результаты:

 {
 "kind": "customsearch#search",
 "url": {
  "type": "application/json",
  "template": "https://www.googleapis.com/customsearch/v1?q={searchTerms}amp;num={count?}amp;start={startIndex?}amp;lr={language?}amp;safe={safe?}amp;cx={cx?}amp;cref={cref?}amp;sort={sort?}amp;filter={filter?}amp;gl={gl?}amp;cr={cr?}amp;googlehost={googleHost?}amp;c2coff={disableCnTwTranslation?}amp;hq={hq?}amp;hl={hl?}amp;siteSearch={siteSearch?}amp;siteSearchFilter={siteSearchFilter?}amp;exactTerms={exactTerms?}amp;excludeTerms={excludeTerms?}amp;linkSite={linkSite?}amp;orTerms={orTerms?}amp;relatedSite={relatedSite?}amp;dateRestrict={dateRestrict?}amp;lowRange={lowRange?}amp;highRange={highRange?}amp;searchType={searchType}amp;fileType={fileType?}amp;rights={rights?}amp;imgSize={imgSize?}amp;imgType={imgType?}amp;imgColorType={imgColorType?}amp;imgDominantColor={imgDominantColor?}amp;alt=json"
 },
 "queries": {
  "request": [
   {
    "title": "Google Custom Search - intitle:"crazy stink"",
    "totalResults": "0",
    "searchTerms": "intitle:"crazy stink"",
    "count": 10,
    "inputEncoding": "utf8",
    "outputEncoding": "utf8",
    "safe": "off",
    "cx": "017576662512468239146:omuauf_lfve"
   }
  ]
 },
 "searchInformation": {
  "searchTime": 0.35068,
  "formattedSearchTime": "0.35",
  "totalResults": "0",
  "formattedTotalResults": "0"
 }
}
  

Если вы протестируете это, вы увидите, что это даст вам 0 результатов, однако, если вы выполните поиск в Google по тому же запросу, вы получите ок. 35 результатов:https://www.google.com/search ?q = intitle:»crazy stink»

Это основная причина, по которой я прошу о помощи. В моем проекте мне нужны все эти результаты, если обычный поиск в Google выдает 35 результатов, мне также нужно получить эти 35 результатов.

Мне это нужно для моего проекта на C #, однако мне все равно, в каком формате я получаю результаты (JSON, XML и т.д.)

Я планирую включить функцию выставления счетов и превысить «бесплатные» ограничения в 100 запросов в день, которые у меня есть в настоящее время. Однако, прежде чем я это сделаю, мне нужно иметь полностью функциональное средство (которого у меня на данный момент нет).


Дополнительное примечание: даже с бесплатным AJAX Api: http://ajax.googleapis.com/ajax/services/search/web?v=1.0amp;start=1amp;rsz=largeamp;q=intitle:»crazy stink» Я получаю 0 результатов (вы можете протестировать это без ключа API). Результаты:

 {"responseData": {"results":[],"cursor":{"moreResultsUrl":"http://www.google.com/search?oeu003dutf8u0026ieu003dutf8u0026sourceu003dudsu0026startu003d1u0026hlu003denu0026qu003dintitle:"crazy stink"","searchResultTime":"0.10"}}, "responseDetails": null, "responseStatus": 200}
  

Любые идеи, предложения более чем приветствуются.

Комментарии:

1. У нас пока нет библиотеки C #, но я бы попробовал SerpApi , вы должны быть в состоянии получить лучшие результаты.

Ответ №1:

С помощью этого apihttps://developers.google.com/custom-search/json-api/v1/using_rest , Вы должны предоставить некоторые сайты для поиска, если вы не указали сайты для поиска здесь (https://www.google.com/cse/all ), Он не покажет вам результаты. По крайней мере, укажите один сайт для поиска или несколько сайтов для поиска. Требуемый API веб-поиска Google официально устарел с 1 ноября 2010 года. https://developers.google.com/web-search/docs/ Он выполняет поиск только по всему Интернету

Комментарии:

1. Спасибо за ваш ответ. С помощью этого руководства support.google.com/customsearch/answer/2631040?hl=en Я думал, что смогу выполнить поиск по всему Интернету (но в этом руководстве также говорится, что я не смогу получить те же результаты, что и при обычном использовании веб-поиска Google). Еще одна плохая вещь в этом заключается в том, что это работает только для бесплатных / базовых CSES (поэтому я не смог бы этого сделать, если бы стал пользователем с поддержкой выставления счетов).

Ответ №2:

Я также столкнулся с той же проблемой, после исследования я обнаружил, что я не предоставлял сайты в поисковой системе, которые я создал, поэтому я предоставляю www.google.com в качестве страницы сайта в поисковой системе вот ссылка для добавления сайта в вашу поисковую систему

https://www.google.com/cse/setup/basic?cx ={ваш идентификатор поисковой системы}

после выполнения приведенной выше ссылки с вашим идентификатором поисковой системы вы получите свою страницу поисковой системы, затем перейдите на вкладку «Основы«, на которой перейдите в раздел «сайт для поиска«, затем добавьте сайт для меня, который я использовал www.google.com

и моя проблема решена 🙂

Комментарии:

1. Спасибо за ваше предложение. Я попробовал это, и на этот раз я получил 1 результат. Это все еще далеко от тех 35 результатов, которые я получаю при обычном поиске в Google.

2. вы можете указать num = 35 в качестве параметра в api, чтобы получить 35 результатов, но по умолчанию он показывает 10 результатов, как вы получаете 1 результат в любом случае, просто делайте методом проб и ошибок, надеюсь, вам повезет с решением