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

使用BeautifulSoup查找指定HTML class返回None或空列表如何解决

问题原因及解决方案

核心问题说明

你遇到的空返回问题由两个原因导致:

  1. 代码缺失requests库的导入语句,运行会直接报错
  2. 目标网站有基础反爬机制,未携带浏览器标识的请求会被拦截,返回的页面不存在你要提取的issue-item类元素,因此BeautifulSoup返回空列表

修复后的可运行代码

import requests
from bs4 import BeautifulSoup

# 添加请求头模拟普通浏览器访问,绕过基础反爬校验
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}

JAGS7_result = requests.get(
    "https://agsjournals.onlinelibrary.wiley.com/toc/15325415/2021/69/7",
    headers=headers
)

JAGS7_soup = BeautifulSoup(JAGS7_result.text, "html.parser")
results = JAGS7_soup.find_all("div", {"class": "issue-item"})
print(results)

新手通用排查技巧

以后遇到同类提取为空的问题,可以按以下步骤排查:

  • 先打印请求返回的状态码JAGS7_result.status_code,如果返回值不是200,说明请求本身被网站拦截
  • 把返回的网页文本保存到本地打开,和你浏览器中打开的目标页面对比,若内容不一致则是触发了反爬,需要补充请求头、Cookie等参数
  • 直接在返回的网页文本中搜索你要提取的类名、标签名,如果搜索不到,说明BeautifulSoup不可能找到对应元素,优先解决请求问题

内容的提问来源于stack exchange,提问作者Guun

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 04:54:02