Як спарсити дані за ۵ простих кроків

Cash For Nagpur Call Girls,
اسفند ۱۶, ۱۴۰۳
I Didn’t know that!: Top Ten Call Girls Nagpur of the decade
اسفند ۱۶, ۱۴۰۳

Як часто вам потрібно спарсити дані з веб-сайту для вашої роботи, але це здається надто складним завданням? Ця стаття у блозі навчить вас, як збирати дані за ۵ простих кроків.

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

Існує безліч способів парсингу даних, але в цій статті ми зупинимося на декількох найбільш популярних методах, які використовуються професійними розробниками: XPath, регулярні вирази, Beautiful Soup (BSA), Scrapy, Python Requests Library (PRL) та Selenium Webdriver.

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

Збір даних із сайту може бути виконаний за допомогою будь-якої мови програмування.

У цій статті я покажу, як парсувати дані за допомогою Python, оскільки його дуже легко встановити і досить просто вивчити, особливо якщо ви вже знаєте іншу мову програмування, оскільки синтаксис схожий на синтаксис Java, C та PHP. Python підтримує кілька бібліотек для парсингу даних, описаних у таблиці. Парсинг – це інструмент, який повинен вміти використовувати кожен, оскільки він дозволяє отримати цінну інформацію про цільовий ринок, конкурентів та/або клієнтів.

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

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

Як спарсити дані ۵ простими способами

۱. Виберіть мову програмування або інструмент для парсингу даних

"Людина хороша настільки, наскільки хороші її інструменти". Отже, вам необхідно вибрати інструмент для парсингу сайту таким чином, щоб він відповідав вашим потребам. Хоча деякі готові до використання програми можуть здатися простими у використанні, вони можуть не дозволити вам вносити багато змін у конфігурацію.

У той же час, багато інструментів можуть не мати плагін для збереження даних, які ви зібрали, в базі даних або в хмарі. Якщо говорити про мови програмування, які сьогодні використовуються для парсингу даних, то це Node.js, Python, Ruby та інші. Але серед них Python є найпопулярнішим завдяки легкості вивчення, простому синтаксису, наявності безлічі зовнішніх бібліотек та відкритого вихідного коду.

Існує безліч бібліотек, таких як BeautifulSoup та Scrapy, які можна використовувати для обходу веб-сторінок, створення скриптів для обходу та запуску завдань парсингу через певні проміжки часу. Python забезпечує величезну гнучкість при інтеграції інших систем із вашим механізмом парсингу. Ви можете легко зберігати отримані дані на локальній машині, базах даних, в сховищі S3 або навіть скидати їх у файл Word або Excel.

۲. Парсинг однієї веб-сторінки та аналіз компонентів

Перш ніж приступити до парсингу інформації про товари, скажімо, з тисячі сторінок товарів на Wildberries, необхідно отримати доступ до сторінки та отримати всю Html-сторінку, щоб проаналізувати її та прийняти рішення про стратегію. Дані на сторінках Html можуть знаходитися в певних парах ключ-значення в тегах або в тексті всередині тегів. Ви можете використовувати такі бібліотеки, як BeautifulSoup, щоб вказати, з якого саме тега ви хочете отримати дані на кожній веб-сторінці, а потім запустити код у циклі.

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

۳. Прийміть рішення про стратегію очищення та зберігання даних

Ще до того, як ви почнете збирати дані, ви повинні вирішити, де ви їх зберігатимете. Це пов'язано з тим, %anchor_text% що від того, де ви зберігатимете дані, залежатиме їхня обробка. Існує безліч варіантів. Ви можете вибирати між базами даних NoSQL та SQL, залежно від того, чи будуть дані, які ви збираєте, структурованими чи неструктурованими.

Для неструктурованих даних ви можете вибрати бази даних SQL, оскільки ви можете зберігати дані в рядках, які складаються з набору атрибутів. Для неструктурованих даних, де немає заданих атрибутів, можна використовувати бази даних NoSQL. Що стосується того, в якій базі даних зберігати дані, для SQL можна вибрати MySQL або Postgres. Selectel пропонує хмарні бази даних, де ви можете зберігати свої дані та платити за використання.

Для NoSQL ви можете вибрати одне з керованих і надзвичайно швидких рішень, наприклад DynamoDb або ElasticSearch. У різних баз даних є свої переваги, деякі пропонують швидкий пошук, деякі дешевше зберігання за ТБ.

