Log in to leave a comment
No posts yet
Si vous vous contentez de récupérer le HTML d'une page web sous forme de texte brut, votre agent IA s'y perdra. Bien que le texte soit visible, la hiérarchie du document disparaît. Selon des données de recherche publiées en 2024, la préservation de la structure hiérarchique d'un document améliore la précision de la recherche de plus de 30 % par rapport au simple découpage de texte. Je suis convaincu que la clé réside dans la capacité de l'agent à identifier immédiatement l'importance des données en consultant les informations d'en-tête.
La première chose à faire est d'abandonner le get_text() de BeautifulSoup. Utilisez plutôt la bibliothèque Markdownify pour mapper les balises HTML vers des en-têtes Markdown. Vous devez ensuite diviser le Markdown converti par unité d'en-tête et adopter une stratégie de chunking "parent-enfant" qui fournit l'intégralité de la section parente comme contexte. En utilisant conjointement la bibliothèque Trafilatura, vous pouvez extraire le corps du texte tout en réduisant la consommation de tokens jusqu'à 67 %. C'est le moyen le plus sûr d'économiser des coûts tout en augmentant la précision.
Les données dissimulées derrière des menus d'onglets ou des accordéons implémentés en JavaScript ne sont jamais lues par les crawlers statiques. Je pense que ces données invisibles sont les principales coupables de la dégradation de la qualité des réponses dans les systèmes RAG. Playwright se connecte directement au protocole natif du navigateur, le CDP, ce qui lui permet de contrôler le contenu dynamique plus rapidement et plus puissamment que Selenium. Dans les cas d'application réelle, les systèmes ayant implémenté des séquences de clics automatiques ont obtenu 30 % de données en plus que la collecte manuelle.
Lors de la construction d'une logique d'automatisation basée sur Playwright, utilisez la fonction page.wait_for_selector dans une boucle. Vous devez impérativement attendre que l'élément cliquable apparaisse à l'écran. Appelez ensuite la méthode scroll_into_view_if_needed() pour forcer le défilement infini ou les requêtes AJAX. Cliquez sur chaque onglet séquentiellement et capturez l'état du DOM modifié en temps réel pour le sauvegarder. Ce n'est qu'à travers ce processus que vous obtiendrez une base de données complète sans aucune omission.
Les publicités, les pieds de page et les barres de menu gaspillent la fenêtre de contexte de l'agent et contaminent les vecteurs d'embedding. Le bruit sur les sites web est plus grave qu'on ne le pense ; des données non raffinées sont comme du poison pour l'IA. Readability.js analyse la densité du texte et des liens pour extraire uniquement le corps du texte contenant les informations réelles. Dans les résultats de benchmark, Readability a enregistré une performance médiane de 0,970 sur tous les types de pages, éliminant avec précision les éléments hors sujet.
Intégrez cet algorithme dans votre pipeline de nettoyage de données. Passez le HTML collecté dans Readability.js pour filtrer uniquement le titre et le corps, puis effacez les espaces inutiles avec des expressions régulières. En convertissant et en stockant ce texte nettoyé en Markdown, la quantité de données que l'agent doit lire est réduite de 90 %. La pertinence de la recherche est améliorée de 2,29 fois. Il est bien plus efficace d'insérer des données propres que de forcer l'insertion d'une grande quantité de données.
La plupart des sites web consultent le flag navigator.webdriver pour bloquer l'accès des agents IA. Si vous voulez éviter l'écran CAPTCHA, une stratégie furtive est indispensable. Les mouvements mécaniques sont vite repérés. Je considère que la simulation mathématique du comportement humain est la solution la plus intelligente.
Tout d'abord, utilisez le plugin playwright-stealth pour effacer le flag webdriver et usurper l'agent utilisateur avec une version récente de Chrome. Pour déplacer la souris, utilisez des courbes de Bézier plutôt que des lignes droites.
Lors de la saisie au clavier, insérez également un délai aléatoire entre 50 ms et 200 ms pour chaque caractère. Le simple fait de faire une pause aléatoire de 2 à 5 secondes lors du changement de page permet d'échapper à la vigilance des systèmes anti-bots. Cela peut paraître un peu lent, mais c'est bien plus rapide que d'être bloqué et de ne plus pouvoir collecter de données du tout.