자유게시판

Що таке парсинг сайту, програми та приклади їх використання

작성자 정보

  • Bell 작성
  • 작성일

컨텐츠 정보

본문

Що таке парсинг сайту?
Навіщо парсинг потрібний і коли його використовують?
Як працює парсинг?
Чим парсинг кращий за роботу людини?
Яку інформацію можна отримати за допомогою парсера?
Чи законно парсити чужі сайти? Google таблиці (Google Spreadsheet) Розглянемо основні функції Функція importHTML
Функція importXML
Функція REGEXEXTRACT

Приклад 1 - Пошук сторінок за наявністю/відсутністю певного елемента у коді сторінок
Приклад 2 - Парсим вміст заданого елемента на сторінці за допомогою CSSPath
Приклад 3 - Виймаємо вміст потрібних нам елементів сайту за допомогою запитів XPath
Тепер повернемося до початкового завдання

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

У статті постараємося досить просто розповісти про термін «парсинг», його основні нюанси та розглянемо кілька прикладів його корисного застосування, як для маркетологів та власників бізнесу, так і для SEO фахівців.

Що таке парсинг сайту?

Простими словами парсинг – це автоматизований збір інформації з будь-якого сайту, homepage (parsing.pp.ua) її аналіз, перетворення та видача у структурованому вигляді, найчастіше у вигляді таблиці з набором даних.

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

У статті ми розберемо найпопулярніші програми та сервіси для парсингу сайту.

Навіщо парсинг потрібний і коли його використовують?

Взагалі парсинг можна розділити на 2 типи:

1. Технічний парсинг сайту, яким переважно користуються SEO фахівці для виявлення різних проблем сайту: - Пошук битих посилань та некоректних 30* редиректів - Виявлення дублів або інших проблем з мета-тегами Title, Description та заголовками h1. - для аналізу коректної роботи Robots.txt. - Перевірка налаштування мікророзмітки на сайті. - Виявлення небажаних сторінок, які відкриті для індексації. - Інші технічні завдання.

На основі отриманих даних спеціаліст складає технічні завдання усунення виявлених проблем.

1. Парсинг сайту з розвитку бізнесу. Ось деякі приклади таких завдань: - Збір інформації про асортимент конкурентів. - парсинг назв товарів, артикулів, цін та іншого для наповнення свого власного інтернет-магазину. Це може бути як разове завдання, так і на основі регулярного моніторингу. - Аналіз структури сайтів-конкурентів з метою покращення та розвитку власної структури.

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

Як працює парсинг? Алгоритм роботи парсеру.

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

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

Парсинг працює на основі XPath-запитів, це мова, яка звертається до певної ділянки коду сторінки та витягує з нього задану критерієм інформацію.

Алгоритм стандартного парсингу сайту.

1. Пошук необхідних даних у вихідному вигляді. 2. Вилучення даних із відділенням від програмного коду. 3. Формування звіту згідно з вимогами, які були задані.

Чим парсинг кращий за роботу людини?

Парсинг сайту – це рутинна та трудомістка робота. Якщо вручну витягувати інформацію із сайту, в якому всього 10 сторінок, не таке складне завдання, то аналіз сайту, який має 50 сторінок і більше, вже не здасться таким легким.

Крім того, не можна виключати людський фактор. Людина може щось помітити чи надати значення. Що стосується парсером це виключено, головне його правильно налаштувати.

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

Яку інформацію можна отримати за допомогою парсера?

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

Чи законно ширяти чужі сайти?

Парсинг даних із сайтів-конкурентів або з агрегаторів не суперечить закону, якщо:

- отримувана інформація перебуває у відкритому доступі і несе комерційну таємницю; - не торкаються авторських прав отриманої інформації; - Парсинг проводиться законним методом; - Парсинг не впливає на нормальну роботу сайту (не призводить до збоїв).

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

Ми виділяємо 4 основні інструменти для парсингу сайтів:

- Google таблиці (Google Spreadsheet) - NetPeak Spider - ComparseR- Screaming Frog SEO Spider

Google таблиці (Google Spreadsheet)

