【问题标题】:parsing HTML using beautifulSoup with child and parent div having same class使用beautifulSoup解析HTML,子div和父div具有相同的类
【发布时间】:2012-02-07 06:29:08
【问题描述】:

我有这个 HTML,我必须从中提取数据:

<html>
<head></head>
<body>
<div class="main">
  <div class="utlimate"><p>hello</p></div>
  <div class = "headline"><p>some text</p></div>
   <div class="content">
     <div class = "utimate"> <p>TOP</p>
        <div class ="utlimate"> <p>data1</p></div>
        <div class ="utlimate"> <p>it could be anything</p></div>
        <div class ="utlimate"> <p>not</p></div>
        <div class ="utlimate"> <p></p></div>

     </div>
   </div>
</div>
</body>
</html>

我需要使用&lt;p&gt; 访问&lt;div class="ultimate"&gt;,其值为“data1”、“它可以是任何东西”、“不是”。我为此尝试的代码:

soup = BeautifulSoup(HTML_data)     #HTML_data is all html content
first_div = soup.find('div',{"class" : "content"})
second_div = first_div.find('div',{"class" : "utlimate"})
div_list = second_div.findall('div',{"class" : "utlimate"})

我的代码最后一行出现错误'NoneType' object is not callable

我如何只访问那些 div 的???请帮助

【问题讨论】:

    标签: python regex beautifulsoup


    【解决方案1】:

    试试这个:

    soup = BeautifulSoup(HTML_data)     #HTML_data is all html content
    first_div = soup.find('div',{"class" : "content"})
    second_div = first_div.find('div',{"class" : "utimate"})
    div_list = second_div.findAll('div',{"class" : "utlimate"})
    

    获取列表的方法是findAll,而不是findall。 HTML 片段中没有“终极”,它们是“终极”或“终极”。是错别字吗?

    【讨论】:

      【解决方案2】:

      没有汤吗?

      我建议您重构代码以防止这种情况发生:

      soup = BeautifulSoup(HTML_data)     #HTML_data is all html content
      if soup ==None:
          //Error
      else:
          c = soup.contents
          // Use RE here
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-09-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-22
        • 2021-02-09
        • 2018-06-06
        • 2018-11-12
        相关资源
        最近更新 更多