Веб-скрейпинг на PascalABC.NET
Что такое веб-скрейпинг
Веб-скрейпинг (web scraping) - это технология извлечения данных с веб-страниц.
Например, нам необходимо узнать, какая версия PascalABC.NET заявлена на официальном сайте.
Скачивание веб-страницы и поиск нужного паттерна
Для этого вначале скачаем веб-страницу, где указана данная версия, в виде строки:
var wc := new System.Net.WebClient;
wc.Encoding := Encoding.UTF8;
var s := wc.DownloadString('http://pascalabc.net/ssyilki-dlya-skachivaniya');После этого с помощью регулярных выражений найдём в данной строке паттерн, соответствующий строке на веб-сайте, написанной красным:
PascalABC.NET (версия 3.8.3, сборка 3211 от 08.12.2022) - Windows, Linux
Нас интересует номер версии, номер сборки и дата сборки. Воспользуемся регулярным выражением
'версия (\d*\.\d*\.\d*), сборка (\d*) от (\d*\.\d*\.\d*)'
В скобки взяты группы символов, которые нас интересуют: версия, сборка и дата. Их выделим отдельно в найденном соответствии Match с помощью метода Groups.
Текст программы
uses System.Net;
begin
var wc := new WebClient;
wc.Encoding := Encoding.UTF8;
var s := wc.DownloadString('http://pascalabc.net/ssyilki-dlya-skachivaniya');
var mm := s.Matches('версия (\d*\.\d*\.\d*), сборка (\d*) от (\d*\.\d*\.\d*)');
if mm.Count > 0 then
begin
var f := mm.First;
Println('Версия:',f.Groups[1].Value);
Println('Сборка:',f.Groups[2].Value);
Println('Дата сборки:',f.Groups[3].Value)
end;
end. Результат
Версия: 3.8.3 Сборка: 3211 Дата сборки: 08.12.2022
Скриншот среды
Заключение
PascalABC.NET опирается на платформу .NET, содержащую огромное количество классов для прикладных задач. В данном случае мы воспользовались классом WebClient для извлечения нужной нам информации со страниц сайта, а также регулярными выражениями, которые встроены как методы расширения строк PascalABC.NET.