BeautifulSoup 在 class 上查找无效
BeautifulSoup find on class doesn't work
将文本打印到控制台给了我
<html>
<body>
<p>
}"
</p>
<div class='\"message-container\"' id='\"m154862032\"' >
...
但是当我尝试提取消息容器时 div 我得到一个空列表
messageContainers = BeautifulSoup(post).findAll('div',attrs={'class':'message-container'})
您的 HTML 格式错误,属性值中包含嵌入的反斜杠和引号。在搜索 class:
时,您必须包含这些引号
>>> 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'...'
) 以避免反斜杠被解释为转义序列;这样我就不用加倍了。
将文本打印到控制台给了我
<html>
<body>
<p>
}"
</p>
<div class='\"message-container\"' id='\"m154862032\"' >
...
但是当我尝试提取消息容器时 div 我得到一个空列表
messageContainers = BeautifulSoup(post).findAll('div',attrs={'class':'message-container'})
您的 HTML 格式错误,属性值中包含嵌入的反斜杠和引号。在搜索 class:
时,您必须包含这些引号>>> 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'...'
) 以避免反斜杠被解释为转义序列;这样我就不用加倍了。