PascalABC.NET
December 19, 2022

Веб-скрейпинг на 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.