Blog / AI
AI

Scraping Web avec LlamaIndex et Bright Data

Découvrez comment utiliser les outils LlamaIndex et Bright Data en Python pour récupérer des pages web, faire des captures d’écran, lancer des recherches Google et automatiser des flux de données en toute simplicité.
10 min de lecture
LlamaIndex & Bright Data Web Scraping

Tout au long de ce guide, nous utiliserons LlamaIndex pour extraire des données avec leurs outils Bright Data. À la fin de ce tutoriel, vous serez en mesure d’effectuer les opérations suivantes.

  • Extraire les données d’un site web au format markdown
  • Faire des captures d’écran de pages web
  • Effectuer des recherches sur Google à partir de votre application
  • Déclencher des collectes à la demande à l’aide de flux de données et de l’API Web Scraper de Bright Data

Introduction : Qu’est-ce que le LlamaIndex ?

Avant l’ère de l’IA, la collecte de données était un processus fragile et exigeant en termes de maintenance. Une simple modification de la présentation du site pouvait interrompre l’ensemble de votre pipeline. Aujourd’hui, ce n’est plus le cas, à condition d’utiliser les bons outils.

LlamaIndex connecte les modèles de langage à des outils et des sources de données externes. Il est fourni avec des modèles minimaux conçus pour fonctionner au minimum avec ces outils. Dans notre cas en particulier, LlamaIndex peut s’intégrer au serveur MCP de Bright Data.

Dans les prochaines sections, nous allons parcourir les capacités de l’ensemble d’outils Bright Data de LlamaIndex. Assurez-vous que Python est installé.

Conditions préalables

Nos exigences en la matière sont étonnamment légères. Pour les opérations de scraping simples, nous n’avons même pas besoin d’un LLM. Vous avez besoin de LlamaIndex et d’une clé API de Bright Data – c’est tout !

LlamaIndex

LlamaIndex offre une suite complète d’outils que vous pouvez installer avec la commande suivante. Si vous ne cherchez qu’à explorer le web, ce n’est pas strictement nécessaire.

pip install llama-index

Vous pouvez installer leurs outils Bright Data Tools à l’aide de la commande suivante via pip.

pip install llama-index-tools-brightdata

Bright Data

Tout d’abord, vous avez besoin d’un compte chez Bright Data. Vous pouvez utiliser ce lien pour vous inscrire à un essai gratuit avec Unlocker. Une fois que vous avez un compte, enregistrez votre clé API.

Vous trouverez votre clé API dans votre tableau de bord Bright Data “proxies” ou dans vos paramètres d’utilisateur.

Trouver votre clé API

Le scraping avec LlamaIndex

BrightDataToolSpec : Votre passerelle vers le MCP de Bright Data

LlamaIndex nous donne accès à la classe BrightDataToolSpec. L’extrait ci-dessous permet d’accéder à tous les outils. N’oubliez pas de remplacer la clé API par la vôtre et le nom de la zone par l’une de vos zones personnelles.

from llama_index.tools.brightdata import BrightDataToolSpec

brightdata = BrightDataToolSpec(
    api_key="your-api-key",
    zone="your-zone-name")

Scraper en Markdown

L’extrait ci-dessous vous permet de récupérer n’importe quelle page et de renvoyer son contenu au format markdown. La méthode scrape_as_markdown() fait tout cela pour nous.

from llama_index.tools.brightdata import BrightDataToolSpec

brightdata = BrightDataToolSpec(
    api_key="your-api-key",
    zone="your-zone-name")
result = brightdata.scrape_as_markdown(url="https://www.amazon.com")
print(result.text)

Voici un exemple de sortie de la commande. Comme vous pouvez le voir, nous réussissons à récupérer les données d’Amazon et à les convertir en markdown.

