将文本打印到控制台给我
<html>
<body>
<p>
}"
</p>
<div class='\"message-container\"' id='\"m154862032\"' >
...
但是当我尝试提取消息容器div时,我得到一个空列表
messageContainers = BeautifulSoup(post).findAll('div',attrs={'class':'message-container'})
答案 0 :(得分:1)
您的HTML格式错误,并在属性值中包含嵌入的反斜杠和引号。在搜索课程时,您必须包含这些引号:
>>> from bs4 import BeautifulSoup
>>> sample = r'''
... <html>
... <body>
... <p>
... }"
... </p>
... <div class='\"message-container\"' id='\"m154862032\"' >
... '''
>>> soup = BeautifulSoup(sample)
>>> soup.find_all('div', class_=r'\"message-container\"')
[<div class='\"message-container\"' id='\"m154862032\"'>
</div>]
我在这里使用原始字符串文字(r'...'
)来避免反斜杠被解释为转义序列;这样我就不必加倍了。