Arhn - архитектура программирования

Получить определенные элементы из bs4.element

У меня есть элемент типа bs4.element.Tag:

<div class="table_v_nr">
    1003 : 11400

    <span class="table_v_time" title="12. min. 2. hr. 6. day.">Y 35id</span></div>

И мне нужно получить 1003 : 11400 от этого элемента. Пожалуйста, как это сделать?

Спасибо

РЕДАКТИРОВАТЬ:

и как я могу выбрать отдельные элементы (1003: 11400,...), если у меня есть более одного div:

    <div class="table_v_nr">
    1003 : 11400

    <span class="table_v_time" title="12. min. 2. hr. 6. day.">Y 35id</span></div>,
<div class="table_v_nr">
    1003 : 11400

    <span class="table_v_time" title="12. min. 2. hr. 6. day.">Y 36id</span></div>,
<div class="table_v_nr">
    1007 : 11550

    <span class="table_v_time" title="13. min. 2. hr. 6. day.">Y 37id</span></div>,

...


  • Вы пробовали your_element.text ? 01.11.2020
  • получить элемент через xpath. Тогда просто сделайте element.text , это сработает. 01.11.2020

Ответы:


1

Это должно помочь вам:

div = soup.find('div', class_ = "table_v_nr")
print(div.find_next(text=True).strip())

Полный код:

from bs4 import BeautifulSoup

html = '''
<div class="table_v_nr">
    1003 : 11400

    <span class="table_v_time" title="12. min. 2. hr. 6. day.">Y 35id</span></div>
'''
soup = BeautifulSoup(html,'html5lib')

div = soup.find('div', class_ = "table_v_nr")
print(div.find_next(text=True).strip())

Выход:

1003 : 11400

Изменить:

Если вы хотите извлечь текст из нескольких тегов div, вы можете попробовать что-то вроде этого:

from bs4 import BeautifulSoup

html = """
    <div class="table_v_nr">
    1003 : 11400

    <span class="table_v_time" title="12. min. 2. hr. 6. day.">Y 35id</span></div>,
<div class="table_v_nr">
    1003 : 11400

    <span class="table_v_time" title="12. min. 2. hr. 6. day.">Y 36id</span></div>,
<div class="table_v_nr">
    1007 : 11550

    <span class="table_v_time" title="13. min. 2. hr. 6. day.">Y 37id</span></div>,
"""
soup = BeautifulSoup(html,'html5lib')

[print(div.find_next(text=True).strip()) for div in soup.find_all('div', class_ = "table_v_nr")]

Выход:

1003 : 11400
1003 : 11400
1007 : 11550
01.11.2020

2

Используйте .contents:

from bs4 import BeautifulSoup

html = """<div class="table_v_nr">
    1003 : 11400

   <span class="table_v_time" title="12. min. 2. hr. 6. day.">Y 35id</span></div>
"""
soup = BeautifulSoup(html,'html.parser')

div = soup.find('div', class_ = "table_v_nr").contents[0]
print(div.strip())

Выход:

1003 : 11400

Редактировать можно с помощью селектора CSS:

from bs4 import BeautifulSoup

soup = BeautifulSoup(html,'html.parser')

for tag in soup.select (".table_v_nr:contains('1003')"):
    print(tag.next.strip())

Выход:

1003 : 11400
1003 : 11400
01.11.2020
  • Большое спасибо. 01.11.2020
  • могу ли я выбрать его отдельно. Мне нужно: 1, добавить все эти числа (1000: 10000,...) в матрицу (кадр данных pandas) 02.11.2020
  • 2 или выберите только интересующие (первый, третий,...) 02.11.2020
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..