9.4 KiB
🕷️ ScrapeGraphAI: Вы скрейпите только один раз
ScrapeGraphAI - это библиотека для веб-скрейпинга на Python, которая использует LLM и прямую графовую логику для создания скрейпинговых пайплайнов для веб-сайтов и локальных документов (XML, HTML, JSON и т.д.).
Просто укажите, какую информацию вы хотите извлечь, и библиотека сделает это за вас!
🚀 Быстрая установка
Референсная страница для Scrapegraph-ai доступна на официальной странице PyPI: pypi.
bash Copia codice pip install scrapegraphai Примечание: рекомендуется устанавливать библиотеку в виртуальную среду, чтобы избежать конфликтов с другими библиотеками 🐱
🔍 Демонстрация
Официальная демонстрация на Streamlit:
Попробуйте ее прямо в интернете, используя Google Colab:
📖 Документация
Документация для ScrapeGraphAI доступна здесь.
Посмотрите также Docusaurus здесь.
💻 Использование
Существует три основных скрейпинговых пайплайна, которые можно использовать для извлечения информации с веб-сайта (или локального файла):
SmartScraperGraph: скрейпер одной страницы, которому требуется только пользовательский запрос и источник ввода; SearchGraph: многопользовательский скрейпер, который извлекает информацию из топ n результатов поиска поисковой системы; SpeechGraph: скрейпер одной страницы, который извлекает информацию с веб-сайта и генерирует аудиофайл. SmartScraperMultiGraph: скрейпер нескольких страниц по одному запросу. Можно использовать различные LLM через API, такие как OpenAI, Groq, Azure и Gemini, или локальные модели, используя Ollama.
Пример 1: SmartScraper с использованием локальных моделей Не забудьте установить Ollama и загрузить модели, используя команду ollama pull.
from scrapegraphai.graphs import SmartScraperGraph
graph_config = {
"llm": {
"model": "ollama/mistral",
"temperature": 0,
"format": "json", # Ollama требует явного указания формата
"base_url": "http://localhost:11434", # укажите URL Ollama
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"base_url": "http://localhost:11434", # укажите URL Ollama
},
"verbose": True,
}
smart_scraper_graph = SmartScraperGraph(
prompt="Перечислите все проекты с их описаниями",
# также принимает строку с уже загруженным HTML-кодом
source="https://perinim.github.io/projects",
config=graph_config
)
result = smart_scraper_graph.run()
print(result)
Выходные данные будут представлять собой список проектов с их описаниями, например:
{'projects': [{'title': 'Rotary Pendulum RL', 'description': 'Open Source проект, направленный на управление реальным роторным маятником с использованием алгоритмов RL'}, {'title': 'DQN Implementation from scratch', 'description': 'Разработан алгоритм Deep Q-Network для обучения простого и двойного маятника'}, ...]}
Пример 2: SearchGraph с использованием смешанных моделей Мы используем Groq для LLM и Ollama для встраивания.
python Copia codice from scrapegraphai.graphs import SearchGraph
Определите конфигурацию для графа
graph_config = { "llm": { "model": "groq/gemma-7b-it", "api_key": "GROQ_API_KEY", "temperature": 0 }, "embeddings": { "model": "ollama/nomic-embed-text", "base_url": "http://localhost:11434", # укажите URL Ollama произвольно }, "max_results": 5, }
Создайте экземпляр SearchGraph
search_graph = SearchGraph( prompt="Перечислите все традиционные рецепты из Кьоджи", config=graph_config )
Запустите граф
result = search_graph.run() print(result) Выходные данные будут представлять собой список рецептов, например:
{'recipes': [{'name': 'Sarde in Saòre'}, {'name': 'Bigoli in salsa'}, {'name': 'Seppie in umido'}, {'name': 'Moleche frite'}, {'name': 'Risotto alla pescatora'}, {'name': 'Broeto'}, {'name': 'Bibarasse in Cassopipa'}, {'name': 'Risi e bisi'}, {'name': 'Smegiassa Ciosota'}]}
Пример 3: SpeechGraph с использованием OpenAI
Вам просто нужно передать ключ API OpenAI и название модели.
python
Copia codice
from scrapegraphai.graphs import SpeechGraph
graph_config = {
"llm": {
"api_key": "OPENAI_API_KEY",
"model": "gpt-3.5-turbo",
},
"tts_model": {
"api_key": "OPENAI_API_KEY",
"model": "tts-1",
"voice": "alloy"
},
"output_path": "audio_summary.mp3",
}
# ************************************************
# Создайте экземпляр SpeechGraph и запустите его
# ************************************************
speech_graph = SpeechGraph(
prompt="Сделайте подробное аудиорезюме проектов.",
source="https://perinim.github.io/projects/",
config=graph_config,
)
result = speech_graph.run()
print(result)
Выходные данные будут представлять собой аудиофайл с резюме проектов на странице.
Спонсоры
🤝 Участие
Не стесняйтесь вносить свой вклад и присоединяйтесь к нашему серверу Discord, чтобы обсудить с нами улучшения и дать нам предложения!
Пожалуйста, ознакомьтесь с руководством по участию.
📈 Дорожная карта
Посмотрите дорожную карту проекта здесь! 🚀
Хотите визуализировать дорожную карту более интерактивно? Посмотрите визуализацию markmap, скопировав содержимое markdown в редактор!
🎓 Цитаты
Если вы использовали нашу библиотеку для научных исследований, пожалуйста, укажите нас в следующем виде:
text Copia codice @misc{scrapegraph-ai, author = {Марко Перини, Лоренцо Падоан, Марко Винчигуэрра}, title = {Scrapegraph-ai}, year = {2024}, url = {https://github.com/VinciGit00/Scrapegraph-ai}, note = {Библиотека на Python для скрейпинга с использованием больших языковых моделей} }
Авторы
ScrapeGraphAI лицензирован под MIT License. Подробнее см. в файле LICENSE.
Благодарности
Мы хотели бы поблагодарить всех участников проекта и сообщество с открытым исходным кодом за их поддержку. ScrapeGraphAI предназначен только для исследования данных и научных целей. Мы не несем ответственности за неправильное использование библиотеки.