![](https://m.media-amazon.com/images/G/01/gno/sprites/nav-sprite-global-1x-reorg-privacy._CB546805360_.png) 

## Skip to

* [ Main content](#skippedLink)

---

##  Keyboard shortcuts

* Search  
alt + /
* Cart  
shift + alt + C
* Home  
shift + alt + H
* Orders  
shift + alt + O
* Show/Hide shortcuts  
shift + alt + Z

To move between items, use your keyboard's up or down arrows. 

[ .us ](/ref=nav%5Flogo) 

 Delivering to Bothell 98011  Update location 

All 

Select the department you want to search in All Departments Alexa Skills All The Best Pets Amazon Autos Amazon Devices Amazon Fresh Amazon Global Store Amazon Haul Amazon One Medical Amazon Pharmacy Amazon Resale Appliances Apps & Games Arts, Crafts & Sewing Audible Books & Originals Automotive Parts & Accessories Baby Beauty & Personal Care Books CDs & Vinyl Cell Phones & Accessories Clothing, Shoes & Jewelry Women's Clothing, Shoes & Jewelry Men's Clothing, Shoes & Jewelry Girl's Clothing, Shoes & Jewelry Boy's Clothing, Shoes & Jewelry Baby Clothing, Shoes & Jewelry Collectibles & Fine Art Computers Credit and Payment Cards Digital Music Electronics Garden & Outdoor Gift Cards Grocery & Gourmet Food Handmade Health, Household & Baby Care Home & Business Services Home & Kitchen Industrial & Scientific Just for Prime Kindle Store Luggage & Travel Gear Luxury Stores Magazine Subscriptions Metropolitan Market Movies & TV Musical Instruments Office Products Pet Supplies Premium Beauty Prime Video Same-Day Store Smart Home Software Sports & Outdoors Subscribe & Save Subscription Boxes Tools & Home Improvement Toys & Games Under $10 Video Games Whole Foods Market 

Search Amazon 

[ EN ](/customer-preferences/edit?ie=UTF8&preferencesReturnUrl=%2F&ref%5F=topnav%5Flang) 

[ Hello, sign in Account & Lists ](https://www.amazon.com/ap/signin?openid.pape.max%5Fauth%5Fage=0&openid.return%5Fto=https%3A%2F%2Fwww.amazon.com%2F%3F%5Fencoding%3DUTF8%26ref%5F%3Dnav%5Fya%5Fsignin&openid.identity=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier%5Fselect&openid.assoc%5Fhandle=usflex&openid.mode=checkid%5Fsetup&openid.claimed%5Fid=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier%5Fselect&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0) 

[ Returns & Orders ](/gp/css/order-history?ref%5F=nav%5Forders%5Ffirst) [ 0  Cart ](/gp/cart/view.html?ref%5F=nav%5Fcart) 

[ All ](/gp/site-directory?ref%5F=nav%5Fem%5Fjs%5Fdisabled) 

* [Amazon Haul](/haul/store?ref%5F=nav%5Fcs%5Fhul%5Fdisb)
* [Medical Care ](https://health.amazon.com/prime?ref%5F=nav%5Fcs%5Fall%5Fhealth%5Fingress%5Fonem%5Fh)
* [Saks](/luxurystores/saks?ref%5F=nav%5Fcs%5Fsaks%5Fdisc)
* [Best Sellers](/gp/bestsellers/?ref%5F=nav%5Fcs%5Fbestsellers)
* [Amazon Basics](/Amazon%5FBasics?channel=discovbar&field-lbr%5Fbrands%5Fbrowse-bin=AmazonBasics&ref%5F=nav%5Fcs%5Famazonbasics)
* [New Releases](/gp/new-releases/?ref%5F=nav%5Fcs%5Fnewreleases)
* [Registry](/gp/browse.html?node=16115931011&ref%5F=nav%5Fcs%5Fregistry)
* [Groceries ](/fmc/learn-more?ref%5F=nav%5Fcs%5Fgroceries)
* [Today's Deals](/deals?ref%5F=nav%5Fcs%5Fgb)
* [Gift Cards ](/gift-cards/b/?ie=UTF8&node=2238192011&ref%5F=nav%5Fcs%5Fgc)
* [Smart Home](/Smart-Home/b/?ie=UTF8&node=6563140011&ref%5F=nav%5Fcs%5Fsmart%5Fhome)
* [Music](/music/player?ref%5F=nav%5Fcs%5Fmusic)
* [Prime ](/prime?ref%5F=nav%5Fcs%5Fprimelink%5Fnonmember)
* [Customer Service](/gp/help/customer/display.html?nodeId=508510&ref%5F=nav%5Fcs%5Ffs%5Fhub%5Fnavbar%5Fc)
* [Books](/books-used-books-textbooks/b/?ie=UTF8&node=283155&ref%5F=nav%5Fcs%5Fbooks)
* [Pharmacy](https://pharmacy.amazon.com/?nodl=0&ref%5F=nav%5Fcs%5Fpharmacy)
* [Luxury Stores](/luxurystores?ref%5F=nav%5Fcs%5Fluxury)
* [Amazon Home](/home-garden-kitchen-furniture-bedding/b/?ie=UTF8&node=1055398&ref%5F=nav%5Fcs%5Fhome)
* [Fashion](/amazon-fashion/b/?ie=UTF8&node=7141123011&ref%5F=nav%5Fcs%5Ffashion)
* [Toys & Games](/toys/b/?ie=UTF8&node=165793011&ref%5F=nav%5Fcs%5Ftoys)
* [Beauty & Personal Care](/Beauty-Makeup-Skin-Hair-Products/b/?ie=UTF8&node=3760911&ref%5F=nav%5Fcs%5Fbeauty)
* [Sell](/b/?%5Fencoding=UTF8&ld=AZUSSOA-sell&node=12766669011&ref%5F=nav%5Fcs%5Fsell)
* [Gift Shop](/gcx/Gifts-for-Everyone/gfhz/?ref%5F=nav%5Fcs%5Fgiftfinder)
* [Automotive](/automotive-auto-truck-replacements-parts/b/?ie=UTF8&node=15684181&ref%5F=nav%5Fcs%5Fautomotive)
* [Home Improvement](/Tools-and-Home-Improvement/b/?ie=UTF8&node=228013&ref%5F=nav%5Fcs%5Fhi)
* [Computers](/computer-pc-hardware-accessories-add-ons/b/?ie=UTF8&node=541966&ref%5F=nav%5Fcs%5Fpc)
* [Sports & Outdoors](/sports-outdoors/b/?ie=UTF8&node=3375251&ref%5F=nav%5Fcs%5Fsports)

[Prime Day is July 8-11](/primeday/?%5Fencoding=UTF8&ref%5F=nav%5Fswm%5FUS%5FPD25%5FLU%5FGW%5FSWM%5FAnnounce&pf%5Frd%5Fp=72020f4f-d636-4d60-9e39-399532eba237&pf%5Frd%5Fs=nav-sitewide-msg-text&pf%5Frd%5Ft=4201&pf%5Frd%5Fi=navbar-4201&pf%5Frd%5Fm=ATVPDKIKX0DER&pf%5Frd%5Fr=JA1EM1AGN54HEE871RFM) 

Prendre des captures d’écran

Les captures d’écran sont un autre excellent outil pour la recherche sur le web. La plupart des LLM modernes peuvent visualiser et interpréter des images. Dans l’extrait ci-dessous, nous prenons une capture d’écran de la page avec la méthode get_screenshot().

from llama_index.tools.brightdata import BrightDataToolSpec

brightdata = BrightDataToolSpec(
    api_key="your-api-key",
    zone="your-zone-name")
result = brightdata.get_screenshot(url="https://example.com", output_path="my-screenshot.png")

La capture ci-dessous provient de BrightDataToolSpec. Il s’agit peut-être de la méthode de capture d’écran la plus simple de tout Python.

Capture d'écran de example.com

Moteur de recherche

Comme les outils précédents, nous appelons le moteur de recherche à l’aide d’une simple méthode search_engine(). Elle utilise Google par défaut, mais vous pouvez utiliser n’importe quel moteur de recherche. Pour en savoir plus sur nos paramètres de requête SERP, cliquez ici.

Les moteurs de recherche suivants sont disponibles.

  • Google
  • Bing
  • Yandex
  • Canard enchaîné
from llama_index.tools.brightdata import BrightDataToolSpec

brightdata = BrightDataToolSpec(
    api_key="your-api-key",
    zone="mcp_unlocker")
result = brightdata.search_engine(
    query="Top News Articles"
)

with open("output.json", "w") as file:
    json.dump(json.loads(result.json()), file, indent=4)

Remarquez que nous appelons json.loads() avant de transférer les données dans un fichier JSON. Même en utilisant .json(), LlamaIndex produit son JSON sous la forme d’une chaîne de caractères. Si vous souhaitez le manipuler comme un dict, json.loads() le convertit en un objet JSON traditionnel.

Voici une petite partie du fichier JSON que notre scraper écrit.

{
    "id_": "34bcf1ea-998a-48ce-beb2-0d6feff950e1",
    "embedding": null,
    "metadata": {
        "query": "Top News Articles",
        "engine": "google",
        "url": "https://www.google.com/search?q=Top%20News%20Articles&num=10"
    },
    "excluded_embed_metadata_keys": [],
    "excluded_llm_metadata_keys": [],
    "relationships": {},
    "metadata_template": "{key}: {value}",
    "metadata_separator": "\n",
    "text_resource": {
        "embeddings": null,
        "text": "# Accessibility Links\n\nSkip to main content[Accessibility help](https://support.google.com/websearch/answer/181196?hl=en)\n\nAccessibility feedback\n\n[](https://www.google.com/webhp?hl=en&ictx=0&sa=X&ved=0ahUKEwizmMaNvoCOAxUmmYkEHa58MagQpYkNCAo)\n\nPress / to jump to the search box\n\nTop News Articles\n\n[Sign in](https://accounts.google.com/ServiceLogin?hl=en&passive=true&continue=https://www.google.com/search%3Fq%3DTop%2BNews%2BArticles%26num%3D10%26oq%3DTop%2BNews%2BArticles%26uule%3Dw%2BCAIQICINVW5pdGVkIFN0YXRlcw%26hl%3Den%26sourceid%3Dchrome%26ie%3DUTF-8&ec=GAZAAQ)\n\n# Filters and Topics\n\n[AI Mode](/search?q=Top+News+Articles&sca%5Fesv=62890ff6c1b2e448&hl=en&udm=50&

API de scraper Web

L’API Scraper vous permet de créer des flux de données qui déclenchent des collections à la demande. Dans le code ci-dessous, nous utilisons web_data_feed() pour déclencher une collection à partir de l’API Scraper.

from llama_index.tools.brightdata import BrightDataToolSpec

brightdata = BrightDataToolSpec(
    api_key="your-api-key",
    zone="mcp_unlocker")
result = brightdata.web_data_feed(
    source_type="linkedin_person_profile",
    url="https://www.linkedin.com/in/williamhgates/",
    timeout=600,
    polling_interval=30)

print(result)

Après quelques instants, rendez-vous sur votre page d’enregistrement. Vous devriez voir toutes vos collections enregistrées et prêtes à être téléchargées d’un simple clic.

Les rapports de scraper sont prêts à être téléchargés

Conclusion

Maintenant, vous avez amélioré votre scraping web et réduit votre charge de travail de manière drastique. Avec LlamaIndex, Bright Data et quelques lignes de Python, vous pouvez extraire presque toutes les données que vous voulez du web.

Qu’il s’agisse d’extraire du markdown, de capturer des captures d’écran, d’effectuer des recherches sur Google ou de déclencher des travaux de scraping complets, LlamaIndex et Bright Data vous donnent la possibilité de récolter vos précieuses données.

Prêt à passer au niveau supérieur ? Reliez ce combo d’outils puissants à un pipeline de données en direct ou créez un agent d’intelligence artificielle.

Inscrivez-vous pour un essai gratuit et améliorez votre collecte de données dès aujourd’hui !