Вибір бази даних залежить від конкретного випадку використання і, отже. Перш ніж зупинити свій вибір на одній із баз даних, необхідно провести невелике дослідження. Якщо потрібно зберігати зображення та відео великого розміру, ви можете використовувати AWS S3 або Glacier. Останній використовується, коли потрібно зберігати великі обсяги даних в архівному форматі. Вам не доведеться часто звертатися до них, тоді як перший варіант є більш поширеним рішенням. Це щось подібне до онлайнового жорсткого диска. Ви можете створювати папки та зберігати в них файли.

۴. Створення списку веб-сторінок або написання regex для очищення даних

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

Наприклад, ви можете захотіти отримати дані про продукти всіх ноутбуків Ozon. Тепер ви можете побачити, що всі URL-адреси починаються з "/laptop//prodData". Ви можете повторити цей формат за допомогою regex, homepage щоб усі такі URL-адреси були вилучені і ваша функція парсингу працювала тільки з цими URL-адресами. А не на всіх URL-адресах на сайті.

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

۵. Пишемо код та тестуємо

Все, що ми досі обговорювали, було підготовкою. І ось настав момент, коли код запущено і роботу зроблено. Код для парсингу рідко працює саме так, як ви очікуєте. Це відбувається тому, що не всі веб-сторінки, які ви намагаєтеся переглянути, мають однакову структуру. Наприклад, ви запускаєте свій скрипт на ۱۰۰ сторінках товарів і виявляєте, що лише ۸۰ із них були збережені.

Причина цього в тому, що ۲۰ сторінок можуть перебувати у стані "не на складі" і їхня структура веб-сторінки відрізняється. Такі винятки не враховуються під час написання коду. Але після кількох ітерацій ви зможете внести необхідні зміни.

Альтернативні методи парсингу даних

Використовуйте функцію фільтра Excel для відбору даних

Це найпростіший спосіб вилучення даних з будь-якої веб-сторінки. Він не вимагає додаткових інструментів, крім Excel, і не залишає слідів на цільовому сайті або у вашій системі, тобто не виконуються виклики API, не встановлюються cookies і т.д.. Якщо у вас є доступ до ПК/Mac із встановленим Excel, то це, безумовно, найпростіший спосіб збирання даних.

В Excel відкрийте новий аркуш і напишіть у першому осередку URL цільового сайту. У наступному осередку введіть формулу фільтра даних HTML або XPath (формулу фільтра даних XPath, що використовується в даному прикладі, див. в таблиці нижче), яка витягуватиме дані з цільової веб-сторінки. Якщо ви хочете зберегти кілька стовпців даних, повторіть Крок ۱ для кожного стовпця даних і розташуйте їх поряд.

Як отримати фільтри даних XPath в Excel

– У Excel натисніть Файл > Установки > Додатково, потім перейдіть до Відображення. Встановіть прапорець "Показувати вкладку "Розробник" на стрічці" та натисніть OK. – В Excel клацніть Developer > Reference, прокрутіть вниз і знайдіть Microsoft XML Document 3.0. – Натисніть MSXML3 Apress, а потім натисніть OK. – Тепер, коли ми встановлені MSXML3 Reference, давайте спробуємо. В Excel введіть URL цільової веб-сторінки в комірку A1, а потім формулу XPath Data Filter в комірку B1 (наприклад, щоб отримати ціну товару "123" на веб-сторінці, введіть формулу XPath Data Filter в комірку B1)- Тепер скопіюйте вміст комірки B1 у всі комірки, що залишилися, за допомогою поєднання клавіш CTRL+C в Excel. – Скопіюйте URL-адресу цільової веб-сторінки (в комірці A1) в адресний рядок Excel. Натисніть Enter, щоб завантажити її в браузер і побачите, як ваші дані чарівним чином з'являються в Excel.

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

Використання функції "Текст у стовпці" в Microsoft Word для поділу даних по стовпцях

Цей метод трохи складніший за перший, але його можна використовувати для зіставлення даних з будь-якого сайту, на якому є чітко визначені колонки. Для його застосування потрібні MS Word та Excel, а також деякі додаткові інструменти, homepage (parsing.pp.ua) описані нижче. Поганою новиною є те, що цей метод залишає сліди на цільовому сайті, тому якщо ви займаєтеся парсингом даних з сайтів в маркетингових цілях і хочете уникнути виявлення, цей метод не для вас.

Як це працює

