подскажите по BeautifulSoup

Тема в разделе "Perl, Python, Ruby", создана пользователем zhekaxak, 10 июн 2017.

Метки:
  1. zhekaxak

    zhekaxak

    Регистр.:
    16 авг 2007
    Сообщения:
    320
    Симпатии:
    70
    Только начал учить питон и решил попробовать написать парсер сайта с использованием BeautifulSoup
    Застрял на нескольких моментах и никак не могу понять как сделать

    Пытаюсь спарсить хлебные крошки
    Код:
    data['path'] = viewPage.select("#path > a")
    результат:
    Код:
    path': [<a href="./">Главная</a>, <a href="catalog/">Каталог</a>, <a href="catalog/category">Категория</a>, <a href="catalog/subcategory/">Подкатегория</a>]
    все отлично, они берутся, но как получить не полностью тег a, а только текст?
    в такой конструкции работает
    Код:
    data['name'] = viewPage.find('h1').text
    дописываю также к хлебным крошкам
    Код:
    data['path'] = viewPage.select("#path > a").text
    выдает ошибку: builtins.AttributeError: 'list' object has no attribute 'text'

    И второй момент, как не брать определенные теги
    Допустим нужно описание
    Код:
    data['desc'] = viewPage.select("#description")
    Но внутри decription есть много лишнего (img, form, table), как от них избавится?

    Спасибо!
     
  2. zhekaxak

    zhekaxak

    Регистр.:
    16 авг 2007
    Сообщения:
    320
    Симпатии:
    70
    с первой задачей разобрался так:
    Код:
        for bread in viewPage.select("#path > a"):
            data['path'] += bread.text + "/"
    а вот со второй пока ничего :(
     
  3. savvadesogle

    savvadesogle Создатель

    Регистр.:
    19 мар 2014
    Сообщения:
    11
    Симпатии:
    2
    Как один из вариантов сделать списком содержимое и взять только те теги, которые нужны.
     
  4. savvadesogle

    savvadesogle Создатель

    Регистр.:
    19 мар 2014
    Сообщения:
    11
    Симпатии:
    2