Class BeautifulSoup从包含子元素的所有div类中提取文本

Class BeautifulSoup从包含子元素的所有div类中提取文本,class,web-scraping,beautifulsoup,Class,Web Scraping,Beautifulsoup,我需要从一个网站上提取所有文本除以div和class。 我想保持这个工具的通用性,以使用不同的网站 下面的代码工作正常。但我不知道如何进入儿童元素 from bs4 import BeautifulSoup import requests url = 'xxx' req = requests.get(url) soup = BeautifulSoup(req.text, "lxml") div = soup.find_all("div"

我需要从一个网站上提取所有文本除以div和class。 我想保持这个工具的通用性,以使用不同的网站

下面的代码工作正常。但我不知道如何进入儿童元素

from bs4 import BeautifulSoup
import requests

url = 'xxx'
        
req = requests.get(url)
soup = BeautifulSoup(req.text, "lxml")
div = soup.find_all("div")

classes = [value
    for element in soup.find_all(class_=True)
    for value in element["class"]]

for class_el in classes:
    try:
        div = soup.find('div', {"class" : class_el})
        text = div.text
        print("")
        print("=============================")
        print(class_el)
        print("")
        print(text)

    except: 
        print("error")


如果我理解正确,如果汤中的每个
元素具有
列表中的一个类,那么这将为您获取汤中每个
元素的文本(如果有)

顺便说一句,给变量命名
div
等不是一个好主意,所以我稍微改变了这一部分:

for class_el in classes:    
        target = soup.find('div', {"class" : class_el})
        if target is not None and len(target.text.strip())>0:
            print(target.text.strip())
            print('=============')

我不认为有办法“保持这个工具的通用性”;网站之间有很大的不同。如果您提供了一个示例url,则可能会找到该特定站点的答案;您希望从该url得到什么样的输出?对于列表“classes”的所有元素,如果有帮助,我想提取相应的文本。但是有可能深入到树的深处吗?例如,我想获取中的文本和同一级别的所有其他div。@user1564140我不太清楚您的意思。你能编辑你的问题(不是在评论中)并给出一些你想要抓住的例子吗?好的,实际上有一个bug,因为类名称中有空格。我想这引起了误会。