Des fiches de recherche se relient à des bacs de pages acceptées, rejetées et non résolues.
Contrôlez la destination avant de l'ajouter à votre file.

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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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

Exemple fictif original résolu étape par étape
ID d'observationRequêteRangObservé àURL renvoyéeRéférence source
obs-1outils de jardin12026-10-13T06:20:14Zhttps://garden.example/productsMoteur Bing, page 1
obs-2plantes d'intérieur22026-10-13T06:20:15Zhttps://garden.example/productsMoteur Bing, page 1
obs-3outils de jardin32026-10-13T06:20:16Zhttps://garden.example/items/shearsMoteur Bing, page 1
obs-4plantes d'intérieur42026-10-13T06:20:17Zhttps://blog.example/guideMoteur Bing, page 1
obs-5outils de jardin52026-10-13T06:20:18Zhttps://redirect.example/outMoteur Bing, page 1
obs-6plantes d'intérieur62026-10-13T06:20:19Zhttps://account.example/loginMoteur Bing, page 1
obs-7outils de jardin72026-10-13T06:20:20Zftp://invalid.example/fileMoteur Bing, page 1

2. Six candidats cibles distincts et leurs états

Exemple fictif original résolu étape par étape
URL de la cible candidateRésultat du contrôle de destinationÉtat de pertinenceRaison / preuve
`https://garden.example/products`HTTP 200 valideaccepted_targetL'index de produits partagé correspond au périmètre de collecte.
`https://garden.example/items/shears`HTTP 200 valideaccepted_targetLa page d'un produit précis correspond au périmètre de collecte.
`https://blog.example/guide`HTTP 200 validerejected_targetLe guide de blog n'est pas pertinent pour la collecte de produits.
`https://redirect.example/out`Indisponible / opaqueneeds_reviewUne redirection opaque ne peut pas être vérifiée directement.
`https://account.example/login`Connexion exigéeneeds_reviewLa destination exige une authentification ; elle est indisponible.
`ftp://invalid.example/file`Schéma non HTTPrejected_targetUne adresse mal formée ou non HTTP enfreint la règle de collecte.

3. Deux cibles acceptées de la file

Exemple fictif original résolu étape par étape
Adresse cibleRéférences sourcesPreuve du contrôleProchaine extraction souhaitéeÉtat de la cible
`https://garden.example/products`obs-1, obs-2Statut HTTP 200 vérifié, correspond aux critères de l'index de produitsExtraire la liste des articles de la catégorieaccepted
`https://garden.example/items/shears`obs-3Statut HTTP 200 vérifié, correspond aux critères d'un seul produitExtraire les détails et le prix du produitaccepted

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 ↑