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

使用BeautifulSoup爬取指定职位页面薪资数据失败的问题排查及替代工具咨询

问题分析与修复方案

我帮你排查了下问题,主要有两个核心原因:

  1. 请求头缺失:直接用requests.get发送请求时,没携带浏览器标识(User-Agent),网站可能返回简化版页面或触发反爬拦截,导致你要的元素根本不在返回的HTML内容里。
  2. 元素选择器失效:网站的CSS类名大概率是动态生成的,你用的css-3kx5e2和css-4xky9y可能已经更新,或者本来就不是对应薪资信息的正确元素。

修正后的代码

我调整了请求头,并且改用更可靠的文本匹配方式定位薪资信息,你可以试试这段代码:

import requests
from bs4 import BeautifulSoup as bs

# 添加模拟浏览器的请求头,避免被反爬拦截
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
}

url = "https://wuzzuf.net/jobs/p/Atse8Mz9mIOW-Python-Developer-EBE-Giza-Egypt?o=1&l=sp&t=sj&a=python|search-v3|hpb"
result = requests.get(url, headers=headers)
src = result.content
soup = bs(src, 'html.parser')

# 先找到包含"Salary"的标签,再定位相邻的薪资内容
salary_label = soup.find(string=lambda text: text and "Salary" in text)
if salary_label:
    salary_element = salary_label.find_next("span")
    print("薪资信息:", salary_element.get_text(strip=True) if salary_element else "未找到薪资数据")
else:
    print("未找到薪资相关标签")

替代库推荐

如果遇到更复杂的动态渲染页面(比如薪资是通过JS异步加载的),这些工具会更顺手:

  • Playwright:可以模拟真实浏览器的完整行为,自动处理JS渲染、Cookie和动态内容,完美适配现代前端框架构建的网站。
  • Scrapy:专业的爬虫框架,内置反爬处理、并发请求等功能,适合大规模爬虫项目,扩展性极强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 08:27:44