
Configuration du premier contrôle et contrat de source
La version publique 1.0.15 de Google Search Scraper prend en charge Google, Bing, Brave et DuckDuckGo, mais seul Bing a été validé pour cette méthode dans le cadre présenté ici. L'entrée publique actuelle de la tâche utilise `queries ["AI agents", "small business automation"]`, `engines ["bing"]`, `maxResultsPerExecutedQuery 20`, `country "US"`, `language "en"`, `safeSearch true` et `includeSponsoredResults false`. Pour ce pilote, remplacez les listes entières queries et engines par une requête prévue et `engines ["bing"]`, définissez `maxResultsPerExecutedQuery 2`, le pays prévu, la langue et les mêmes booléens, en notant qu'aucun réglage d'expansion ni entrée publique de limite de pages n'existe.
Champs natifs des résultats et résumé de sortie
Chaque ligne de résultat du jeu de données contient ces champs exacts : `runId`, `country`, `language`, `safeSearch`, `engine`, `executedQuery`, `page`, `rankOnPage`, `rank`, `title`, `canonicalUrl`, `resultDomain`, `snippet`, `isSponsored`, `advertiserDomain`, `observedAt` et `schemaVersion`. Une ligne représente une observation pour un moteur, une requête, une page et une position. Le champ `canonicalUrl` fournit une adresse candidate normalisée, et non une balise canonique HTML contrôlée ni le lien d'origine. Les extraits sont du texte de recherche, et non le contenu récupéré des pages.
Le résumé de l'exécution en sortie indique : `queriesRequested`, `searchesCompiled`, `executionsPlanned`, `enginesSuccessful`, `enginesFailed`, `pagesAttempted`, `pagesParsed`, `resultsSaved`, `engineStatusCounts`, `engineResultCounts`, `queryResultCounts` et `stopReason`.
Référence de l'exécution de contrôle Bing
Une exécution de contrôle exacte pour `Python asyncio documentation` a renvoyé :
- `queriesRequested` : 1
- `searchesCompiled` : 1
- `executionsPlanned` : 1
- `enginesSuccessful` : 1
- `enginesFailed` : 0
- `pagesAttempted` : 1
- `pagesParsed` : 1
- `resultsSaved` : 2
- `engineStatusCounts` : `{"bing": {"ok": 1}}`
- `engineResultCounts` : `{"bing": 2}`
- `queryResultCounts` : `{"Python asyncio documentation": 2}`
- `stopReason` : `result_caps_reached`
- Résultats renvoyés : deux URL directes de `docs.python.org` aux rangs 1 et 2.
Ceci prouve seulement un échantillon borné de métadonnées Bing. Cela ne teste pas tous les marchés, les opérateurs de recherche, les rangs répétés ni la récupération des destinations. Les sources primaires comprennent le Google Search Scraper Actor et la Bing Search Results Task.
- Définissez les pages dont vous avez besoin et votre règle d'inclusion avant la recherche. Bing est ici une source de découverte prise en charge. Utilisez un sujet neutre et un plafond fini de lignes, plutôt que de promettre des centaines de sites valides. La découverte par recherche fournit des candidats, et non la promesse que chaque page peut être collectée.
- Utilisez des requêtes avec une seule expression prévue, les moteurs réglés sur bing et une petite limite du nombre de lignes. Inspectez la requête exécutée, le moteur, les horodatages et la sortie. Le libellé de la requête change votre échantillon source. Utilisez des mots simples, sauf si vous testez vous-même la façon dont le moteur de recherche interprète les mots ou la syntaxe de la requête.
- Conservez les lignes de résultats renvoyées avant de choisir les cibles. Gardez le titre, l'adresse candidate, l'hôte source, le rang, la requête, l'heure et l'arrêt de la source. Rejetez, selon votre règle, une adresse cassée ou non web. Laissez non résolue une redirection opaque ou une destination peu claire. Un nom de champ de normalisation, comme adresse canonique, ne prouve pas l'identité réelle de la page d'origine. Conservez la chaîne renvoyée sans changement comme preuve source.
- Contrôlez chaque hôte et chaque chemin candidat selon votre objectif de collecte. Les titres et les extraits de recherche peuvent être anciens ou faux. Inspectez la destination publique par le processus de collecte du lecteur lorsque c'est nécessaire. Enregistrez l'URL finale, le type de contenu et la preuve de page. Ne devinez pas le contenu d'un produit à partir du seul titre. Les pages de connexion et les pages privées restent indisponibles.
- Classez chaque cible comme acceptée, rejetée ou à examiner, avec une raison claire. Acceptée signifie qu'elle satisfait votre contrôle à ce moment. Cela ne garantit pas le succès de l'exploration, des droits complets ni des données produit exactes. Gardez les contrôles de destination en échec et les lacunes de source hors de votre file acceptée.
- Fusionnez seulement les adresses cibles en double déjà examinées selon une règle sûre, tout en gardant toutes les références de résultats. Gardez séparés les enregistrements d'observation et les enregistrements de cible. N'effacez pas les chemins distincts ni les paramètres de requête qui identifient des pages différentes. Le même hôte ne signifie pas la même page. Le même titre ne signifie pas la même cible.
- Construisez votre petite file avec l'adresse cible, les références sources, la preuve d'acceptation, l'extraction souhaitée et l'état. Transmettez les cibles acceptées à un explorateur borné distinct, prévu pour ces pages. L'Actor de recherche n'exécute pas cette exploration et ne fournit pas le texte principal.
- Rapprochez vos observations collectées, les candidats distincts examinés, les cibles acceptées, rejetées et non résolues, ainsi que l'état du plafond. Zéro cible acceptée peut être une lacune normale, et non une liste à remplir avec des pages devinées. Terminez en contrôlant une cible avant d'augmenter votre budget de découverte.
Exemple fictif original résolu étape par étape
Tous les domaines, les mots et les décomptes de cette section sont inventés pour cet exemple original. Sept observations renvoyées pointent vers six adresses candidates distinctes selon une règle de cible exacte. Deux observations partagent l'adresse `https://garden.example/products`. Les cinq autres observations pointent vers une page produit, un guide de blog, une redirection opaque, une page de connexion et une adresse non valide.
1. Sept observations de résultats
| ID d'observation | Requête | Rang | Observé à | URL renvoyée | Référence source |
|---|---|---|---|---|---|
| obs-1 | outils de jardin | 1 | 2026-10-13T06:20:14Z | https://garden.example/products | Moteur Bing, page 1 |
| obs-2 | plantes d'intérieur | 2 | 2026-10-13T06:20:15Z | https://garden.example/products | Moteur Bing, page 1 |
| obs-3 | outils de jardin | 3 | 2026-10-13T06:20:16Z | https://garden.example/items/shears | Moteur Bing, page 1 |
| obs-4 | plantes d'intérieur | 4 | 2026-10-13T06:20:17Z | https://blog.example/guide | Moteur Bing, page 1 |
| obs-5 | outils de jardin | 5 | 2026-10-13T06:20:18Z | https://redirect.example/out | Moteur Bing, page 1 |
| obs-6 | plantes d'intérieur | 6 | 2026-10-13T06:20:19Z | https://account.example/login | Moteur Bing, page 1 |
| obs-7 | outils de jardin | 7 | 2026-10-13T06:20:20Z | ftp://invalid.example/file | Moteur Bing, page 1 |
2. Six candidats cibles distincts et leurs états
| URL de la cible candidate | Résultat du contrôle de destination | État de pertinence | Raison / preuve |
|---|---|---|---|
| `https://garden.example/products` | HTTP 200 valide | accepted_target | L'index de produits partagé correspond au périmètre de collecte. |
| `https://garden.example/items/shears` | HTTP 200 valide | accepted_target | La page d'un produit précis correspond au périmètre de collecte. |
| `https://blog.example/guide` | HTTP 200 valide | rejected_target | Le guide de blog n'est pas pertinent pour la collecte de produits. |
| `https://redirect.example/out` | Indisponible / opaque | needs_review | Une redirection opaque ne peut pas être vérifiée directement. |
| `https://account.example/login` | Connexion exigée | needs_review | La destination exige une authentification ; elle est indisponible. |
| `ftp://invalid.example/file` | Schéma non HTTP | rejected_target | Une adresse mal formée ou non HTTP enfreint la règle de collecte. |
3. Deux cibles acceptées de la file
| Adresse cible | Références sources | Preuve du contrôle | Prochaine extraction souhaitée | État de la cible |
|---|---|---|---|---|
| `https://garden.example/products` | obs-1, obs-2 | Statut HTTP 200 vérifié, correspond aux critères de l'index de produits | Extraire la liste des articles de la catégorie | accepted |
| `https://garden.example/items/shears` | obs-3 | Statut HTTP 200 vérifié, correspond aux critères d'un seul produit | Extraire les détails et le prix du produit | accepted |
Le rapprochement montre six candidats, qui donnent deux cibles acceptées, deux cibles rejetées et deux cibles non résolues. Les deux observations de l'index de produits restent attachées à une seule cible de la file, avec les références de requête, de rang et d'heure des deux observations. Ne traitez pas sept observations comme sept sites à explorer et ne supprimez pas la référence en double. Si l'index de produits échoue lorsque l'explorateur distinct s'exécute plus tard, enregistrez cet échec ; une acceptation antérieure ne garantit pas l'extraction.
Sources et lectures complémentaires
Par Chronometrica · Mis à jour
Retour en haut ↑

