Web scraping

Вебскрапінг (від англ. scraping — «вишкрібання», веб-збирання або витягнення веб-даних) — перетворення у структуровані дані інформації з веб-сторінок, які призначені для перегляду людиною за допомогою браузера.

Як правило, виконується за допомогою комп'ютерних програм, що імітують поведінку людини в інтернеті, або з'єднуючись з веб-сервером напряму по протоколу HTTP, або управляючи повноцінним веб-браузером. Але буває і скрапінг за допомогою копіювання даних людиною. Це форма копіювання, в якій конкретні дані збираються та копіюються з інтернету, як правило, в базу даних або електронну таблицю для подальшого пошуку чи аналізу.

Вебскрапінг включає в себе завантаження та вилучення. Спочатку завантажується сторінка (що робить браузер, коли ви переглядаєте сторінку), після цього можна добувати потрібну інформацію. Зміст сторінки може бути проаналізовано, переформатовано, його дані скопійовані в електронну таблицю тощо. Вебскрапери, як правило, беруть щось із сторінки, щоб використати це для інших цілей деінде. Прикладом може бути пошук і копіювання імен та телефонних номерів або компаній та їх URL-адрес до списку (контактне сканування).

Вебсторінки побудовані за допомогою текстових мов розмітки (HTML та XHTML) і часто містять велику кількість корисних даних у текстовій формі. Однак більшість веб-сторінок призначені для кінцевих користувачів, а не для зручності автоматичного використання. Через це були створені набори інструментів, які «збирають» веб-вміст. Вебскрапери — це прикладний програмний інтерфейс для вилучення даних з вебсайту.

Існують методи, які деякі вебсайти використовують для запобігання веб-скрапінгу. Наприклад, виявлення та заборона ботів від сканування (перегляду) своїх сторінок. У відповідь на це існують веб-скрапінгові системи, які спираються на використання методів аналізу об'єктної моделі документа, комп'ютерного бачення та обробку тексту природною мовою, щоб імітувати пошук людини, щоб дозволити збирати вміст веб-сторінок для автономного синтаксичного аналізу.

Пов'язані терміни

Вебскрапінг, веб-краулінг та індексація, веб-автоматизація

Вебскрапінг тісно пов'язаний з краулінгом та індексацією (crawling та indexing). Індексація — упорядкування інформації з метою спрощення пошуку за нею. Індексація виконується за допомогою бота (павука, веб-сканера) і є універсальною методикою, прийнятою більшістю пошукових систем.

На противагу цьому веб-скрапінг більше фокусується на перетворенні неструктурованих даних в мережі, як правило, в форматі HTML, в структуровані дані, які можуть зберігатися і аналізуватися в центральній, локальній базі даних або таблиці.

Вебскрапінг також пов'язаний з веб-автоматизацією, що являє собою автоматизацію дій людини за допомогою комп'ютерного програмного забезпечення.

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

Машинозчитувані дані та API

Слід розрізняти веб-сторінки у форматі HTML, що призначені для інтерпретації браузером та подальшого перегляду людиною, від даних у машинозчитуваних форматах та програмного інтерфейсу (Web API).

Поняття «скрапінг» неможливо застосувати для машинозчитуваних даних, що також завантажуються по протоколу HTTP, бо вони вже знаходяться у тому форматі, що є кінцевим для процесу скрапінгу.

Технології

