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

如何通过类选择元素并获取文本?BeautifulSoup新手爬取求助

用BeautifulSoup获取class为sorting_1的元素数值

步骤1:安装依赖库

先确保你装了requests和beautifulsoup4,终端执行:

pip install requests beautifulsoup4

步骤2:编写爬取代码

以下是完整的示例代码,包含请求页面、解析和提取数值的逻辑:

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/114.0.0.0 Safari/537.36"
}

# 目标页面URL
url = "https://www.worldometers.info/coronavirus/#news"

# 发送请求获取页面内容
response = requests.get(url, headers=headers)
# 检查请求是否成功,失败则抛出异常
response.raise_for_status()

# 用BeautifulSoup解析HTML
soup = BeautifulSoup(response.text, "html.parser")

# 查找所有class为sorting_1的<td>元素(这类元素通常在数据表格里)
sorting_items = soup.find_all("td", class_="sorting_1")

# 遍历提取每个元素的数值文本
for item in sorting_items:
    # strip=True 去除文本前后的空格、换行符
    clean_value = item.get_text(strip=True)
    print(clean_value)

关键说明

  • 为什么用find_all("td", class_="sorting_1")?因为sorting_1是DataTables插件给排序列的单元格加的类,这些元素基本都是表格单元格<td>标签。
  • 如果只需要单个匹配的元素,把find_all换成find即可。
  • 部分数值可能包含逗号(比如1,234),如果需要转成数字,可以用int(clean_value.replace(",", ""))或者float()处理。
  • 如果发现获取不到元素,先检查请求返回的response.text里有没有sorting_1这个类——要是没有,说明内容是动态加载的,得用Selenium这类工具处理。

内容的提问来源于stack exchange,提问作者Ömer Sevban Tümer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 22:16:30