首页 > 解决方案 > 为什么 beautifulsoup 的 find_all 不起作用

问题描述

我决定查看一个网站的源代码,并选择了一个“扩展”类。我想用这段代码打印出它的所有内容:

import requests
from bs4 import BeautifulSoup

page = requests.get("https://www.quora.com/How-can-I-write-a-bot-using-Python")
soup = BeautifulSoup(page.content, 'html.parser')
print soup.find_all(class_='expanded')

但它只是打印出来:

[]

请帮我找出问题所在。

我已经看到这个线程并尝试按照答案所说的但它没有帮助我,因为这个错误出现在终端中:

bs4.FeatureNotFound:找不到具有您请求的功能的树生成器:lxml。您需要安装解析器库吗?

标签: pythonbeautifulsoup

解决方案


当搜索一个类值时,你应该像这样传递它:

soup.find_all(attrs={"class":"expanded"})

话虽如此,我在该站点的源代码中没有看到任何带有“扩展”类的内容。我能找到的最接近的是 class='ui_qtext_expanded'。如果这是您要查找的内容,则需要包含整个字符串。

soup.find_all(attrs={"class":"ui_qtext_expanded"})

推荐阅读