– У MS Word створіть новий документ, потім скопіюйте/вставте цільову веб-сторінку в текстове поле. – Выберите функцию Run в MS Word, нажав ALT + F5, и вы должны увидеть примерно следующее.

– В Excel выберите Фильтры> Текст у стовпці- Виберіть Delimited і виберіть роздільник з меню, що випадає (у даному прикладі ми використовуємо Comma, який обраний за замовчуванням). – Тепер натисніть Далі і визначте розташування "ком", тобто. розділіть веб-дані на колонки (наприклад, я використовую "," як роздільник). – Потім натисніть Далі і визначте, як Excel оброблятиме порожні комірки: ігнорувати їх або замінювати порожнім значенням (для цього прикладу ми встановимо значення "ігнорувати порожні значення"). – Натисніть кнопку Готово, щоб завершити роботу функції перетворення тексту в стовпці. – Якщо цільова веб-сторінка не має чітко визначених колонок, ви можете встановити значення "Замінювати значення".

Як видно, мої дані були успішно розділені на окремі стовпчики тексту, і тепер я можу легко скопіювати/вставити їх в інше місце на моєму комп'ютері.

Цей метод особливо корисний для отримання даних із файлів PDF, які зазвичай мають чітко визначені заголовки стовпців. Це заощадить вам багато часу, якщо вашою метою є автоматичне вилучення даних з декількох PDF-файлів за допомогою макросів Excel, оскільки тепер ви можете використовувати один і той самий шаблон MS Word знову і знову для швидкого створення декількох документів для кожного PDF-файлу.

Використовуйте редактор MS Excel VBA для отримання даних

Для цього ми будемо використовувати інструмент під назвою xvba, який можна завантажити з офіційного сайту, і він працює так само, як API (Application Program Interface). Хороша новина полягає в тому, що вам не потрібно писати жодного коду. Погана новина полягає в тому, що вам доведеться ввести HTML цільову веб-сторінку, тобто. я б запропонував зробити це за допомогою MS Word, тому що це змусить вас дійсно розбити веб-сторінку на компоненти.

Числа в квадратних дужках – це окремі осередки в електронній таблиці, де заголовки стовпців і рядків використовувалися як назви для кожного поля даних. Вони як змінні, тобто. розглядаються Excel як текст і змінюватимуться залежно від того, як структурована ваша електронна таблиця (наприклад, якщо ви виберете інший стовпець для фільтрації даних).

Використання IMPORTXML в Google sheets

Якщо ви використовуєте IMPORTXML для порівняння даних із веб-сторінки.

– Першим кроком буде відкриття Google Sheets. – Другий крок – перейти до меню Інструменти > Редактор сценаріїв. – Третій крок – скопіювати/вставити HTML-код цільового веб-сайту у текстове поле.

Мої дані були успішно розділені на окремі стовпчики тексту, і тепер я можу легко скопіювати/вставити їх в інше місце на моєму комп'ютері.

Ми використовували цей метод для збору даних Facebook і Twitter для маркетингової кампанії в Інтернеті. Це також хороший спосіб зіставлення даних із веб-сайтів, які використовують AJAX, коли ви не хочете використовувати команду GOTO.

Використання IMPORTHTML у Google Sheets

Цей метод схожий на метод вище, але замість IMPORTXML ми будемо використовувати IMPORTHTML.

– Першим кроком буде відкриття Google Sheets. – Другий крок – перейти до меню Інструменти > Редактор сценаріїв. – Третій крок – скопіюйте/вставте HTML-код цільового сайту у текстове поле.

Використання розширень Chrome

Ви можете парсувати веб-дані за допомогою розширень chrome, таких як Data Scraper та Save To CSV. Оскільки існує безкоштовна і платна версія розширень для хрому (Data Scraper), я запропонував би використовувати обидві версії, щоб зрозуміти, яка з них вам більше підходить.

Обов'язково робіть перерву за кілька секунд між кожним запуском. Парсинг сайту щомісяця буде добре працювати з DIY-рішенням, написаним на Python. Але якщо ви шукаєте рішення DaaS корпоративного рівня, наша команда в ESK Solutions пропонує комплексне рішення, де ви надаєте нам вимоги, а ми передаємо вам дані, які ви можете підключити і працювати.

Інфраструктура, керування проксі, забезпечення того, щоб вас не заблокували під час збору даних. Запуск механізму парсингу за розкладом з регулярною частотою оновлення даних. Ми також вносимо зміни відповідно до змін, внесених до інтерфейсу користувача відповідного сайту.

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

تماس با ما