2015-09-23 6 views
-1

Можете ли вы показать мне, как извлечь текст заголовка (Инна) с помощью BeautifulSoup в этой ситуации:как извлечь текст с помощью BeautifulSoup

<div class="wallpapers-box-300x180-2 wallpapers-margin-2"> 
<div class="wallpapers-box-300x180-2-img"><a title="Inna" href="/photo.jpg" alt="Inna" width="300" height="188" /></a></div> 
<div class="wallpapers-box-300x180-2-title"><a title="Inna" href="/wallpapers/inna/">Inna</a></div> 

Спасибо.

ответ

1

Существует так много способов найти элемент в этом случае, и трудно сказать, какой путь будет работать для вас лучше, поскольку мы не знаем масштаб проблемы, насколько уникален элемент и что вы знаете и может положиться.

Наиболее практичный подход здесь я думаю, что было бы использовать следующие CSS selector:

for elm in soup.select('div[class^="wallpapers-box"] > a[href*=wallpapers]'): 
    print(elm.get_text()) 

Здесь мы проверяем для класса родительского div элемента, чтобы начать с wallpapers-box и найти прямой элемент a ребенка, имеющий wallpapers текста внутри значение атрибута href.

+0

Спасибо, я только что обновил свой вопрос, они больше классов, которые начинаются с обоев – user1034127

+0

@ user1034127 и все еще решение действительно. – alecxe

+0

Это может быть еще короче: для вяз в soup.select ('a [href = "/ wallpapers/inna /"]'): – mmachine