JavaRush /Курси /Python SELF UA /Знайомство з CSS

Знайомство з CSS

Python SELF UA
Рівень 30 , Лекція 0
Відкрита

1. Основні концепції CSS для веб-скрапінгу

Для успішного веб-скрапінгу, розуміння структури HTML та CSS-класів на сторінці є ключовим фактором. Розуміючи, як елементи сторінок стилізовані та структуровані за допомогою CSS, можна точніше вибрати потрібні дані й витягнути їх. Розглянемо, як підключення CSS до HTML, використання селекторів, а також атрибути style, class, id та name допомагають у роботі зі структурою веб-сторінок для скрапінгу.

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

  • Селектори — це правила, що вказують на конкретні HTML-елементи. Їх використання допомагає точно ідентифікувати потрібні дані.
  • Атрибути class, id, і name — вони є унікальними ідентифікаторами, які допомагають виділяти та розрізняти елементи. Для скрапінгу вони особливо корисні, адже допомагають ізолювати потрібні елементи, що спрощує витягнення даних.

2. Підключення CSS до HTML-документа

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

Зовнішній файл

CSS часто підключається у вигляді зовнішнього файлу, що можна побачити в HTML-документі через тег <link> у секції <head>. Зовнішні файли CSS визначають стилі для всієї сторінки, включаючи ідентифікатори та класи, що полегшує навігацію під час скрапінгу.

HTML

<head>
    <link rel="stylesheet" href="styles.css">
</head>
    

Внутрішні стилі

Іноді стилі можуть бути визначені всередині сторінки за допомогою тега <style>. Внутрішні стилі можна знайти в <head> сторінки і використовувати як підказку для розуміння класів та ідентифікаторів, за якими можна вибрати потрібні елементи.

HTML

<head>
<style>
  .price {
    color: red;
  }
</style>
</head>

Вбудовані стилі (атрибут style)

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

HTML

<p style="color: red; font-size: 18px;">Текст із вбудованим стилем</p>
HTML

<p style="color: red; font-size: 18px;">Текст із вбудованим стилем</p>

3. Селектори в CSS

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

Основні типи селекторів

Селектор за тегом: Цей селектор вибирає всі елементи певного тегу (наприклад, <p> або <div>). У веб-скрапінгу селектори за тегом корисні для отримання інформації з тегів, які можуть містити текст, зображення та іншу інформацію.

CSS

p {
  color: blue;
}
    

Селектор за класом: Цей селектор вибирає елементи з певним значенням атрибута class. Клас позначається крапкою (.) перед ім'ям. У веб-скрапінгу класи особливо корисні, оскільки вони можуть ідентифікувати елементи з однаковими стилями, наприклад, список товарів.

CSS
      
        .price {
            color: red;
          }
      
    
CSS
      
        .price {
            color: red;
          }
      
    
HTML
      
        <p class="price">Ціна: $99</p>
      
    

Селектор за ідентифікатором (ID): Цей селектор вибирає елемент з унікальним атрибутом id, позначається символом #. У веб-скрапінгу id особливо корисний для вибору унікальних елементів, таких як заголовок або кнопка на сторінці.

CSS

    #product-title {
        font-size: 24px;
      }
CSS

    #product-title {
        font-size: 24px;
      }
HTML
  
    <h1 id="product-title">Назва продукту</h1>
  

Атрибутні селектори: Ці селектори вибирають елементи за певними атрибутами, такими як name, type, та іншими. У веб-скрапінгу атрибутні селектори корисні для вибору елементів форм або певних полів, наприклад, вибору полів з певним name.

CSS

input[name="email"] {
  border: 2px solid blue;
}
    

Комбіновані селектори: Ці селектори дозволяють точніше вибирати елементи, комбінуючи кілька критеріїв. Наприклад, .product-list .price вибере лише ціни продуктів всередині контейнера product-list.

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

4. Атрибути style, class, id і name

Атрибут style

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

HTML

<p style="color: red; font-size: 18px;">Цей текст виділено вбудованим стилем</p>
    

Атрибут class

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

HTML
  
    <p class="price">Ціна: $99</p>
    <p class="price">Ціна: $89</p>
  
HTML
  
    <p class="price">Ціна: $99</p>
    <p class="price">Ціна: $89</p>
  
CSS
  
    .price {
        color: red;
      }
  

Атрибут id

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

HTML
  
    <h1 id="main-title">Назва продукту</h1>
  
HTML
  
    <h1 id="main-title">Назва продукту</h1>
  
CSS
  
    #main-title {
        font-size: 30px;
      }
  

Атрибут name

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

HTML
  
    <input type="text" name="username" placeholder="Введіть ім'я користувача">
  
HTML
  
    <input type="text" name="username" placeholder="Введіть ім'я користувача">
  
CSS
  
    input[name="username"] {
        border: 1px solid #333;
      }
  

5. Приклад сторінки із використанням CSS та HTML

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

HTML

<!DOCTYPE html>
<html lang="uk">
<head>
  <meta charset="UTF-8">
  <title>Приклад сторінки для веб-скрапінгу</title>
  <link rel="stylesheet" href="styles.css">
  <style>
    .price {
      color: red;
      font-weight: bold;
    }
  </style>
</head>
<body>
  <h1 id="main-title">Продукт тижня</h1>
  <p class="price">Ціна: $99</p>
  <p class="description">Це унікальний продукт з чудовими характеристиками.</p>

  <form action="/submit" method="post">
    <label for="username">Ім'я користувача:</label>
    <input type="text" id="username" name="username">

    <label for="email">Електронна пошта:</label>
    <input type="email" id="email" name="email">

    <button type="submit">Надіслати</button>
  </form>
</body>
</html>
    
HTML

    <!DOCTYPE html>
    <html lang="uk">
    <head>
      <meta charset="UTF-8">
      <title>Приклад сторінки для веб-скрапінгу</title>
      <link rel="stylesheet" href="styles.css">
      <style>
        .price {
          color: red;
          font-weight: bold;
        }
      </style>
    </head>
    <body>
      <h1 id="main-title">Продукт тижня</h1>
      <p class="price">Ціна: $99</p>
      <p class="description">Це унікальний продукт з чудовими характеристиками.</p>

      <form action="/submit" method="post">
        <label for="username">Ім'я користувача:</label>
        <input type="text" id="username" name="username">

        <label for="email">Електронна пошта:</label>
        <input type="email" id="email" name="email">

        <button type="submit">Надіслати</button>
      </form>
    </body>
    </html>
        
CSS

#main-title {
  font-size: 24px;
  color: green;
}

input[name="username"] {
  border: 1px solid #333;
  padding: 5px;
}
    
Коментарі (1)
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ
vova_yu Рівень 64
19 травня 2025
BeautifulSoup для "Витяг даних з використанням атрибутивних селекторів" розглядається на 31 рівні.