#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 результат в любом случае, просто делайте методом проб и ошибок, надеюсь, вам повезет с решением