Зручний спосіб для парсингу, якщо немає необхідності парсити велику кількість даних, оскільки є ліміти на кількість xml запитів на день.

За допомогою таблиць Google Spreadsheet можна парсувати метадані, заголовки, найменування товарів, ціни, пошту та багато іншого.

Розглянемо основні функції

Функція importHTML

Налаштовує імпорт таблиць та списків на сторінках сайту. Прописується так:

=IMPORTHTML("посилання на сторінку"; запит "table" або "list"; порядковий номер таблиці/списку)

Необхідно вивантажити дані зі таблиці зі сторінки сайту.

Для цього в формулу поміщаємо URL-сторінки, додаємо тег «table» і порядковий номер - 1.

Ось що виходить:

=IMPORTHTML("https://hstream.ru/industrialnye-teplonositeli/etilenglikol/";"table";1)

Для розвантаження другої таблиці у формулі замінюємо 1 на 2.

=IMPORTHTML("https://hstream.ru/industrialnye-teplonositeli/etilenglikol/";"table";2)

Вставляємо формулу в таблицю та дивимося результат:

Функція importXML

Імпортує дані з документів у форматах HTML, XML, CSV, CSV, TSV, RSS, ATOM XML.

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

Робота з цією функцією передбачає використання мови запитів XPath.

Формула:

=IMPORTXML("посилання"; "//XPath запит")

Витягуємо title, description та заголовок h1.

У першому випадку у формулі просто прописуємо //title:

=importxml(A3;"//title")

У формулу можна додавати назви осередків, у яких містяться потрібні дані.

Для заголовка h1 схожа формула

=importxml(A3;"//h1")

З парсингом description трохи інша історія, а саме прописати його XPath запитом. Він виглядатиме так:

=importxml(A3;"//meta[@name='description']/@content")

У випадку з будь-якими іншими даними XPath можна скопіювати прямо з коду сторінки. Робиться це просто:

Ось як це виглядатиме після всіх маніпуляцій

=importxml(A3;"//html/body/div/div/div[1]/div[2]/div/div[4]/div[2]")

Функція REGEXEXTRACT

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

Звичайно для використання цієї функції необхідні знання побудови регулярних виразів,

Приклад використання

Потрібно відокремити домени від сторінок. Це можна зробити за допомогою виразу:

=REGEXEXTRACT(A2;"^(?:https?:\/\/)?(?:[^@
]+@)?(?:www\.)?([^:\/
]+ )")

Докладніше про функції таблиць можна знайти у довідці Google.

Десктопний інструмент для регулярного SEO-аудиту, швидкого пошуку помилок, системного аналізу та парсингу сайтів.

Безкоштовний період 14 днів, є варіанти платних ліцензій на місяць та більше.

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

Можливості Netpeak Spider:

- Перевіряє понад 80 ключових помилок внутрішньої оптимізації сайту. - Аналізує понад 70 базових SEO-параметрів - Висока швидкість сканування - Можливість аналізу великих сайтів - Налаштування та парсинг кастомних HTML-даних

Посилання на офіційний сайт - https://netpeaksoftware. com/spider

ComparseR – спеціалізована програма, призначена для глибокого вивчення індексації сайту.

У демо-версії ComparseR є 2 обмеження:

- Парсіт лише перші 150 сторінок сайту або перші 150 результатів видачі. - Не має механізму самооновлення та демо-дистрибутив оновлюється лише у критичних випадках.

Даний парсер примітний тим, що він заточений порівняння того, що є на вашому сайті і тим, що індексується в пошукових системах.

Тобто ви легко знайдете сторінки, які не індексуються пошуковими системами, або, навпаки, сторінки-сироти (сторінки, на які немає посилань на сайті), про які ви навіть не підозрювали.

Цей парсер повністю російською і не настільки вимогливий до потужностей комп'ютера, як інші аналоги.

Посилання на офіційний сайт - https://parser.alaev.info/

Огляд можливостей https://youtu.be/xAz4InkEftE.

1. Для роботи програми потрібне встановлення JAVA; 2. Використовує велику кількість оперативної пам'яті комп'ютера. 3. Має можливість підключення різних API - Google Analytics - Google Search Console - PageSpeed ​​Insights - Majestic - Ahrefs - Moz

