Я использовал 7-дневную пробную версию Bing Search API (Гость), чтобы получать результаты поиска по запросу.
Я использую тот же код, который указан в https://docs.microsoft.com/en-us/azure/cognitive-services/bing-web-search/quickstarts/php документация. Я добавил foreach l oop, чтобы получить результаты поиска для каждой страницы. Для моего поискового запроса я получил количество результатов поиска API totalEstimatedMatches как 38500000.
Ниже приведен мой код:
function BingWebSearch ($url, $key, $query, $count="", $offset="") {
$headers = "Ocp-Apim-Subscription-Key: $key\r\n";
$options = array ('http' => array (
'header' => $headers,
'method' => 'GET'));
// Perform the request and get a JSON response.
$context = stream_context_create($options);
$queryString = "?q=" . urlencode($query);
if ( strlen(trim($count)) > 0 ) $queryString .= "&count=".$count;
if ( strlen(trim($offset)) > 0 ) $queryString .= "&offset=".$offset;
$result = file_get_contents($url . $queryString , false, $context);
// Extract Bing HTTP headers.
$headers = array();
foreach ($http_response_header as $k => $v) {
$h = explode(":", $v, 2);
if (isset($h[1]))
if (preg_match("/^BingAPIs-/", $h[0]) || preg_match("/^X-MSEdge-/", $h[0]))
$headers[trim($h[0])] = trim($h[1]);
}
return array($headers, $result);
}
$accessKey = 'xxxxxxxxxxxxxxxx';
$endpoint = 'https://api.cognitive.microsoft.com/bing/v7.0/search';
$term = 'myserchterm';
$searchOffset = 0;
$offset = 0;
$totalEstimatedMatchesCount = 38500000;
$count = 5000;
for ( $searchCount=0; $searchCount <= $totalEstimatedMatchesCount; $searchCount = $searchCount+$searchOffset ) {
$offset = $offset+$searchOffset;
list($headers, $jsonPageResult) = BingWebSearch($endpoint, $accessKey, $term, $count, $offset);
$bingSearchPageArray = json_decode($jsonPageResult);
$searchOffset = count($bingSearchPageArray['webPages']['value']);
// code to store result to database
.....................................
}
Этот код дал только 930 результаты, и я получил электронное письмо как
Вы приближаетесь к пределу квоты на свою подписку на бесплатный продукт Bing SearchV7. Эта квота будет продлена 04/09/2020.
Ниже приведены сведения об использовании квоты для подписки:
Объем квот Звонки квота вызовов пропускная способность квота пропускной способности
подписка 2.26k 3.00k 58.48MB
Какое максимальное число API звонки я могу сделать? Как я могу ограничить поиск только по веб-страницам и только по одной странице на домен (ie, мне нужно только получить индексную страницу. Мне просто нужен домен на основе моего поиска, поэтому нет необходимости снова получать те же страницы домена в результате )?
Может ли кто-нибудь помочь мне.
Любая помощь будет оценена.