Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用BeautifulSoup提取具有特定类属性的列表项?_Python_Html_List_Beautifulsoup - Fatal编程技术网

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

Python 如何使用BeautifulSoup提取具有特定类属性的列表项?,python,html,list,beautifulsoup,Python,Html,List,Beautifulsoup,如何使用BeautifulSoup提取具有特定类属性或不具有特定clas属性的列表项 例如,从下面的HTML中,我只想提取具有class属性“lev1”(即children)的列表项。我还想拉出没有类属性的列表项(即父项),但我想分别做这两件事(这意味着我想只拉出具有类属性“lev1”的列表项,然后只拉出没有类属性的列表项) <h3>HeaderName1<h3> <ul class="prodoplist"> <li>Parent</li

如何使用BeautifulSoup提取具有特定类属性或不具有特定clas属性的列表项

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

<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>
到目前为止,我只知道:

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>
输出:

[u'HeaderName1', u'Parent', u'Parent']
[u'HeaderName1', u'Parent', u'Child1']
[u'HeaderName1', u'Parent', u'Child2']
[u'HeaderName2', u'Parent2', u'Parent2']
[u'HeaderName2', u'Parent2', u'Child4']
[u'HeaderName2', u'Parent2', u'Child5']

soup.find_all(attrs={'class':'lev1'})
太好了,现在唯一的问题是我想找到没有该属性的列表项。这里有一个相关的(但我认为不是重复的)问题:
[x.text for x in duns_brands_html]
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]
[u'HeaderName1', u'Parent', u'Parent']
[u'HeaderName1', u'Parent', u'Child1']
[u'HeaderName1', u'Parent', u'Child2']
[u'HeaderName2', u'Parent2', u'Parent2']
[u'HeaderName2', u'Parent2', u'Child4']
[u'HeaderName2', u'Parent2', u'Child5']