4. Можна налаштувати та спарсити кастомні HTML-дані 5. Є можливість налаштування та запуску програми через розклад із заданими налаштуваннями парсингу зі збереженням усіх необхідних звітів. 6. Можна керувати SEO Spider повністю через командний рядок. Це включає в себе запуск, повне налаштування, збереження та експорт практично будь-яких даних та звітів.

У безкоштовній версії доступне оброблення до 500 запитів.

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

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

Всю необхідну інформацію можна дізнатися з детального мануалу за адресою https://www.screamingfrog.co.uk/seo-spider/user-guide/.

Посилання на офіційний сайт - https://www.screamingfrog.co.uk/seo-spider/

Посилання на youtube канал з корисними відео - https://www.youtube.com/user/screamingfroguk/

Приклади глибокого парсингу сайту – парсинг із конкретною метою

Приклад 1 - Пошук сторінок за наявністю/відсутністю певного елемента у коді сторінок

Завдання: - Спарсіть сторінки, де не виводиться стовпець із ціною квартири.

Як швидко знайти такі сторінки на сайті за допомогою Screaming Frog SEO Spider?

Відкриваєте сторінку де є блок, який вам потрібен і за допомогою перегляду коду шукайте клас блоку, який є на всіх сторінках, що шукаються.

Щоб було зрозуміліше завдання з прикладу, ми шукаємо сторінки, блок яких має такий вигляд:

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

У Screaming Frog SEO Spider у розділі Configuration -> Custom -> Search вписуємо клас, який відповідає за виведення таблиці на сторінках. І серед цих сторінок шукаємо ті, де немає шпальти з цінами. тобто отримуємо 2 правила:

- Не містить стовпця під назвою "Ціна, руб". – І містить блок із квартирами.

Для того, щоб не парсити весь сайт цілком ви можете обмежити область пошуку за допомогою вказівки конкретного розділу, який потрібно парсити в меню Configuration -> Include.

Вбиваємо URL вказаний в Include без.*/.

Вивантажуємо Custom 1 та Custom 2.

Далі в Excel шукаємо урли які збігаються між файлами Custom 1 і Custom 2. Для цього об'єднуємо 2 файли в 1 таблицю Excel і за допомогою «Повторюваних значень» (попередньо потрібно виділити стовпець, що перевіряється).

Фільтруємо за червоним кольором і отримуємо список урлів, де є блок з виведенням квартир, але немає стовпця з цінами)!

Завдання виконане!

У такий спосіб на сайті можна швидко знайти та вивантажити вибірку необхідних сторінок для різних завдань.

Приклад 2 - Парсим вміст заданого елемента на сторінці за допомогою CSSPath

На прикладі сайту www.ughotels.ru

Завдання: - На подібних сторінках https://www.ughotels.ru/kurorty/otdyh-v-sochi/lazarevskoe/gostinitsy-i-minigostinitsy спарсити назву готелів.

Давайте розбиратися, як це зробити

Відкриваєте сторінку, де є блок, який вам потрібен і за допомогою перегляду коду шукайте клас блоку, текст якого нам потрібно вивантажувати.

У Screaming frog SEO spider у розділі Configuration -> Custom -> Extraction вписуємо клас, який виявили на попередньому кроці. Тобто.name-hotel-item

Заповнення відбувається через "." тобто як звичайний CSS. Праворуч вибираємо Extract Text (збиратиме текстовий вміст класу).

Якби у вас був елемент, який вкладений в інший клас (тобто успадковується), то ви просто прописали б послідовно.name-hotel-item.chto-to-eche

Виглядає це так

Для того, щоб не парсити весь сайт повністю, ви можете обмежити область пошуку за допомогою вказівки конкретного розділу, який потрібно парсити.

Йдемо в меню Configuration -> Include (увімкнути).

Вказуємо сюди розділи, де містяться всі потрібні сторінки.

Якщо простіше виключити з парсингу якийсь розділ, то вибираєте Configuration -> Exclude і виключаємо якийсь розділ за аналогією з Include.

Виглядає це так для обох випадків.

