Веб-скрапинг — это мощный метод извлечения данных с веб-сайтов, но преобразование беспорядочного HTML в чистую, структурированную информацию представляет собой значительную проблему. Вот где вступает в дело Perplexity AI. С помощью AI вы можете извлекать данные быстрее и точнее.

В этом блоге мы покажем вам, как использовать Perplexity AI для веб-скрапинга в Python. Вы узнаете, как извлекать HTML-контент, преобразовывать его в Markdown для лучшей читаемости и использовать AI для извлечения нужных вам данных. Мы также покажем вам, как Crawlbase Умный прокси-сервер ИИ помогает вам избегать блокировок и капч при парсинге защищенных веб-сайтов. Вы можете зарегистрироваться сейчас и получить 5,000 бесплатных кредитов.

Этот блог предназначен для разработчиков, аналитиков и всех, кто хочет использовать веб-парсинг более эффективно.

📚 Содержание

  1. Зачем использовать Perplexity AI для веб-скрапинга?
  2. Настройка среды Python
  1. Пошаговое руководство по использованию Perplexity AI для веб-скрапинга
  1. Проблемы и ограничения Perplexity AI при веб-скрапинге
  2. Избегайте блокировки: используйте Crawlbase Умный прокси-сервер ИИ
  3. Заключение
  4. Часто задаваемые вопросы (FAQ)

Зачем использовать Perplexity AI для веб-скрапинга?

Традиционный веб-скрапинг использует библиотеки Python, такие как запросы и BeautifulSoup, для извлечения данных из HTML веб-сайта. Хорошо работает для простых сайтов, но становится сложным, когда HTML запутанный или сложный.

Вот тут-то и появляется Perplexity AI.

Perplexity AI — это умный инструмент, который понимает естественный язык и может находить структурированные данные внутри необработанного HTML-контента. Когда вы объединяете его с веб-скрапингом, становится проще извлекать чистые, полезные и организованные данные.

Преимущества ИИ Perplexity для парсинга:

  • Извлечение данных из сложных веб-страниц
  • Сокращает время, затрачиваемое на написание собственной логики синтаксического анализа.
  • Работает с HTML в формате Markdown, что делает извлечение данных более точным.
  • Возвращает структурированный вывод в формате JSON

Используя Perplexity AI для веб-скрапинга на Python, вы сможете делать это быстрее, эффективнее и эффективнее.

Настройка среды Python

Прежде чем использовать Perplexity AI для веб-скрапинга, нам нужно подготовить нашу среду Python. Такая настройка гарантирует, что все будет работать гладко и поможет избежать ошибок в дальнейшем.

Установить Python

Если вы еще этого не сделали, установите Python из Официальном сайте. Python — это основной язык, который мы будем использовать для отправки запросов, обработки веб-данных и взаимодействия с API Perplexity.

Создать виртуальную среду

Виртуальная среда позволяет организовать зависимости вашего проекта и избежать конфликтов с другими проектами Python.

Откройте терминал или командную строку и выполните:

1
python -m venv perplexity_env

Затем активируйте среду:

  • Windows:
1
perplexity_env\Скрипты\активировать
  • макОС/Линукс:
1
источник perplexity_env/bin/активировать

Установить необходимые библиотеки

Теперь давайте установим необходимые нам пакеты Python:

1
pip install beautifulsoup4 markdownify openai запросы
  • beautifulsoup4: для анализа HTML
  • markdownify: для преобразования HTML в разметку
  • openai: для подключения к API Perplexity (использует формат, совместимый с OpenAI)
  • requests: для отправки HTTP-запросов

Настройка доступа к API Perplexity

Чтобы использовать Perplexity для веб-скрапинга, вам нужен ключ API. Perplexity предлагает API, совместимый с OpenAI, что означает, что вы можете использовать тот же формат кода, что и модели GPT OpenAI.

Вот как это сделать:

  1. Получите свой ключ API из панели управления вашего аккаунта Perplexity.
  2. Установите свой ключ API в своем коде как это:
1
2
3
4
5
6
от openai Импортировать OpenAI

клиент = OpenAI(
api_key=" ",
base_url="https://api.perplexity.ai"
)

Обязательно храните свой ключ API в безопасности и никогда не публикуйте его в коде публично.

Пошаговое руководство по использованию Perplexity AI для веб-скрапинга

