Blog / AI
AI

Web Scraping con LlamaIndex y Bright Data

Descubra cómo utilizar las herramientas LlamaIndex y Bright Data en Python para raspar páginas web, realizar capturas de pantalla, ejecutar búsquedas en Google y automatizar la alimentación de datos fácilmente.
9 min de lectura
LlamaIndex & Bright Data Web Scraping

A lo largo de esta guía, utilizaremos LlamaIndex para extraer datos con sus herramientas Bright Data. Cuando haya terminado con este tutorial, usted será capaz de hacer todo lo siguiente.

  • Extraer datos del sitio web como markdown
  • Hacer capturas de pantalla de páginas web
  • Realiza búsquedas en Google desde tu aplicación
  • Activar recopilaciones a petición mediante fuentes de datos y la API Web Scraper de Bright Data

Introducción: ¿Qué es LlamaIndex?

Antes de la era de la IA, la recopilación de datos era un proceso frágil y de alto mantenimiento. Un solo cambio en el diseño del sitio podía romper todo el proceso. En los tiempos modernos, esto no es así, siempre que se utilicen las herramientas adecuadas.

LlamaIndex conecta modelos lingüísticos con herramientas y fuentes de datos externas. Viene preempaquetado con modelos mínimos construidos para funcionar mínimamente con estos conjuntos de herramientas. En nuestro caso concreto, LlamaIndex puede integrarse con el servidor MCP de Bright Data.

En las siguientes secciones, recorreremos las capacidades del conjunto de herramientas Bright Data de LlamaIndex. Asegúrese de tener instalado Python.

Requisitos previos

Nuestros requisitos aquí son sorprendentemente ligeros. Para operaciones sencillas de scraping, ni siquiera necesitamos un LLM. Necesita LlamaIndex y una clave API de Bright Data, ¡eso es todo!

LlamaIndex

LlamaIndex ofrece un conjunto completo de herramientas que puedes instalar con el siguiente comando. Si sólo quieres raspar la web, no es estrictamente necesario.

pip install llama-index

Puede instalar sus Bright Data Tools con el siguiente comando a través de pip.

pip install llama-index-tools-brightdata

Datos brillantes

En primer lugar, necesita una cuenta con Bright Data. Puede utilizar este enlace para inscribirse en una prueba gratuita con Unlocker. Una vez que tenga una cuenta, guarde su clave API.

Puede encontrar su clave API en su panel de control de “proxies” de Bright Data o en su configuración de usuario.

Cómo encontrar su clave API

Raspado con LlamaIndex

BrightDataToolSpec: Su puente hacia Bright Data MCP

LlamaIndex nos da acceso a la clase BrightDataToolSpec. El siguiente fragmento configura el acceso a todas las herramientas. Recuerde sustituir la clave API por la suya propia y el nombre de la zona por una de sus zonas personales.

from llama_index.tools.brightdata import BrightDataToolSpec

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

Scrape como Markdown

El siguiente fragmento de código le permite raspar cualquier página y devolver su contenido como markdown. El método scrape_as_markdown( ) lo hace todo por nosotros.

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)

Aquí tienes un ejemplo de la salida del comando. Como se puede ver, estamos raspando con éxito los datos de Amazon y convertirlo a 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) 

Hacer capturas de pantalla

Las capturas de pantalla son otra herramienta excelente para rastrear la web. La mayoría de los LLM modernos pueden ver e interpretar imágenes. En el siguiente fragmento, tomamos una captura de pantalla de la página con el método 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 captura de abajo proviene de BrightDataToolSpec. Este podría ser el método de captura de pantalla más fácil disponible en todo Python.

Captura de pantalla de example.com

Motor de búsqueda

Al igual que las herramientas anteriores, llamamos al motor de búsqueda mediante un sencillo método search_engine(). Utiliza Google por defecto, pero puedes utilizar cualquier motor de búsqueda que desees. Puedes aprender más sobre nuestros parámetros de consulta SERP aquí.

Están disponibles los siguientes motores de búsqueda.

  • Google
  • Bing
  • Yandex
  • DuckDuckGo
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)

Observa cómo llamamos a json.loads() antes de volcar los datos a un archivo JSON. Incluso cuando se utiliza .json(), LlamaIndex muestra su JSON como una cadena. Si desea manejarlo como un dict, json.loads() lo convierte en un objeto JSON tradicional.

He aquí una pequeña porción del archivo JSON que escribe nuestro scraper.

{
    "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 raspado web

La API de raspado permite crear feeds de datos que activan colecciones bajo demanda. En el código siguiente, utilizamos web_data_feed() para activar una colección desde la API de raspado.

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)

Después de unos momentos, dirígete a tu página de registros. Verás todas tus colecciones registradas y listas para descargar con solo pulsar un botón.

Los informes Scraper están listos para descargar

Conclusión

Ahora, usted ha nivelado su web scraping y reducir su carga de trabajo drásticamente. Con LlamaIndex, Bright Data y unas pocas líneas de Python, puede extraer casi cualquier dato que desee de la web.

Ya se trate de extraer markdown, capturar pantallas, realizar búsquedas en Google o activar trabajos de scraping completos, LlamaIndex y Bright Data le ofrecen la posibilidad de recopilar sus valiosos datos.

¿Listo para pasar al siguiente nivel? Conecte esta potente combinación de herramientas a una canalización de datos en tiempo real o cree un agente de IA.

Regístrese ahora para obtener una prueba gratuita y aumente el nivel de su recopilación de datos.