Вебскрапінг — це процес автоматичного збору інформації із Всесвітньої павутини. Це поле з активними розробками, що мають спільну мету з семантичної веб-бачення, і є амбітною ініціативою, що як і раніше вимагає проривів в обробці тексту, семантичного розуміння, штучного інтелекту і людино-комп'ютерної взаємодії. Поточні рішення веб-скрапінгу варіюються від Ad-Hoc, вимагаючи людських зусиль, щоб повністю автоматизованих системи, які здатні перетворити цілі сайти в структуровану інформацію, з обмеженнями.

  • Ручне копіювання та вставка: іноді навіть найкращі технології веб-скрапінг не можуть замінити ручну оцінку людиною і копіювання-вставити, і іноді це може бути єдиним прийнятним рішенням, коли на вебсайтах свідомо встановлюються бар'єри (CAPTCHA) для перешкоджання автоматизованій обробці.
  • Шаблони (регулярні вирази) — простий, але ефективний підхід для добування інформації з веб-сторінок. Використовуються функції пошуку тексту за шаблонами (регулярними виразами), що підтримуються багатьма мовами програмування.
  • HTTP-програмування: статичні і динамічні веб-сторінки можуть бути вилучені шляхом розміщення HTTP-запити на віддаленому веб-сервері за допомогою програмування сокетів.
  • HTML-аналізатори: багато вебсайтів мають великі колекції сторінок генерується динамічно з базового структурованої джерела, як бази даних[прояснити]. Дані тієї ж категорії, як правило, кодується в подібних сторінок загальним сценарієм або шаблону. В інтелектуальному аналізі даних програма, яка виявляє такі шаблони в певному джерелі інформації, витягує її зміст і перетворює його в реляційної формі, називається оболонкою. Алгоритми генерації обгортки припустити, що вхідні сторінки в системі індукції обгортки відповідати загальному зразком, і що вони можуть бути легко ідентифіковані з точки зору загальної схеми URL. Більш того, деякі напівструктуровані мови запитів даних, такі як XQuery і HTQL, можуть бути використані для аналізу HTML сторінок і для вилучення і перетворення вмісту сторінки.
  • DOM-аналіз: Вбудовуючись у повноцінний веб-браузер, наприклад, Internet Explorer або Mozilla, програми можуть отримати динамічний вміст, згенерований клієнтськими сценаріями. Ці елементи управління браузера також аналізують веб-сторінки в DOM-дереві, на основі яких програми можуть отримати частини сторінок.
  • Вебскрапінг ПЗ: Є багато інструментів програмного забезпечення, які можуть бути використані для настройки веб-скрапінг рішень. Це програмне забезпечення може спробувати автоматично розпізнавати структуру даних сторінки або забезпечувати інтерфейс записи, що усуває необхідність вручну писати веб-скрапінг код, або деякі скриптові функції, які можуть бути використані для вилучення і перетворення вмісту і інтерфейси баз даних, який може зберігати пошкоджені дані в локальних базах даних.
  • Платформи вертикальної агрегації : Є кілька компаній, які розробили конкретні платформи для вертикальної збірки. Ці платформи створюють і контролюються численними «ботами» для конкретних вертикалей без «людини в циклі» (без безпосередньої участі людини), і без роботи, пов'язаної з конкретним цільовим сайтом. Підготовка включає в себе встановлення базу знань для всієї вертикалі, а потім платформа створює ботів автоматично. Надійність платформи вимірюється якістю інформації, яку він отримує (зазвичай кількість полів) і його масштабованості (як швидко він може масштабуватись до сотень або тисяч сайтів). Ця масштабованість в основному використовується для цільових сайтів з  довгим хвостом, що загальні агрегатори знайти складно або вони є занадто трудомістким для збирання контенту.
  • Розпізнавання семантичних анотацій: Сторінки після виконання скрапінгу може охоплювати метадані або семантичні позначки і анотації, які можуть бути використані для пошуку конкретних помістивши даних. Якщо анотації, впроваджені в сторінках, а мікроформатів робить цей метод можна розглядати як спеціальний випадок DOM-розбору. В іншому випадку, анотації, організованих в семантичний шар, зберігаються і управляються окремо від веб-сторінок, так що скребки можуть отримати схему даних і інструкції з цього шару перед скрапінгом сторінок. 
  • Аналізатори веб-сторінки з використанням комп'ютерного зорує спроби використовувати машинне навчання і комп'ютерний зір, які намагаються визначити і отримати інформацію з веб-сторінок за допомогою[1][прояснити]

Правові питання

Легальність веб-скрапінгу у світі різниться. Деякі вебсайти забороняють скрапінг у правилах використання, але юридичні наслідки такої заборони не є чіткими.

У Європейському Союзі

30 квітня 2020 року Французький орган за захист даних (CNIL) опублікував нові правила щодо парсингу веб-сторінок.[2] Керуючі принципи CNIL чітко дають розуміння того, що загальнодоступні дані за попереднім переліком є особистими даними і не можуть бути змінені без провідних лиць, котрим ці дані належать.[3]

Ryanair проти PR Aviation

15 січня 2015 року винесено вердикт[4] Європейський Суд справедливості у справі «Ryanair проти PR Aviation». Згідно нього Ryanair має право блокувати або вимагати дотримання умов інтернет-сайтами для порівняння цін, які копіюють дані з вебсайту авіакомпанії без її дозволу.

PR Aviation — оператор вебсайту, що дозволяє користувачам шукати дані польотів low-cost-авіакомпаній. Він отримує необхідні дані за допомогою автоматизованих засобів, в тому числі з вебсайту Ryanair. Перегляд вебсайту Ryanair передбачає, що відвідувач сайту приймає умови використання шляхом проставлення галочки. Відповідно до цих умов, інформація, що міститься на сайті, може бути використана тільки в приватних та некомерційних цілях, а використання автоматизованих систем або програмного забезпечення для отримання даних з сайту в комерційних цілях є забороненим, якщо таке не передбачено письмовою ліцензійною угодою з Ryanair. Ryanair заявив, що PR Aviation порушили закон про авторське право на унікальну базу даних, і що він діяв всупереч умовам використання вебсайту, які були прийняті компанією. Після того, як його позов був відхилений у судах першої та апеляційної інстанції Амстердама, Ryanair оскаржив рішення апеляційного суда Амстердама у Верховному суді Нідерландів. Верховний суд Нідерландів вирішив залишити апеляцію без задоволення[5].

Директиву 96/9/ЄС Європейського парламенту та Ради Європи від 11 березня 1996 року про правовий захист баз даних повинно бути витлумачено в тому сенсі, що його не можна застосовувати до бази даних, що не захищені відповідно до цієї Директиви або законом про авторське право, або права в своєму роді, в результаті чого стаття 6(1), 8 і 15 Директиви не забороняє творцю такої бази даних обмежувати договором — без шкоди для чинного національного законодавства — використання його третіми особами.

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.