CoderCastrov logo
CoderCastrov
Парсер

Парсинг веб-страниц — (легко)🕶️

Парсинг веб-страниц — (легко)🕶️
просмотров
2 мин чтение
#Парсер

Несколько месяцев назад мне посчастливилось изучить некоторые методы для извлечения данных с веб-сайтов.

Идея заключалась в том, чтобы создать скрипт, который, запланированный, мог бы автоматически архивировать определенные данные, находящиеся на конкретных веб-страницах. (NB всегда проверяйте политику сайта, с которого вы хотите извлечь данные)

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

Парсинг веб-страниц = Извлечение данных с веб-страниц или скрапинг данных определяет действие извлечения данных с веб-сайтов.

Веб-паук = Паук, бот или просто паук, это "интернет-бот", который систематически сканирует всемирную паутину, например, для индексации.


Без дальнейших промедлений начнем!

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

curl https://www.nomedominio.com > /your_directory/tmp_file

Этот скрипт открывает страницу https://www.nomedominio.com и сохраняет HTML-код в файле tmp_file в директории /your_directory/

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

Пример:

grep -o ‘<h3>.*</h3>’ your_directory/tmp_file | sed ‘s/\(<h3>\|<\/h3>\)//g’ > your_directory/list.txt

Этот скрипт ищет в файле tmp_file все маркеры <h3>, удаляет маркеры и сохраняет содержимое в файле list.txt

🎉 Вот и всё! 🎉

Теперь я поделюсь полным файлом с некоторыми дополнительными функциями... (NB перед запуском файла не забудьте настроить значения и установить правильные разрешения для выполнения chmod +x):

#!/bin/bash# переменные
DATE=`date +%y%m%d%H`
NAME=”имя_скрапинга”
URL=”http://www.domain_name.com/”
DIRECTORY=”$HOME/путь_к_директории”# очистить файлы tmp_*
rm -rf ${DIRECTORY}/tmp_file# загрузить исходную страницу с помощью клиента tor
curl -L -b cookies.txt ${URL} > ${DIRECTORY}/tmp_file# извлечь все содержимое внутри маркера <h3> и сохранить его в txt-файле
grep -o ‘<h3>.*</h3>’ ${DIRECTORY}/tmp_file | sed ‘s/\(<h3>\|<\/h3>\)//g’ > ${DIRECTORY}/${DATE}-${NAME}.txt# удалить все файлы tmp_*
rm -rf ${DIRECTORY}/tmp_*# объединить все txt-файлы в dataset.txt (-u означает уникальные значения)
#cat ${DIRECTORY}/*.txt | sort -u > ${DIRECTORY}/dataset.txt

Теперь осталось только понять, что вы хотите извлечь...

Я запланировал выполнение этого скрипта с помощью cron и извлек заголовки контента, опубликованного пользователями на платформе для потокового воспроизведения контента для взрослых.

Наконец, я разработал простое приложение на PHP, которое случайным образом извлекает слова из набора данных и использует их для создания фиктивного текста.

Приятного использования на 🔥 Hot Lorem Ipsum**! — **https://www.hotloremipsum.com