2017-01-26 2 views
1

Предположим, у меня есть код в следующем формате в HTML:значение царапать на основе содержания родственного с использованием BeautifulSoup

... 
<div class="class1"> 
    <div class="subclass1">Text1</div> 
    <div class="subclass2">Text2</div> 
</div> 
<div class="class1"> 
    <div class="subclass1">Text3</div> 
    <div class="subclass2">Text4</div> 
</div> 
<div class="class1"> 
    <div class="subclass1">Text5</div> 
    <div class="subclass2">Text6</div> 
</div> 
... 

Как я могу извлечь Text2 на основе Text1?

У меня есть несколько идей, но все они включают сложную структуру с циклом и преобразованием между списком и bs-серией. Любые идеи?

+1

Что вы имеете в виду под "экстрагировать Текст2 на основе Text1"? – Shane

ответ

2
text2 = soup.find('div', text='Text1').find_next('div').text 
      # |-----find div tag-------|-get next div tag-|     

из:

'Text2' 

или:

soup.find('div', text='Text1').next_sibling.next_element.text 

это не рекомендуется

+1

Ты просто потрясающий :) и спасибо :) – mrGreenBrown

Смежные вопросы