使用BeautifulSoup解析具有相同类的子父div的HTML
我有一段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>
我想要找到一个类名为 <div class="ultimate">
的 <p>
标签,这个标签的内容是 "data1"、"it could be anything" 或 "not"。我为此写的代码是:
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
我该怎么才能只访问这些
呢?请帮帮我。
2 个回答
1
汤是空的吗?
我建议你重新整理一下你的代码,以防止出现这种情况:
soup = BeautifulSoup(HTML_data) #HTML_data is all html content
if soup ==None:
//Error
else:
c = soup.contents
// Use RE here
2
试试这个:
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片段中没有“ultimate”,它们是“utlimate”或“utimate”。这些是拼写错误吗?