Веб-скраппинг с помощью ChatGPT

Путеводители, Как сделать, Скрапинг, Август-20-20245 минут чтения

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

Введение в ChatGPT

ChatGPT на базе OpenAI - это современная языковая модель, предназначенная для понимания и генерации человекоподобного текста. Она использует обработку естественного языка (NLP) для решения различных задач - от создания контента до помощи в кодировании. Благодаря своей способности понимать контекст и выдавать интеллектуальные предложения ChatGPT стал ценным активом для разработчиков и специалистов по анализу данных.

Что такое ChatGpt?

ChatGPT расшифровывается как "Chat Generative Pre-trained Transformer". Это тип искусственного интеллекта, который может генерировать текст на основе полученных данных. Хотя он известен своими разговорными способностями, его применение выходит далеко за рамки простого диалога.

Использование ChatGpt в веб-скреппинге

  • Помощь с кодом: Помощь в написании и отладке скриптов для веб-скреппинга.
  • Рекомендации по библиотеке: Предложите такие инструменты, как Beautiful Soup, Scrapy, Selenium...
  • Лучшие практики: Руководство по этичным и эффективным методам скрапбукинга.

Ограничения ChatGPT в веб-скрапинге

  • Обход мер безопасности: ChatGPT не может помочь обойти меры безопасности, такие как блокировка IP-адресов или другие технологии, препятствующие скрапингу, выходящие за этические рамки.
  • Сбор данных в режиме реального времени: ChatGPT не может взаимодействовать с веб-сайтами в режиме реального времени для сбора данных.
  • Разработка пользовательских инструментов: ChatGPT не может разрабатывать собственные программные инструменты или фреймворки для веб-скреппинга.

Пример использования ChatGpt для веб-скрапинга

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

Давайте рассмотрим простой пример. Представьте себе, что мы хотим скрести веб-сайт с блогами, извлечь каждую запись из блога и сохранить ее в csv-файле. Информация, которую мы хотим сохранить, - это название блога, описание и url блога.

Шаг 1 - Составьте подсказку ChatGpt:

Для начала нам нужно создать запрос для ChatGPT, в котором будет четко указано, что нам нужно. В этом примере мы будем использовать веб-сайт (https://www.scrapethissite.com/pages) для извлечения названия, описания и URL каждого блога. Чтобы правильно проинструктировать ChatGpt, нам нужно указать селекторы первого блога. Для этого щелкните правой кнопкой мыши на элементе, а затем нажмите кнопку inspect

После этого мы хотим захватить селектор Xpath, снова щелкнув правой кнопкой мыши на элементе, а затем Копировать и затем Копировать XPath

То же самое следует сделать в разделах описания и URL блога.

Ниже приведена окончательная версия подсказки:

Разработайте скрипт на Python с использованием библиотеки 'Requests' и 'BeautifulSoup', который будет собирать  записи вблогах с этого сайта: "https://www.scrapethissite.com/pages/"
Необходимоизвлечь следующую информацию: 
- Название блога - XPath: "//*[@id="pages"]/section/div/div/div/div/div[1]/h3/a" 
- Описание блога - XPath: "//*[@id="pages"]/section/div/div/div/div/div[1]/p"- Url блога 
- XPath: "//*[@id="pages"]/section/div/div/div/div/div[1]/h3/a"

В конце скрипт должен вывести результаты и сохранить их в csv-файле.

Шаг 2 - Настройка сценария Python:

Вот сценарий, который вывел ChatGpt:

import requests
from bs4 import BeautifulSoup
import csv
# URL of the website to scrape
url = 'https://www.scrapethissite.com/pages/'
# Send a GET request to the URL
response = requests.get(url)
# Parse the page content using BeautifulSoup
soup = BeautifulSoup(response.text, 'html.parser')
# List to store the scraped data
blogs = []
# Locate the sections containing blog information
# Using the provided XPath details converted to BeautifulSoup format
blog_sections = soup.select('#pages section div div div div')
for section in blog_sections:
   # Extract the blog title
   title_tag = section.select_one('h3 a')
   title = title_tag.text.strip() if title_tag else 'No title'
   # Extract the blog description
   description_tag = section.select_one('p')
   description = description_tag.text.strip() if description_tag else 'No description'
   # Extract the blog URL
   url_tag = section.select_one('h3 a')
   blog_url = url_tag['href'] if url_tag else 'No URL'
   # Append the data to the blogs list
   blogs.append({'Title': title, 'Description': description, 'URL': blog_url})
# Print the extracted information
for blog in blogs:
   print(f"Title: {blog['Title']}\nDescription: {blog['Description']}\nURL: {blog['URL']}\n")
# Save the data to a CSV file
csv_file = 'blogs.csv'
with open(csv_file, mode='w', newline='') as file:
   writer = csv.DictWriter(file, fieldnames=['Title', 'Description', 'URL'])
   writer.writeheader()
   writer.writerows(blogs)
if __name__ == '__main__':
   print(f"Data saved to {csv_file}")

Перед запуском этого скрипта убедитесь, что у вас установлены библиотеки 'requests' и 'bs4'.

pip install requests bs4

Вот краткий обзор того, что делает этот скрипт:

  • Библиотеки импорта: Импортируетrequests, BeautifulSoup и csv для обработки HTTP-запросов, разбора HTML и управления CSV-файлами.
  • Получение содержимого веб-страницы: Использует запросы для отправки GET-запроса на указанный URL и получения HTML-содержимого страницы.
  • Разбор содержимого HTML: Разбирает полученный HTML с помощью BeautifulSoup, чтобы облегчить извлечение данных.
  • Извлечение информации из блога:
    • Заголовок блога: Извлекает название каждой записи блога.
    • Описание блога: Извлекает описание каждой записи блога.
    • URL-адрес блога: Извлекает URL-адрес каждой записи в блоге.
  • Хранить данные: Сохраняет извлеченные данные в списке словарей.
  • Печать извлеченных данных: Печатает название, описание и URL-адрес каждой записи в блоге.
  • Сохранить данные в CSV: сохранение извлеченных данных в CSV-файл с именем blogs.csv.

Шаг 3 - Протестируйте сценарий:

После установки необходимых библиотек создайте файл Python с предпочтительным именем. Затем вставьте скрипт в этот файл и сохраните его.

После выполнения скрипта он выведет данные для каждого блога и создаст CSV-файл с именем "blogs.csv". Вот как он выглядит:

Заключение

ChatGPT - это ценный инструмент для разработчиков, специалистов по анализу данных и любителей веб-скрапинга. Используя его возможности, вы сможете усовершенствовать свои скрипты веб-скрепинга, повысить точность и сократить время разработки. Если вы извлекаете данные для анализа рынка, мониторинга социальных сетей или академических исследований, ChatGPT поможет вам достичь своих целей более эффективно.