В этом разделе мы покажем вам, как создать веб-скрейпер Python с использованием Perplexity AI. Вы узнаете, как скрейпить веб-страницу, очистить ее содержимое, преобразовать его в Markdown и использовать Perplexity AI для извлечения данных. Мы воспользуемся BeautifulSoup, чтобы выбрать только необходимую часть страницы, избегая лишнего HTML, который может увеличить затраты за счет использования большего количества токенов.

В качестве примера мы будем использовать следующий URL:

1
https://www.amazon.com/Art-War-DELUXE-Sun-Tzu/dp/9388369696/ref=sr_1_1

Отправка запросов и анализ HTML

Для начала мы отправим HTTP-запрос на целевой веб-сайт и получим его HTML-контент. Сохраните следующий код Python в файле с именем crawl.py:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
от запросы.исключения Импортировать ЗапросИсключения
от urllib3.исключения Импортировать Небезопасный запросПредупреждение
Импортировать Запросы

# Необходимо подавить только одно предупреждение из urllib3.
requests.packages.urllib3.disable_warnings(категория=Предупреждение о небезопасном запросе)

ЗАГОЛОВКИ = {
'принимать': 'текст/html,приложение/xhtml+xml,приложение/xml;q=0.9,изображение/avif,изображение/webp,изображение/apng,*/*;q=0.8,приложение/signed-exchange;v=b3;q=0.7',
«пользовательский агент»: «Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/137.0.0.0 Safari/537.36»
}

защиту ползать(URL) -> ул:
стараться:
ответ = запросы.получить(
URL,
заголовки=ЗАГОЛОВКИ,
verify =Ложь,
тайм-аут =30
)
ответ.raise_for_status()

возвращают ответ.текст

кроме ЗапросИсключения as ошибка:
Распечатать(f"\nНе удалось просканировать URL-адрес '{URL}': {ошибка}\n")
повышение

if __имя__ == "__основной__":

html_content = сканировать("https://www.amazon.com/Art-War-DELUXE-Sun-Tzu/dp/9388369696/ref=sr_1_1")
с открытый('output.html', 'w', кодировка='utf-8') as файл:
файл.запись(html_content)

Запустите скрипт с помощью следующей команды:

1
python-ползать.py

После выполнения будет создан выходной файл с именем output.html.

Вывод браузера страницы книги Amazon

Примечание:
Иногда может возникнуть следующая ошибка из-за того, что Amazon блокирует автоматические запросы:

1
Не удалось преобразовать HTML в Markdown: 'НетТипа' объект не имеет атрибута 'текст'

Если это произойдет, открытие output.html в браузере может показать неожиданный или пустой результат, как показано ниже:

Вывод браузера страницы книги Amazon

Это распространенная проблема веб-сайтов, которые используют защиту от ботов. Чтобы решить ее, вы можете использовать заголовки HTTP, которые имитируют настоящий браузер, или принять более продвинутые решения, такие как Crawlbase Умный AI Proxy, о котором пойдет речь позже.

Конвертировать HTML в Markdown для обработки ИИ

Perplexity AI работает лучше, когда мы отправляем чистый, упрощенный текст вместо сырого HTML. Чтобы добиться этого, мы будем использовать markdownify библиотека для преобразования HTML в уценка. Отправка только соответствующего раздела сокращает использование токенов и повышает качество ответов ИИ.

Мы будем парсить HTML-контент с помощью BeautifulSoup. Сохраните следующий код в файле с именем parse.py:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
от ползать Импортировать ползать
от bs4 Импортировать КрасивыйСуп
от маркдаунификация Импортировать маркдаунификация as md

защиту анализировать_html_в_формат_markdown(html_контент) -> ул:
стараться:
суп = КрасивыйСуп(html_content, "html.парсер")
элемент = суп.найти(id='центрКол')

возвращают мд(ул(элемент.текст))
кроме Исключение as ошибка:
Распечатать(f"\nНе удалось преобразовать HTML в Markdown: {ошибка}\n")
повышение

if __имя__ == "__основной__":

html_content = сканировать("https://www.amazon.com/Art-War-DELUXE-Sun-Tzu/dp/9388369696/ref=sr_1_1")

markdown_content = анализ_html_в_формат_markdown(html_content)
с открытый('выход.md', 'w', кодировка='utf-8') as файл:
файл.write(markdown_content)

Теперь запустите скрипт с помощью следующей команды:

1
pythonparse.py