Далі парсимо сайт, вбивши в рядок свій урл. У нашому випадку це https://www.ughotels.ru/kurorty/otdyh-v-sochi.

Робимо розвантаження розділу Custom -> Export

Тепер у Excel чистимо файл від порожніх даних, тому що не на всіх сторінках є подібні блоки, тому даних немає.

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

Для цього виділяємо табличку, копіюємо та на новій вкладці натискаємо

Отримуємо підсумковий файл:

Приклад 3 - Витягуємо вміст потрібних нам елементів сайту за допомогою запитів XPath

Завдання: Допустимо, ми хочемо спарсити нестандартні, необхідні тільки нам дані і отримати на виході таблицю з потрібними стовпцями - URL, webpage (parsing.pp.ua) Title, Description, h1, h2 і текст з кінця сторінок лістингів товарів (наприклад, https://www.funarena). ru/catalog/maty/). Таким чином, вирішуємо одразу 2 завдання:

– Збираємо в одну таблицю лише ті дані, які нам цікаві. - Під час аналізу цих даних можемо легко знайти відсутні дані на сторінках чи інші помилки.

Спочатку трохи теорії, знання якої дозволить вирішити це та багато інших завдань.

Технічний парсинг сайту та збирання певних даних зі сторінки за допомогою запитів XPath

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

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

Нижче наведемо приклади деяких варіантів запитів XPath, які можуть бути корисні.

Дані взяті із офіційної довідки. Там ви зможете побачити більше прикладів.

За замовчуванням парсер Screaming Frog SEO Spider збирає тільки h1 і h2, але якщо ви хочете зібрати h3, то XPath запит виглядатиме так:

//h3

Якщо ви хочете спарсити лише 1-й h3, то XPath запит буде таким:

/descendant::h3[1]

Щоб зібрати перші 10 h3 на сторінці, XPath запит буде:

/descendant::h3[position() >= 0 and position() <= 10]

Якщо ви хочете зібрати адреси електронної пошти з вашого сайту або веб-сайтів, XPath може бути наступним:

//a[starts-with(@href, 'mailto')]

Вилучення посилань, що містять певний анкор

Щоб отримати всі посилання з анкором "SEO Spider" у тексті прив'язки:

//a[contains(.,'SEO Spider')]/@href

Запити чутливі до регістру, тому, якщо SEO SEOder іноді пишеться як seo spider, вам доведеться зробити наступне:

//a[contains(translate(.), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'),'seo spider')]/@href

Команда перетворюватиме на нижній регістр весь знайдений якірний текст, що дозволить порівняти його з «seo spider».

Вилучення вмісту з певних елементів

Наступний XPath витягуватиме контент з певних елементів div або span, використовуючи їх ідентифікатор класу. Вам потрібно буде замінити example на назву класу.

//div[@class="example"]

//span[@class="example"]

SEO Spider використовує реалізацію XPath із Java 8, яка підтримує XPath версії 1.0.

Тому якщо хочеться бути всемогутнім і вивантажувати все що завгодно, то потрібно вивчити мову запитів XPath.

Тепер повернемося до початкового завдання

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

1. URL отримаємо у вивантаженні за умовчанням 2. Щоб отримати Title прописуємо правило //title 3. Щоб отримати Description прописуємо //meta[@name="description"]/@content 4. Аналогічно для пошуку заголовка 1 рівня прописуємо //h1 5. Аналогічно з h2 та h3. 6. Щоб спарсити текст, потрібно зайти на сторінку, де він є та зробити наступне

За такого копіювання ми отримали /html/body/section/div[2]/ul[2]/li/div

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

У Screaming frog SEO spider у розділі Configuration -> Custom -> Extraction тепер вибираємо Xpath і заносимо туди необхідні правила. Виглядає це так:

На скрині ми залишили варіант парсингу того ж тексту, але вже за допомогою CSSPath, %anchor_text% щоб показати, що практично все можна спарсити двома способами, але у Xpath все ж таки більше можливостей.

Отримуємо Excel із потрібними нам даними.

Після фільтрації зручно зробити транспонування отриманих даних.

Приклад 4 - Як спарсити ціни та назви товарів з Інтернет магазину конкурента

На прикладі сайту: https://okumashop.ru/

Завдання: Спарсити товари та взяти зі сторінки назву товару та ціну.

Почнемо з того, що обмежимо область парсингу до каталогу, оскільки посилання всі товари ресурсу лежать у папці /catalog/. Але нас цікавлять саме картки товарів, а вони лежать у папці /product/ і тому їх теж потрібно парсити, оскільки інформацію ми збиратимемо саме з них.

Ідемо в меню Configuration -> Include (включити) і вписуємо туди правило:

https://okumashop.ru/catalog/.* ← Це сторінки, на яких розміщені посилання на товари.

https://okumashop.ru/product/.* ← Це сторінки товарів, з яких ми отримуватимемо інформацію.

Для реалізації задуманого ми скористаємося вже відомими нам методами отримання даних за допомогою CSSPath і XPath запитів.

Заходимо на будь-яку сторінку товару, натискаємо F12 і через кнопку дослідження елемента дивимося якийсь клас у назви товару.

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

Запит CSSPath буде виглядати так.info.title (просто 2 класу вказується через пробіл)

Ціну можна отримати як за допомогою CSSPath, так і за допомогою Xpath.

CSSPath отримуємо аналогічно, як і з назвою.prices.price

Якщо хочемо отримати ціну через XPath, також через дослідження елемента копіюємо шлях XPath.

Отримуємо такий код //*[@id="catalog-page"]/div/div/div/div[1]/div[2]/div[2]/div[1]

Йдемо в Configuration → Custom → Extraction та записуємо все, що ми виявили. Важливо вибирати Extract Text, щоб отримувати саме текст елемента, що шуканого, а не сам код.

Після парсим сайт. Те, що ми хотіли отримати, знаходиться в розділі Custom Extraction. Докладніше на скрині.

Вивантажуємо отримані дані.

Отримуємо файл, де є все необхідне, що ми шукали - URL, Назва та ціна товару

Приклад 5 - Пошук сторінок-сиріт на сайті (Orphan Pages)

На прикладі сайту: https://www.smclinic-spb.ru/

Завдання: - Пошук сторінок, на які немає посилань на сайті, тобто їм не передається внутрішня вага.

Для вирішення завдання нам потрібно попередньо підключити до Screaming frog SEO spider Google Search Console. Для цього у вас має бути підтверджено права на сайт через GSC.

Screaming frog SEO spider у результаті спарсить ваш сайт та порівняє знайдені сторінки з даними GSC. У звіті ми отримаємо сторінки, які вона не виявила на сайті, але знайшла у Search Console.

Давайте розбиратися, як це зробити.

Підключаємо послуги гугла до Screaming frog SEO spider. Ідемо до Configuration -> API Access -> GSC.

Підключаємось до Google Search Console. Просто натискаєте кнопку, відкриється браузер, де потрібно вибрати обліковий запис і натиснути кнопку "Дозволити".

У вікнах, вказаних вище, потрібно знайти свій сайт, який ви хочете спарсити. З GSC все просто там можна вбити домен. А ось з GA не завжди все просто, потрібно знати назву облікового запису клієнта. Можливо, потрібно вручну залізти в GA і подивитися там, як він називається.

Вибрали, натиснули бл. Все готове до дива.

Тепер можна приступати до парсингу сайту.

Тут нічого нового. Якщо потрібно спарсити конкретний піддомен, то в Include його додаємо і парсем як завжди.

Якщо після завершення парсингу у вас немає напису "API 100%"

То треба зайти в Crawl Analysis -> Configure і виставити там усі галочки та натиснути Start.

Коли збір інформації завершиться, то можемо приступати до розвантаження потрібного нам звіту.

Відкриваємо звіт, що вийшов, Отримали список сторінок, які відомі Гуглу, але Screaming frog SEO spider не виявив посилань на них на самому сайті.

Можливо, тут буде багато зайвих сторінок (які віддають 301 або 404 код відповіді), тому рекомендуємо прогнати весь цей список ще раз, використовуючи метод List.

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

관련자료

댓글 0
등록된 댓글이 없습니다.