You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何抓取页面中3个同class的div元素内容?

如何抓取页面中3个同class的div元素内容?

别担心,刚接触网页抓取遇到这种情况太正常啦!

你之前用的soup.find("div", class_="section").text.strip()只能匹配到页面中第一个符合条件的div元素,这就是为什么拿不到第二个和第三个内容的原因。

要抓取所有同class的div,你需要用BeautifulSoup的find_all()方法,它会返回所有匹配条件的元素组成的列表,接下来就可以逐个提取文本了:

方法一:循环遍历所有元素

# 获取所有class为section的div元素
all_sections = soup.find_all("div", class_="section")

# 逐个提取文本
for section in all_sections:
    content = section.text.strip()
    print(content)  # 这里可以根据需求把内容存起来或者做其他处理

方法二:直接通过索引获取指定元素

如果你明确知道要第2个或第3个元素,也可以直接通过列表索引访问(注意Python的索引是从0开始的):

# 获取第二个div的内容
second_section_text = soup.find_all("div", class_="section")[1].text.strip()

# 获取第三个div的内容
third_section_text = soup.find_all("div", class_="section")[2].text.strip()

方法三:用列表推导式一次性拿到所有文本

如果想直接得到所有内容的列表,可以用更简洁的写法:

section_texts = [sec.text.strip() for sec in soup.find_all("div", class_="section")]
# 现在section_texts就是包含三个div文本的列表,顺序和页面中的一致

这样就能轻松拿到三个div里的内容啦,刚开始学web scraping难免踩点小坑,多试几次就熟练啦~

备注:内容来源于stack exchange,提问作者Tamir Gansukh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 15:58:10