如何使用Beautiful Soup提取具有特定类属性的列表项?

2024-10-01 00:35:31 发布

您现在位置:Python中文网/ 问答频道 /正文

如何使用BeautifulSoup拉出具有特定类属性或不具有特定clas属性的列表项?在

例如,从下面的HTML中,我只想拉出具有class属性“lev1”(即children)的列表项。我还想拉出没有class属性的列表项(即Parents),但是我想分别做这两件事(这意味着我只想拉出具有class属性“lev1”的列表项,然后只拉出没有class属性的列表项。在

<h3>HeaderName1<h3>
<ul class="prodoplist">
 <li>Parent</li>
 <li class="lev1">Child1</li>
 <li class="lev1">Child2</li>
 <li class="lev1">Child3</li>
  </ul>
  <h3>HeaderName2<h3>
   <ul class="prodoplist">
   <li>Parent2</li>
   <li class="lev1">Child1</li>
   <li class="lev1">Child2</li>
   <li class="lev1">Child3</li>
   </ul>

我的最终目标是生产出这样的东西。在

^{pr2}$

到目前为止,我只知道:

soup.h3.findNext('ul').contents

这就引出了:

 <li>Parent</li>
 <li class="lev1">Child1</li>
 <li class="lev1">Child2</li>
 <li class="lev1">Child3</li>
 <li>Parent2</li>
 <li class="lev1">Child1</li>
<li class="lev1">Child2</li>
<li class="lev1">Child3</li>

然后我用这个,但是当我想把他们分开的时候,它给了我孩子和父母

[x.text for x in duns_brands_html]

Tags: 列表属性liulh3classparentbeautifulsoup
1条回答
网友
1楼 · 发布于 2024-10-01 00:35:31
for h3 in soup.find_all('h3'):
    ul = h3.find_next_sibling('ul')
    lis = ul.findChildren('li')
    for i in range(3):
        print [h3.text, 
               lis[0].text, 
               lis[i].text]

输出:

^{pr2}$

相关问题 更多 >