Быстро скачиваем информацию из каталога на сайте в нужном формате с помощью Python и ChatGPT. Без глубокого знания кода.
▪ Инструменты: Google Colab, ChatGPT, Python
▪ Время выполнения: 20 минут.
Ситуация: Программист в отпуске, есть задача, для выполнения которой нужно быстро вытащить информацию с сайта, чтобы работа подрядчиков не прерывалась.
Задача: Быстро вытащить нужную информацию с сайта в виде таблицы: название препарата | описание препарата.
Мне удалось справиться с задачей довольно быстро, без глубоких знаний кода. Поделюсь тем, как я её решала пошагово, вдруг кому-то пригодится. Такие ситуации, увы, достаточно частое явление.
Обращу внимание экспертов в области кода, что я специалист в другой сфере и моё решение не претендует на безукоризненное. Нужно было решить задачу быстро и качественно — цель была достигнута :)
По шагам:
1. Заходим на сайт, с которым будем работать. В моём случае lysterra.ru
2. Открываем страницу с любым препаратом, например: lysterra.ru/product/promenad-sk
3. Смотрим код элементов, которые хотим видеть в итоговом документе.
- В моём случае это Название (оно, понятно, значится, как H1)
Чтобы открыть код элемента, выделяем этот элемент правой кнопкой мыши и жмём «Посмотреть код». Открывается окно — код выделенного элемента подсвечен. В моём примере видно, что Променд, СК имеет тег h1.
- Далее в моей финальной таблице я хочу увидеть описание препаратов. Выделяю, жму «Посмотреть код».
Беру название класса: class="product-detail__top-description". Оно позволит мне показать, что именно я хочу вытащить из страниц.
4. Далее пишем скрипт для Python. Мой скрипт можно посмотреть здесь. Обратите внимание, что сначала мы берём первую часть скрипта. Вторую будем использовать чуть позже.
Скрипт мне помогал писать ChatGPT. Для того чтобы скрипт выполнял мою задачу корректно, я использовала промт:
Ты эксперт в области создания кода на Python с опытом работы 10 лет. У меня есть список из 150 url на сайте. Нужно вытащить из всех карточек товаров, размещённых по этим url, информацию в виде таблицы:Первый столбец: Название препарата (h1), второй столбец: Описание препарата (class="product-detail__top-description"). Создай код, который решит мою задачу.
Обрати внимание, код должен работать быстро и быть максимально простым для понимания.
* Примечание к промту: h1 и class="product-detail__top-description" - информация из пункта выше.
Промт, как видно, вовсе не замысловатый, и каждый сможет поменять его под себя.
5. Работа с URL для вставки в скрипт.
Условия:
- Скрипт просит URL следующего формата: https://example.com/page1.
- URL должны быть в виде списка Python. А значит в кавычках и с запятой на конце каждого элемента.
У меня есть рабочий файл со всеми URL препаратов в виде «page1». Задачу преобразования я также решала с помощью ChatGPT.
Я вставила список этих URL в ChatGPT и попросила доработать его, добавив в начало и конец нужные элементы. Далее взять всё в кавычки, превратив элементы в список Python. ChatGPT отлично справился
Результат:
Если списка URL у вас нет, его тоже можно вытащить с помощью Python, используя библиотеки requests и BeautifulSoup. Я периодически это делаю. Если нужна будет статья на «обывательском языке» - дайте знать :)
6. Вставляем список. Итак, берём код из пункта 4 и вставляем его в Google Colad (или любую другую среду). Добавляем вместо URL, указанных для примера, свой список, который сгенерили в пункте 5, сохранив все отступы. Обязательно проверьте, чтобы в коде не было никаких лишних букв, знаков, символов.
URL вставляем сюда, вместо https://example.com/page1:
Для начала рекомендую взять несколько URL (2-3 шт.) и протестировать код. Потом уже прогонять всё вместе.
Если всё сработало, и появился вывод вида:
Можно запускать в работу весь список URL.
Обратите внимание, что код подойдёт для обработки ограниченного количества URL. Если у вас их тысячи, то код лучше переписать. У меня был запрос на 150 URL, потому всё сработало отлично.
Что делать, если выпадают ошибки: смело копируйте код в ChatGPT и просите их искать. Главное давайте ему подробные промты — что вы хотите, что должно получиться на выходе. Чем подробней промт, тем лучше будет результат.
7. Итак, когда все URL обработались, можем скачивать файл.
- Копируем вторую часть скрипта, который размещён здесь.
- Добавляем в своей среде ячейку для кода и вводим этот скрипт.
- Скачиваем файл. Готово.
Прикладываю файл Google Colab с кодом еще раз:
Надеюсь, статья окажется полезной и поможет решить задачи быстрее :)