API de recherche Yandex
API de recherche Yandex pour la capture localisée du SERP.
Capturez la page de résultats Yandex produite pour une région, une langue, un appareil, une page et une fenêtre de temps spécifiques. L'API renvoie les métadonnées de la demande et la charge utile HTML SERP source dans une enveloppe JSON pour que votre application puisse traiter.
API GET côté serveur · Commencez parapi_key + engine=yandex + q · Parler à un expert en données
- Contextes régionauxIdentification de la région de localisation de Yandex
- Contrôles de pageLangue, appareil et page
- Filtre de tempsDocumenté dans les valeurs
- Réponse de la sourceCharge utile HTML en JSON
query pizza
region Moscow
lang ru
{
"search_parameters": {
"search_engine": "yandex",
"query": "pizza"
},
"search_results":
"<html>...</html>"
}Les acheteurs de contrats de capture peuvent évaluer
Connaître le contexte de la page, la charge utile et la limite de propriété avant d'intégrer.
L'API de recherche Yandex fournit aux équipes de produits et de données une surface de requête documentée pour la capture de pages localisée. Votre équipe conserve le contrôle du modèle d'extraction et de la manière dont chaque observation entre dans les flux de travail en aval.
01
L'intention régionale reste visible
Gardez l'ID de la région Yandex et la langue à côté de la page capturée afin que les comparaisons ultérieures conservent leur contexte de marché.
02
La présentation est délibérée
Choisissez le profil de l'appareil documenté et le numéro de page plutôt que de considérer chaque réponse Yandex comme interchangeable.
03
La limite de réponse est explicite
Planifier une enveloppe JSON contenant la charge utile de l'HTML SERP source au lieu d'assumer un modèle d'enregistrement en aval.
04
Les décisions de schéma restent à vous
Extraire uniquement les champs dont vous avez besoin dans votre flux de travail, la version de ce schéma et décider comment gérer les modifications de page.
- 01
Moteuryandex
- 02
Je vous demande .pizza
- 03
RégionLr 213
- 04
La langueru
- 05
Appareildesktop
- 06
Pagep 0
- 07
La fenêtredans les limites de 77
Surface de Yandex documentée
Capturez la page de résultats définie par votre contexte régional et de présentation.
Le point d'extrémité de Yandex accepte une requête de recherche plus dans un contexte facultatif. Commencez par des requêtes représentatives pour les pays, langues, appareils, pages et fenêtres horaires que votre application utilisera réellement.
Région
Identification de localisation de Yandex
Utilisez l'identifiant de région attendu par Yandex pour influencer la page de résultats pour l'emplacement prévu.
Context de la demande · lr
Langue
Langue de recherche
Accrochez la valeur de langue documentée à l'observation et validez-la avec la région et le jeu de requêtes.
Context de demande · lang
Présentation
Profil de l'appareil
Demandez une présentation sur ordinateur de bureau, mobile ou tablette où le contrôle de l'appareil documenté correspond à votre flux de travail.
Context de demande · dispositif
Fenêtre de page
Filtre de page et de temps
Sélectionnez une page de résultats basée sur zéro et, le cas échéant, une valeur documentée de la plage de temps.
Contextes de la demande · p / dans
Contextes de domaine
Valider le domaine, la région et la langue ensemble.
La référence des paramètres documente également la sélection optionnelle de domaine Yandex.
Contrôles de demande
Définir la page Yandex que votre demande a l'intention d'observer.
Le guide des demandes de base utilise le paramètre de requête indiqué ci-dessous. Ajoutez un contexte facultatif uniquement lorsqu'il prend en charge un produit ou une exigence de recherche claire.
Intent de recherche
Question
Passez le texte de recherche dans le champ de requêtes de base documenté et les espaces de code d'URL ou les caractères spéciaux.
q
Localisation et présentation
Région, langue et appareil
Définir l'ID de la région de localisation de Yandex, la langue de recherche et le profil documenté du bureau, du mobile ou de la tablette.
lr lang device
Fenêtre de page
Paginaison et récente
Utilisez p=0 pour la première page et ajoutez une valeur de temps prise en charge comme 77 pour les 24 dernières heures ou 1 pour les deux dernières semaines.
p within
Note de mise en œuvre: use api_key, engine=yandex, etqLe numéro de page est basé sur zéro; il décrit quelle page a été demandée, pas un rang universel dans tous les contextes.
Réponse de la charge utile de la source
Recevez une enveloppe JSON, puis appliquez votre propre contrat d'extraction.
L'API de recherche Yandex renvoie les métadonnées de réponse et la représentation de la page source.
Réponse à l'API
Enveloppe JSON avec la charge utile HTML SERP source.
L' enveloppe comprendsearch_parameterspour le contexte de recherche présentée etsearch_resultspour la charge utile du SERP HTML source.
Vérifiez l'état HTTP avant de lire le corps.
Enregistrez uniquement le contexte de la demande et les données de source dont vous avez besoin pour votre flux de travail.
Traitez les modifications de la mise en page comme un événement d'extraction et de schéma.
application/json source payload{ "search_parameters": { "search_engine": "yandex", "yandex_url": "https://www.yandex.com/search/?text=pizza", "query": "pizza" }, "search_results": "<html>...</html>" }Your application
Extraction et maintenance du schéma
Votre application possède l'extraction du HTML retourné. Votre équipe définit les champs dérivés, les règles de validation, les versions de schéma et la réponse de maintenance lorsque Yandex met à jour sa page.
Limite de réponse
Le point final fournit le contexte de la page et le HTML source à l'intérieur de JSON. Il ne définit pas les enregistrements, les classements, les alertes ou l'interprétation commerciale que votre système peut dériver.
Une capture contextuelle
From a Yandex query to an owned extraction pipeline in three steps.
Votre application définit la page et consomme la charge de source. WebScrapingAPI exploite le chemin de demande pris en charge entre ces deux responsabilités.
- 01
Définir le contexte de la page
Choisissez la requête et ajoutez la région, la langue, l'appareil, la page basée sur zéro et les entrées de la plage de temps dont vous avez besoin pour l'observation.
- 02
Envoyer la demande du côté serveur
Appeler le point final du SERP avec une clé API protégée et le moteur réglé sur yandex.
- 03
Validation, extrait et version
Lisez l'enveloppe JSON, préservez son contexte de demande et exécutez le HTML source à travers le processus d'extraction et de schéma de votre équipe.
L'intégration
Faites une demande Yandex sécurisée à partir de votre pile côté serveur.
Ces points de départ conservent la clé API dans une variable d'environnement, envoient la requête de requêtes de base, utilisent un délai client de 120 secondes et rendent explicites les états HTTP infructueux.
Rapport de demande
Commencez par la requête de pizza documentée.
Confirmez d'abord la réponse de la source, puis ajoutez les contrôles régionaux, la langue, l'appareil, la page et l'heure requis par votre produit.
- Point final
/v2- Réservé
api_key+engine=yandex+q- Le secret
WSA_API_KEYreste côté serveur- Consommateur
- Vérifiez l'état, puis lisez JSON
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
// engine=yandex; q=pizza
var rawApiKey = Environment.GetEnvironmentVariable("WSA_API_KEY");
if (string.IsNullOrWhiteSpace(rawApiKey)) {
throw new InvalidOperationException("WSA_API_KEY is required");
}
var apiKey = rawApiKey;
using var client = new HttpClient {
Timeout = TimeSpan.FromSeconds(120)
};
var parameters = new Dictionary<string, string> {
["api_key"] = apiKey,
["engine"] = "yandex",
["q"] = "pizza"
};
var query = string.Join("&", parameters.Select(item =>
$"{WebUtility.UrlEncode(item.Key)}={WebUtility.UrlEncode(item.Value)}"));
using var response = await client.GetAsync(
"https://serpapi.webscrapingapi.com/v2?" + query
);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());: "${WSA_API_KEY:?WSA_API_KEY is required}"
curl --get --fail-with-body --max-time 120 \
"https://serpapi.webscrapingapi.com/v2" \
--data-urlencode "api_key=$WSA_API_KEY" \
--data-urlencode "engine=yandex" \
--data-urlencode "q=pizza"package main
import (
"fmt"
"io"
"log"
"net/http"
"net/url"
"os"
"time"
)
func main() {
// engine=yandex; q=pizza
apiKey := os.Getenv("WSA_API_KEY")
if apiKey == "" { panic("WSA_API_KEY is required") }
query := url.Values{
"api_key": {apiKey},
"engine": {"yandex"},
"q": {"pizza"},
}
client := &http.Client{Timeout: 120 * time.Second}
response, err := client.Get(
"https://serpapi.webscrapingapi.com/v2?" + query.Encode(),
)
if err != nil { log.Fatal(err) }
defer response.Body.Close()
body, err := io.ReadAll(response.Body)
if err != nil { log.Fatal(err) }
if response.StatusCode < 200 || response.StatusCode >= 300 {
log.Fatalf("API status %d: %s", response.StatusCode, body)
}
fmt.Println(string(body))
}import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
import java.time.Duration;
public final class YandexSearchApiExample {
public static void main(String[] args) throws Exception {
String apiKey = System.getenv("WSA_API_KEY");
if (apiKey == null || apiKey.isBlank()) {
throw new IllegalStateException("WSA_API_KEY is required");
}
String endpoint = "https://serpapi.webscrapingapi.com/v2";
String query = "api_key=" + URLEncoder.encode(
apiKey, StandardCharsets.UTF_8
) + "&engine=yandex&q=pizza";
var client = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(120))
.build();
var request = HttpRequest.newBuilder(URI.create(endpoint + "?" + query))
.timeout(Duration.ofSeconds(120))
.GET()
.build();
var response = client.send(
request, HttpResponse.BodyHandlers.ofString()
);
if (response.statusCode() < 200 || response.statusCode() >= 300) {
throw new IllegalStateException(
"API status " + response.statusCode()
);
}
System.out.println(response.body());
}
}
}// engine=yandex; q=pizza
const apiKey = process.env.WSA_API_KEY;
if (!apiKey) throw new Error("WSA_API_KEY is required");
const parameters = new URLSearchParams({
api_key: apiKey,
engine: "yandex",
q: "pizza",
});
const url = new URL(
"https://serpapi.webscrapingapi.com/v2?" + parameters,
);
const response = await fetch(url, {
signal: AbortSignal.timeout(120_000),
});
if (!response.ok) {
throw new Error("API status " + response.status);
}
console.log(await response.json());<?php
// engine=yandex; q=pizza
$apiKey = getenv("WSA_API_KEY");
if ($apiKey === false || $apiKey === "") {
throw new RuntimeException("WSA_API_KEY is required");
}
$parameters = http_build_query([
"api_key" => $apiKey,
"engine" => "yandex",
"q" => "pizza",
]);
$client = curl_init(
"https://serpapi.webscrapingapi.com/v2?" . $parameters
);
curl_setopt_array($client, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 120,
]);
$body = curl_exec($client);
$status = curl_getinfo($client, CURLINFO_RESPONSE_CODE);
$error = curl_error($client);
curl_close($client);
if ($body === false) throw new RuntimeException($error);
if ($status < 200 || $status >= 300) {
throw new RuntimeException("API status " . $status . ": " . $body);
}
echo $body;import os
import requests
api_key = os.environ.get("WSA_API_KEY")
if not api_key:
raise RuntimeError("WSA_API_KEY is required")
# engine=yandex; q=pizza
response = requests.get(
"https://serpapi.webscrapingapi.com/v2",
params={
"api_key": api_key,
"engine": "yandex",
"q": "pizza",
},
timeout=120,
)
response.raise_for_status()
print(response.json())require "net/http"
require "uri"
api_key = ENV["WSA_API_KEY"]
raise "WSA_API_KEY is required" if api_key.nil? || api_key.empty?
# engine=yandex; q=pizza
uri = URI("https://serpapi.webscrapingapi.com/v2")
uri.query = URI.encode_www_form(
api_key: api_key,
engine: "yandex",
q: "pizza"
)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.open_timeout = 10
http.read_timeout = 120
response = http.get(uri.request_uri)
unless response.is_a?(Net::HTTPSuccess)
raise "API status #{response.code}: #{response.body}"
end
puts response.bodyCas d'utilisation
Utilisez des captures contextuelles de page Yandex où la source est le bon point de départ.
Chaque flux de travail devrait conserver son empreinte digitale de la demande et définir comment les changements de page source affectent l'extraction, la comparaison, l'examen et les décisions en aval.
Visibilité de la recherche
Observation Yandex localisée
Capturez des pages pour des combinaisons de requête, de région, de langue, d'appareil et de pagination contrôlées, puis calculez les mesures que votre équipe définit.
Explorez le suivi des SERP →
Présence de la marque
Révision par les éditeurs régionaux
Extraire les domaines et les éléments de page pertinents pour un processus de révision tout en préservant le contexte Yandex d'origine.
Explorer la protection de la marque →
Étude de marché
Paysages de source et de thème
Construire un schéma d'extraction défini pour les éditeurs, les sujets ou les éléments de la page de résultats requis par un bref rapport de recherche.
Explorer les études de marché →
Programme de données
Enregistrements de recherche récurrents
Définir un schéma explicite, des timestamps, des états de qualité et des contrats de livraison lorsque les charges utiles de la source de demande-temps ne sont pas le produit final.
Révision des données de recherche →
Choix de produit
Choisissez par la réponse et la propriété opérationnelle dont votre équipe a besoin.
L'API de recherche Yandex est l'option axée lorsque la page de résultats de source Yandex et son contexte de demande correspondent à votre application.
Multiple engines
Famille de la famille API SERP
Comparer les contrats de contrôle et de réponse documentés de Google, Bing, DuckDuckGo et Yandex.
Réponses spécifiques au moteur
Current product
API de recherche Yandex
Envoyez une requête Yandex localisée et recevez le contexte plus la charge utile de l'HTML SERP source en JSON.
Capture de la page source de Yandex
General page access
API de scraping
Retrouvez une page Web publique admissible lorsque votre target n'est pas représenté par les commandes de recherche Yandex.
Réponse à la page publique
Managed delivery
Données gérées
Mettre les ensembles de requêtes, la cadence, le schéma, le processus de qualité et la livraison dans un programme de données récurrentes convenu.
Contrats de données exploitées
Évaluation de la production
Testez la matrice de page régionale dont dépend votre demande.
Utilisez des captures représentatives avant de choisir un plan. Inclure des états ordinaires, localisés, paginés, filtrés dans le temps, modifiant la mise en page et qui ne réussissent pas dans les appareils et les régions de portée.
Évaluer la matrice de demande
Taille des contextes, pages et fréquence ensemble.
Formule illustrative de volume de demande Yandex
Questions × Les régions × Appareils × Pages × Fréquence
C'est un modèle d'évaluation, pas une promesse de facturation.
Liste de contrôle de l'évaluation
- Contextes
Régions, langues et domaines
- Présentation
Dispositifs et pages à base zéro
- Charge utile
Variations HTML de source
- Consommateur
Des versions d'extraction et de schéma
- Les opérations
Temps de décalage, erreurs, retries, stockage
FAQ
Yandex recherche API questions pour une évaluation à la terre.
Utilisez ces réponses pour la sélection de produits, puis traitez la documentation de point final Yandex actuelle et les demandes représentatives comme la source de vérité de la mise en œuvre.
Qu'est-ce que la API de recherche Yandex retourne ?
L'API de recherche Yandex renvoie une enveloppe JSON avec les métadonnées de la demande et la charge utile HTML SERP source dans les résultats de recherche.
Quelles valeurs sont requises pour une demande Yandex ?
Envoyez votre clé API côté serveur, définissez le moteur à yandex et passez la requête de recherche dans q. Le texte de requête de code URL lorsqu'il contient des espaces ou des caractères spéciaux.
Comment choisir la région et la langue de Yandex ?
Utilisez lr pour l'ID de la région de localisation de Yandex et lang pour le lang de recherche.
Comment fonctionne la pagination Yandex ?
Utilisez p pour la page de résultat. Le comptage de page commence à 0, donc p=0 demande la première page. Gardez p avec le reste du contexte de la demande lors de la comparaison des captures.
Qui maintient l'extraction de la charge utile de Yandex ?
Votre application possède l'extraction de la charge utile de l'HTML SERP source, et votre équipe possède le schéma dérivé et sa maintenance à mesure que les mises en page de Yandex changent.
Comment mon application doit-elle gérer les erreurs de l'API Yandex ?
Définir un délai explicite du client, inspecter l'état HTTP avant d'utiliser le corps de réponse, conserver suffisamment de contexte de demande pour diagnostiquer les défaillances et appliquer des tentatives limitées uniquement lorsqu'elles correspondent à votre flux de travail.
Votre première capture de Yandex
Testez une page régionale et son consommateur de charge utile source.
Commencez par la demande de pizza documentée, puis ajoutez les contextes que votre produit observera réellement.