В этом руководстве мы будем использовать LlamaIndex для извлечения данных с помощью их инструментов Bright Data. По завершении этого руководства вы сможете сделать все следующее.
- Извлечение данных сайта в формате markdown
- Делайте скриншоты веб-страниц
- Выполняйте поиск в Google, не выходя из приложения
- Запуск коллекций по требованию с помощью лент данных и API веб-скребка Bright Data
Введение: Что такое LlamaIndex?
До эпохи искусственного интеллекта сбор данных был хрупким и сложным в обслуживании процессом. Одно изменение макета сайта могло привести к поломке всего конвейера. В наше время это не так – при условии, что вы используете правильные инструменты.
LlamaIndex подключает языковые модели к внешним инструментам и источникам данных. Он поставляется с минимальными моделями, созданными для минимальной работы с этими инструментами. В частности, в нашем случае LlamaIndex может интегрироваться с MCP Server компании Bright Data.
В следующих нескольких разделах мы рассмотрим возможности набора инструментов Bright Data от LlamaIndex. Убедитесь, что у вас установлен Python.
Пререквизиты
Наши требования здесь на удивление легкие. Для простых операций скрапинга нам даже не нужен LLM. Вам нужен LlamaIndex и ключ API Bright Data – вот и все!
LlamaIndex
LlamaIndex предлагает полный набор инструментов, которые можно установить с помощью следующей команды. Если вы собираетесь только скрести веб-страницы, это не обязательно.
pip install llama-index
Вы можете установить их Bright Data Tools с помощью следующей команды через pip.
pip install llama-index-tools-brightdata
Яркие данные
Во-первых, вам нужна учетная запись в Bright Data. Вы можете воспользоваться этой ссылкой, чтобы подписаться на бесплатную пробную версию Unlocker. Получив учетную запись, сохраните свой ключ API.
Вы можете найти свой API-ключ на панели управления Bright Data “proxies” или в настройках пользователя.
Скраппинг с помощью LlamaIndex
BrightDataToolSpec: Ваш мост к Bright Data MCP
LlamaIndex предоставляет нам доступ к классу BrightDataToolSpec
. Приведенный ниже фрагмент устанавливает доступ ко всем инструментам. Не забудьте заменить ключ API на свой собственный, а имя зоны – на одну из ваших личных зон.
from llama_index.tools.brightdata import BrightDataToolSpec
brightdata = BrightDataToolSpec(
api_key="your-api-key",
zone="your-zone-name")
Скрап в формате Markdown
В приведенном ниже сниппете вы можете скрапировать любую страницу и вернуть ее содержимое в формате markdown. Метод scrape_as_markdown()
делает все это за нас.
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)
Вот пример вывода команды. Как видите, мы успешно собираем данные Amazon и преобразуем их в разметку.

## 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)
Создание скриншотов
Скриншоты – еще один отличный инструмент для поиска информации в Интернете. Большинство современных LLM умеют просматривать и интерпретировать изображения. В приведенном ниже фрагменте мы делаем скриншот страницы с помощью метода 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")
Снимок ниже сделан из BrightDataToolSpec
. Возможно, это самый простой метод создания скриншотов во всем Python.
Поисковая система
Как и предыдущие инструменты, мы вызываем поисковую систему с помощью простого метода search_engine()
. По умолчанию он использует Google, но вы можете использовать любую поисковую систему по своему усмотрению. Подробнее о параметрах запроса SERP вы можете узнать здесь.
Доступны следующие поисковые системы.
- Bing
- Яндекс
- 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)
Обратите внимание, что мы вызываем json.loads()
перед тем, как выгрузить данные в JSON-файл. Даже при использовании .json()
LlamaIndex выводит свой JSON в виде строки. Если вы хотите работать с ним как с диктой
, json.loads()
преобразует его в традиционный JSON-объект.
Вот небольшая часть JSON-файла, который пишет наш скрепер.
{
"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 веб-скребка
API скрепера позволяет создавать каналы данных, которые запускают коллекции по требованию. В приведенном ниже коде мы используем функцию web_data_feed()
для запуска коллекции из API скрапера.
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)
Через несколько минут перейдите на страницу журналов. Вы увидите, что все ваши коллекции вошли в журнал и готовы к загрузке одним нажатием кнопки.
Заключение
Теперь вы повысили уровень своего веб-скрептинга и значительно сократили объем работы. С помощью LlamaIndex, Bright Data и всего нескольких строк Python вы сможете извлекать из Интернета практически любые данные.
LlamaIndex и Bright Data дают вам возможность собирать ценные данные, независимо от того, извлекаете ли вы разметку, делаете ли скриншоты, выполняете ли поиск в Google или запускаете полноценные задания по скрапбукингу.
Готовы выйти на новый уровень? Подключите этот мощный инструмент к конвейеру данных или создайте ИИ-агента.
Подпишитесь на бесплатную пробную версию и повысьте уровень сбора данных уже сегодня!