Web scraping

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Web scraping
Зображення
CMNS: 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][прояснити]

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

[ред. | ред. код]

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

У світі

[ред. | ред. код]

Twitter проти скрейпінгу даних

[ред. | ред. код]

1 липня 2023 року, Twitter повідомив, що тимчасово обмежує для користувачів кількість переглядів постів на добу. За словами Ілона Маска це було зроблено для того " щоб протистояти екстремальному рівню збору даних та маніпуляціям із системою, ми застосували такі тимчасові обмеження: перевірені акаунти обмежені в читанні 6000 повідомлень на день; неперевірені акаунти – 600 повідомлень на день; нові неперевірені акаунти – 300 повідомлень на день". Передувало таким діям те, що напередодні, 30 червня 2023 року стало відомо рішення Twitter вимагати від користувачів мати обліковий запис у соціальній платформі для перегляду твітів[2]. Маск назвав це "тимчасовим надзвичайним заходом"[3].

Згідно повідомлення CNBC, Ілон Маск запровадив ці тимчасові обмеження на використання Twitter “для боротьби з екстремальними рівнями вилучення даних і маніпуляцій на платформі”. Відповідно компанія X Corp., яка була заснована Маском 9 березня 2023 року на зміну компанії Twitter, Inc., почала судитися з чотирма неназваними особами за звинуваченнями їх в незаконному вилученні даних, пов’язаних з жителями Техасу (США), з Twitter. Позов, поданий 6 липня 2023 року до суду округу Даллас (штат Техас) вимагає відшкодування збитків на суму понад 1 мільйон доларів[4]. У матеріалах справи йдеться про те, що відповідачі нібито уклали контракти з операторами центрів обробки даних в окрузі Даллас, штат Техас. Згідно з заявою, компанія не змогла встановити особи цих людей. Однак замість імен адвокати X Corp. надали список з чотирьох IP-адрес. В даному випадку, можливо був застосований саме скрейпінг даних – коли комп’ютерна програма витягує дані з веб-сайту або іншого онлайн-джерела. Ці дані потім можуть бути використані для різних цілей, таких як дослідження ринку, порівняння цін або навіть моніторинг соціальних мереж. Відповідно, X Corp. ставить за мету припинити вилучення даних, обмеживши кількість твітів, які користувачі можуть читати щодня[5].

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

[ред. | ред. код]

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

Ryanair проти PR Aviation

[ред. | ред. код]

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

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

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

Посилання

[ред. | ред. код]
  1. Roush, Wade (2012-07-25).
  2. Twitter закрив доступ до контенту неавторизованим користувачам. // Автор: Ігор Пилипів. 01.07.2023, 11:15
  3. Twitter обмежує кількість переглядів постів на добу. // Автор: Катерина Тищенко. 01.07.2023, 22:19
  4. Elon Musk’s Twitter sues four individuals for illegal data scrapping. // By Anurag. Jul 14, 2023
  5. Twitter подав до суду на чотирьох осіб за незаконне видалення даних. 14.07.2023
  6. "La réutilisation des données publiquement accessibles en ligne à des fins de démarchage commercial | CNIL". www.cnil.fr (Французькою) . 5 липня 2020. Архів оригіналу за 13 грудня 2020.
  7. Web scraping is legal for legal purposes and when it is compliant with the GDPR. 5 липня 2020. Архів оригіналу за 28 січня 2021.
  8. Ryanair Ltd v PR Aviation BV (Case C‑30/14). Архів оригіналу за 27 лютого 2017. Процитовано 20 травня 2017.
  9. Ryanair Ltd v. PR Aviation BV: contracts, rights and users in a «low cost» database law. Архів оригіналу за 24 березня 2017. Процитовано 20 травня 2017.