Это сгенерирует выходной файл с именем output.md. При просмотре с помощью Markdown-превьюера он будет выглядеть следующим образом:

Вывод браузера страницы книги Amazon

Чистый формат Markdown упрощает эффективную обработку контента такими инструментами, как Perplexity AI, позволяя им сосредоточиться на наиболее релевантной информации.

Форматирование подсказок ИИ

Чтобы достичь наилучших результатов с Perplexity AI, давайте четкие инструкции (подсказки). Эти подсказки помогают ИИ понять, что вы хотите извлечь.

Вот пример подсказки:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
подсказка = [
{
"роль": "система",
"содержание": «Вы полезный помощник, который кратко описывает страницу каталога товаров на Amazon».
},
{
"роль": «Пользователь»,
"содержание": (
"Извлеките следующие данные из Markdown:\n"
"- 1 предложение резюме\n"
"- Поиск в Интернете рекомендуемой литературы\n"
"- Цены\n\n"
f"Markdown:\n{markdown_content}\п\п"
«Отправлять только извлеченные данные в формате JSON».
),
},
]

Эта подсказка инструктирует ИИ о том, что именно следует извлечь из контента.

Передача данных в ИИ для анализа

Теперь давайте отправим эту подсказку в Perplexity AI, используя их API, совместимый с OpenAI:

Сохранить в perplexity_ai_powered_scraper.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
от ползать Импортировать ползать
от разбор Импортировать анализировать_html_в_формат_markdown
от openai Импортировать OpenAI
Импортировать JSON

URL = "https://www.amazon.com/Art-War-DELUXE-Sun-Tzu/dp/9388369696/ref=sr_1_1"

html_content = сканировать(URL)
markdown_content = анализ_html_в_формат_markdown(html_content)

подсказка = [
{
"роль": "система",
"содержание": «Вы полезный помощник, который кратко описывает страницу каталога товаров на Amazon».
},
{
"роль": «Пользователь»,
"содержание": (
"Извлеките следующие данные из Markdown:\n"
"- 1 предложение резюме\n"
"- Поиск в Интернете рекомендуемой литературы\n"
"- Цены\n\n"
f"Markdown:\n{markdown_content}\п\п"
«Отправлять только извлеченные данные в формате JSON».
),
},
]

клиент = OpenAI(api_key=" ", базовый_url="https://api.perplexity.ai")

# Отправить запрос на завершение чата
ответ = клиент.чат.завершения.создать(
модель ="сонар-про",
сообщения=подсказка,
)

# Экспортировать результат в формате JSON
scraped_data = json.loads(response.choices[0]message.content)

Распечатать(json.dumps(scraped_data, indent=2))

Не забудьте заменить <perplexity.ai API KEY> с помощью API-ключа ранее и запустите код с помощью команды ниже.

1
python perplexity_ai_powered_scraper.py

Это выведет текст JSON:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"1_предложение_резюме": «Искусство войны» — древний китайский военный трактат Сунь Цзы, в котором особое внимание уделяется стратегическому планированию, пониманию как себя, так и противника, а также использованию адаптивной тактики для достижения победы в конфликте и за его пределами[1][3][4].,
"рекомендуется_к_чтению": [
«О войне» Карла фон Клаузевица,
«Книга пяти колец» Миямото Мусаси,
«Лидерство и стратегия от Сунь Цзы и других мастеров» Уильяма А. Коэна,
«33 стратегии войны Роберта Грина»,
«Государь» Никколо Макиавелли
],
"цены": [
{
"формат": "Твердый переплет (Deluxe Hardback Edition)",
"цена": "15.80 $"
}
]
}

Полный исходный код можно просмотреть на GitHub.

Проблемы и ограничения Perplexity AI при веб-скрапинге

Хотя Perplexity AI предлагает мощные функции для веб-скрапинга, он сопряжен с некоторыми трудностями:

Изображения, демонстрирующие проблемы и ограничения Perplexity AI при веб-скрапинге

Понимание этих ограничений поможет вам максимально использовать преимущества Perplexity AI для веб-скрапинга, одновременно минимизируя потенциальные проблемы.

Избегайте блокировки: используйте Crawlbase Умный прокси-сервер ИИ

При использовании Perplexity AI веб-сайты часто блокируют ботов, что затрудняет получение данных. Crawlbase Умный прокси-сервер ИИ решает эту проблему путем ротации IP-адресов и обхода CAPTCHA, что позволяет вам сканировать веб-сайты, не подвергаясь блокировке.

