Spider_study заметки 02

рептилия

Красивый суп:

Введение:

Beautiful Soup предоставляет простые, похожие на Python функции для управления навигацией, поиском, изменением деревьев синтаксического анализа и т. д. Это набор инструментов, который предоставляет пользователям данные, которые им нужно очистить, анализируя документы.Благодаря его простоте полное приложение может быть написано без большого количества кода. Beautiful Soup автоматически конвертирует входные документы в кодировку Unicode, а выходные документы — в кодировку utf-8. Вам не нужно учитывать метод кодирования, если только в документе не указан метод кодирования, тогда Beautiful Soup не сможет автоматически распознать метод кодирования. Затем вам просто нужно указать исходную кодировку. Beautiful Soup стал таким же хорошим интерпретатором Python, как lxml и html6lib, предлагая пользователям гибкость в использовании различных стратегий синтаксического анализа или высокую скорость.

Beautiful Soup — это библиотека Python, основной функцией которой является сбор данных с веб-страниц. В качестве краулера он в основном удобен для краулера.

Использование find_all:
  1. При извлечении тегов первым параметром является имя тега. Затем, если вы хотите использовать атрибуты тегов для фильтрации при извлечении тегов, вы можете передать имя атрибута и соответствующее значение в форме параметров ключевого слова в этом методе. или использоватьattrsАтрибуты, поместите все атрибуты и соответствующие значения в словарь и передайте их вattrsАтрибуты.
  2. Иногда при извлечении тегов не хочется извлекать так много, поэтому можно использоватьlimitпараметр. Ограничьте, сколько можно извлечь.
Разница между find и find_all:
  1. find: возвращается, когда найден первый тег, удовлетворяющий условию. Грубо говоря, он вернет только один элемент.
  2. find_all: возвращает все теги, соответствующие условиям. Грубо говоря, возвращается очень много тегов (в виде списка).
Условия фильтрации с помощью find и find_all:
  1. Аргументы ключевого слова: фильтрация с использованием имени свойства в качестве имени аргумента ключевого слова и значения свойства в качестве значения аргумента ключевого слова.
  2. Параметр attrs: поместите условия атрибута в словарь и передайте их параметру attrs.
Получить атрибуты метки:
  1. Получено по индексу: метод индексации метки.

     href = a['href']
    
  2. Получается через атрибут attrs: пример кода:

     href = a.attrs['href']
    
строка и строки, свойство stripped_strings и метод get_text:
  1. строка: получить строку без метки под меткой. То, что возвращается, является строкой. Если под этой меткой находится несколько строк символов, ее невозможно получить.
  2. strings: получить строки-потомки без тегов под тегом. То, что возвращается, является генератором.
  3. stripped_strings: получить строки-потомки без тегов под тегом, что удалит пробельные символы. То, что возвращается, является генератором.
  4. get_text: получить строки-потомки без тега под тегом. Он не возвращается как список, он возвращается как обычная строка.
Селекторы CSS:
  1. Судя по названию этикетки, примерный код выглядит следующим образом:

     p{
         background-color: pink;
     }
    
  2. Выберите по имени класса, затем добавьте точку перед классом. Пример кода выглядит следующим образом:

     .line{
         background-color: pink;
     }
    
  3. Выберите в соответствии с именем идентификатора, затем добавьте знак # перед идентификатором. Пример кода выглядит следующим образом:

     #box{
         background-color: pink;
     }
    
  4. Найдите элементы-потомки. Тогда между элементами-потомками должен быть пробел. Пример кода выглядит следующим образом:

     #box p{
         background-color: pink;
     }
    
  5. Найдите непосредственные дочерние элементы. Тогда должен быть > между родительским и дочерним элементами. Пример кода выглядит следующим образом:

     #box > p{
         background-color: pink;
     }
    
  6. Поиск по названию свойства. Затем вы должны сначала написать имя тега, а затем написать значение атрибута в квадратных скобках. Пример кода выглядит следующим образом:

     input[name='username']{
         background-color: pink;
     }
    
  7. При поиске по имени класса или идентификатору, если вы хотите отфильтровать по имени тега. Затем вы можете добавить имя тега перед классом или перед идентификатором. Пример кода выглядит следующим образом:

    div#line{
        background-color: pink;
    }
    div.line{
        background-color: pink;
    }
    
Использование селекторов css в BeautifulSop:

существуетBeautifulSoup, чтобы использовать селекторы css, вам следует использоватьsoup.select()метод. Строка селекторов css должна быть передана в метод select.

Четыре общих объекта:
  1. Tag: Все теги в BeautifulSoup имеют тип Tag, и объект BeautifulSoup на самом деле является типом Tag. Так что на самом деле некоторые методы, такие как find и find_all, не из BeautifulSoup, а из Tag.
  2. NavigableString: наследуется от str в python, это то же самое, что и str в python.
  3. BeautifulSoup: унаследовано от Tag. Используется для создания деревьев BeautifulSoup. Для некоторых методов поиска, таких как поиск и выбор, они по-прежнему являются тегами.
  4. Комментарий: Это ничего не говорит, это унаследовано от NavigableString.
содержание и дети:

Возвращает непосредственных дочерних элементов тега, включая строки. Разница между ними заключается в том, что содержимое возвращает список, а потомки возвращают итератор.