Nano Hash - криптовалюты, майнинг, программирование

Очистка поля Красивым супом

Я новичок в парсинге веб-страниц. Я не могу получить поле (имя пользователя) с веб-страницы.

Это HTML-код веб-страницы с интересующим меня полем.

        <div class="block-body">
          <div class="block-row block-row--separated">
          <div class="block-row block-row--separated">
            <dl class="pairs pairs--columns pairs--fixedSmall">
            <dl class="pairs pairs--columns pairs--fixedSmall">
            <dl class="pairs pairs--columns pairs--fixedSmall">
            <dl class="pairs pairs--columns pairs--fixedSmall">
            <dl class="pairs pairs--columns pairs--fixedSmall">
            <dl class="pairs pairs--columns pairs--fixedSmall">
            <dl class="pairs pairs--columns pairs--fixedSmall">
              <dt>YouTube Username</dt>
                            <dd>



                              GET_THIS_FIELD



                            </dd>
                          </dl>



            <dl class="pairs pairs--columns pairs--fixedSmall">

Вот проблемы, с которыми я сталкиваюсь:

  1. Я не могу извлечь поле, так как есть несколько объектов с одним и тем же классом, текстовый параметр не работает, и я не знаю, как найти решение.

  2. Поскольку поле YOUTUBE USERNAME отсутствует на всех страницах, которые я посещаю, мне нужно включить элемент управления.

Все перепробовал, это последняя попытка.

        profile_content = profile.content 
        soup2 = BeautifulSoup(profile_content, features="lxml") 
        if soup2.find(text=re.compile('^YouTube Username$')): 
          user_channel = soup2.find("dl", {'class': 'pairs pairs--columns pairs--fixedSmall'}).find_next_siblings('dd')
        else: 
          user_channel = "none"

Спасибо за помощь!


  • пожалуйста, отредактируйте свой вопрос и включите часть HTML в качестве кода вместо img, чтобы мы могли вручную проверить и подтвердить. 16.04.2020

Ответы:


1

Предполагая, что HTML-код верен, я мог бы дать такой ответ:

# data is the HTML code as string
soup = BeautifulSoup(data, 'html.parser')

the_field = soup.find('dt', string='YouTube Username').find_next('dd').text.strip()

print(the_field)

Для вашей же безопасности вы можете добавить тесты, если строка была найдена и т. Д. Надеюсь, это поможет.

16.04.2020
  • Большое спасибо, ваш комментарий был очень полезен, поскольку я понял, что мой HTML-код загружен неправильно из-за опечаток в URL-адресе. Вы сделали мой день! 16.04.2020
  • Затем сделайте мне одолжение, проголосуйте за мой ответ и отметьте его как ответ. Спасибо. 16.04.2020
  • Должен быть серый крючок, а также две стрелки, одна вверх, одна вниз. Нажатие на крючок означает, что ответ правильный и принятый, стрелки служат для того, чтобы проголосовать за ответ. 17.04.2020
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..