Зачем использовать Crawlbase Умный прокси-сервер ИИ с Perplexity AI?

  1. Обход блокировки IP-адресов: Меняет IP-адреса, чтобы избежать обнаружения.
  2. Обход CAPTCHA: Автоматически обрабатывает CAPTCHA, избавляя вас от необходимости делать это самостоятельно.
  3. Экономить время: Нет необходимости управлять прокси-серверами.Crawlbase делает все это.
  4. Чистый HTML: Возвращает готовый к использованию HTML для Perplexity AI.

Пример кода:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
от bs4 Импортировать КрасивыйСуп
от маркдаунификация Импортировать маркдаунификация as md
от запросы.исключения Импортировать ЗапросИсключения
от urllib3.исключения Импортировать Небезопасный запросПредупреждение
Импортировать Запросы

# Необходимо подавить только одно предупреждение из urllib3.
requests.packages.urllib3.disable_warnings(категория=Предупреждение о небезопасном запросе)

ЗАГОЛОВКИ = {
'принимать': 'текст/html,приложение/xhtml+xml,приложение/xml;q=0.9,изображение/avif,изображение/webp,изображение/apng,*/*;q=0.8,приложение/signed-exchange;v=b3;q=0.7',
«пользовательский агент»: «Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/137.0.0.0 Safari/537.36»
}

защиту сканировать_с_умным_прокси(URL) -> ул:
proxy_url = "http:// :@smartproxy.crawlbase.com:8012" # Используйте https:// и порт 8013 для HTTPS
прокси = {
"http": proxy_url,
"https": proxy_url
}

стараться:
ответ = запросы.получить(
URL,
заголовки=ЗАГОЛОВКИ,
прокси=прокси,
verify =Ложь,
тайм-аут =30
)
ответ.raise_for_status()

возвращают ответ.текст

кроме ЗапросИсключения as ошибка:
Распечатать(f"\nНе удалось просканировать URL-адрес '{URL}': {ошибка}\n")
повышение

Благодаря более чем Crawlbase Smart AI Proxy: вы можете безопасно сканировать веб-сайты, обходить блокировки и получать чистые данные для обработки с помощью Perplexity AI.

Заключение

Использование Perplexity AI для веб-скрапинга в Python может улучшить ваши задачи по скрапингу, сделав их быстрее, умнее и точнее. Преобразуя сырой HTML в Markdown и используя AI для извлечения структурированных данных, вы можете оптимизировать свой процесс и сэкономить время.

Однако парсинг веб-сайтов может быть сложным, особенно при столкновении с блокировками и CAPTCHA. Вот где Crawlbase Умный прокси-сервер ИИ Он поможет вам избежать блокировок по IP-адресам и обходит CAPTCHA, позволяя вам беспрепятственно парсить веб-сайты. Это сочетание искусственного интеллекта Perplexity и Crawlbase Smart AI Proxy делает веб-скрапинг более эффективным и масштабируемым, позволяя вам получать необходимые данные без блокировок.

Часто задаваемые вопросы (FAQ)

В. Что такое Perplexity AI и как он помогает при веб-скрапинге?

Perplexity AI — это инструмент, который использует обработку естественного языка, чтобы помочь вам извлечь структурированные данные из необработанного HTML-контента. Он упрощает парсинг, преобразуя беспорядочный HTML в читаемый Markdown и извлекая ключевые данные с помощью AI. Экономит ваше время и повышает точность извлечения данных.

В. Как Crawlbase Умный прокси-сервер ИИ предотвращает блокировку моего скрапера?

Crawlbase Умный прокси-сервер ИИ Ротирует IP-адреса и обходит CAPTCHA, создавая видимость присутствия реального пользователя на сайте. Это помогает избегать блокировок по IP-адресам и позволяет парсить веб-сайты, не будучи распознанным как бот. Надёжный инструмент для бесперебойной работы парсинга.

В. Могу ли я использовать Perplexity AI и Crawlbase Умный прокси-сервер ИИ вместе?

Да! Использование Perplexity AI для извлечения данных и Crawlbase Умный прокси-сервер ИИ для обхода блокировок и CAPTCHA — это убойное сочетание. Crawlbase обеспечивает бесперебойный доступ к веб-сайту, а Perplexity AI упрощает очистку и обработку данных.