|
0 / 0 / 0
Регистрация: 13.03.2020
Сообщений: 32
|
||||||
Метод get_text()16.04.2020, 09:33. Показов 8954. Ответов 12
Метки нет (Все метки)
Добрый день всем.
Пытаюсь заниматься парсингом, документацию прочитал, но всё равно не совсем понимаю. Сперва нахожу один блок, затем в нем нахожу другой т.е. спускаюсь по дереву вниз, далее нахожу следующий. И вот в этом блоке есть класс называется он "c-events__liga". Когда вывожу на экран получаю вот в таком формате Кликните здесь для просмотра всего текста
[<span class="c-events__liga">
Мастерс </span>, <span class="c-events__liga"> BoomCup </span>, <span class="c-events__liga"> Вин Кап </span>, <span class="c-events__liga"> Сетка Кап </span>, <span class="c-events__liga"> Сетка Кап. Женщины </span>, <span class="c-events__liga"> Лига Про </span>, <span class="c-events__liga"> Корона Хоум Кап </span>, <span class="c-events__liga"> Чемпионат Армении. ИТТ Кап. Группа А. Женщины </span>, <span class="c-events__liga"> Чемпионат Армении. ИТТ Кап. Группа Б. Женщины </span>, <span class="c-events__liga"> Чехия. ТТ Стар Серия </span>] Пытаюсь получить текст оттуда, но не совсем получается. По документации написано soup.ТЭГ.get_text() Когда я так делаю он у меня на странице любой тег берёт этот и текст из него, а мне вот конкретно нужен из этого класса текст, т.е конкретно "Мастерс" и "BoomCup". подскажите пожалуйста. Вот мой код:
0
|
||||||
| 16.04.2020, 09:33 | |
|
Ответы с готовыми решениями:
12
Получаю ошибку "AttributeError: 'NoneType' object has no attribute 'get_text'" хотя в коде тег и класс указаны правильно AttributeError: 'NoneType' object has no attribute 'get_text' Ошибка парсера AttributeError: 'NoneType' object has no attribute 'get_text' |
|
150 / 120 / 36
Регистрация: 01.11.2019
Сообщений: 425
|
||||||
| 16.04.2020, 09:54 | ||||||
|
Вы не спускаетесь по дереву, вы продолжаете искать на всей странице
1
|
||||||
|
0 / 0 / 0
Регистрация: 13.03.2020
Сообщений: 32
|
|
| 16.04.2020, 10:48 [ТС] | |
|
а как спускаться вниз?
0
|
|
|
|
|||||||
| 16.04.2020, 13:09 | |||||||
|
А еще лучше - использовать XPATH.
0
|
|||||||
|
0 / 0 / 0
Регистрация: 13.03.2020
Сообщений: 32
|
|
| 17.04.2020, 07:48 [ТС] | |
|
почему бесполезная?)
т.е. для парсинга не обязательно bs4 использовать? можешь что получше предложить? я просто смотрел, все через эту шляпу делают.
0
|
|
|
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
|
||||||
| 17.04.2020, 08:09 | ||||||
0
|
||||||
|
|
|||||||
| 17.04.2020, 13:18 | |||||||
|
А также те, кто не знает про XPATH. А кто знает - использует lxml. Добавлено через 1 минуту
0
|
|||||||
|
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
|
|
| 17.04.2020, 15:24 | |
|
0
|
|
|
|
|
| 17.04.2020, 15:51 | |
|
Jabbson,
? lxml объективно функциональнее. Если заглянуть в ее документацию глубже базового метода fromstring, то там обнаруживается еще сотня полезных функций для работы с html, чего нет в bs4. Конечно, XPATH можно заменять CSS select-ом (что есть и в lxml), но в XPATH спецификации есть функции, а синтаксис CSS селекторов это только выражения ( к тому же расширенный JQuery CSS синтаксис поддерживается только специализированными либами типа pyquery). bs4 объективно полезна только в одном: замена бэкендов. В остальном она в силу своего синтаксиса направляет пользователей по пути неправильного построения запросов, что можно видеть во всех кодах новичков, которые юзают длинные цепочки запросов вместо возможного одного правильно построенного XPATH. При этом они практически поголовно не проверяют возвращаемые значения из этих цепочек и потом сорят на форуме вопросами "NoneType не имеет такого то атрибута". И как вы думаете откуда они берут такие паттерны программирования? Из видеоуроков таких же как они "авито парсильщиков". Не успел написать как вот, cвежий пример: 'NoneType' object has no attribute 'text'
0
|
|
|
0 / 0 / 0
Регистрация: 13.03.2020
Сообщений: 32
|
|
| 17.04.2020, 19:26 [ТС] | |
|
ты прям четко всё описал) авито парсильщики мы
все по видео урокам, по документации не особо понятно. может литературу какую посоветуешь пожалуйста? прям вот чтоб хорошо шло...
0
|
|
|
|
|
| 17.04.2020, 19:58 | |
|
Литературы такой на русском я не знаю.
Но для грамотного парсинга нужно знать синтаксис CSS селекторов и XPATH запросов. Из статей - вот: CSS селекторы (поддерживают и bs4 и lxml) https://puzzleweb.ru/css/selectors.php XPATH (только lxml) https://soltau.ru/index.php/themes/dev/item/413 Главный плюс этих синтаксич. выражений в том, что можно описать свой запрос к дереву элементов максимально компактно.
1
|
|
|
|
|
| 19.04.2020, 14:46 | |
|
а ещё
lxml написан на C, по сути.И по всем бэнчмаркам lxml превосходит bs4
0
|
|
|
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
|
|
| 19.04.2020, 19:25 | |
|
Не по теме: Тротиловая шашка по всем параметрам, наверное, тоже превосходит мухобойку, но иногда нужно просто убить комара.
0
|
|
| 19.04.2020, 19:25 | |
|
Помогаю со студенческими работами здесь
13
СЛАУ. Метод обратной матрицы, метод Гаусса, метод Крамера, метод Зейделя Хеш-функция – метод перевода в другую систему счисления, метод разрешения коллизий – метод цепочек Написать три алгоритма решения СЛАУ: Метод прогонки, метод квадратных корней, метод вращений Минимизация в excel разными методами (метод перебора, дихотомия, метод Ньютона, метод касательных) Метод медиан из трех элементов VS улучшенный быстрый метод сортировки(метод Бентли-Макилроя) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536
Одним из. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|