JavaRush /Курсы /Python SELF /Знакомство с CSS

Знакомство с CSS

Python SELF
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="ru">
<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="ru">
    <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;
}
    
Комментарии (2)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Slevin Уровень 64
23 июля 2025
Совет: чтобы выполнить 4 задачу с информацией доступной вам на данный момент из этого курса, и конкретно этой лекции - используйте очень сильное колдунство!
Y. P. Уровень 37
31 марта 2025
Как вообще 4 задача относиться к css в данном уроке?