BeautifulSoup在课堂上发现并不起作用

时间:2015-02-19 22:03:26

标签: python flask beautifulsoup

将文本打印到控制台给我

    <html>
     <body>
      <p>
       }"
      </p>
      <div class='\"message-container\"' id='\"m154862032\"' >
      ...

但是当我尝试提取消息容器div时,我得到一个空列表

  messageContainers = BeautifulSoup(post).findAll('div',attrs={'class':'message-container'})

1 个答案:

答案 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'...')来避免反斜杠被解释为转义序列;这样我就不必加倍了。