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

请教:爬取招聘页面时BeautifulSoup的find()返回None的原因

爬取返回None的常见原因及解决办法

针对你遇到的find()返回None的问题,结合代码和目标网站,主要有这几个可能:

  • 目标元素的标签或class已变更
    你代码里指定的h5标签和mb-0 p-2 w-100 bd-highlight fs-22类名,可能已经被网站修改了。建议打开目标页面的开发者工具(F12),重新定位标题元素,确认正确的标签和class。比如实际查看该页面,标题可能用了h1标签或者不同的类名组合。

  • 请求被反爬机制拦截
    默认的requests.get()请求头里的User-Agent是python-requests/xxx,很容易被网站识别为爬虫,返回的内容并非真实页面(可能是空白页或验证页)。你可以添加模拟浏览器的请求头:

    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'
    }
    website = requests.get(url, headers=headers)
    

    添加后再检查返回的website.text是否包含目标内容。

  • 元素是动态加载的
    如果目标页面使用JavaScript动态渲染内容,requests只能获取静态HTML源码,动态生成的元素不会出现在website.content里。这种情况你需要用selenium或者playwright这类工具模拟浏览器加载页面,再提取元素。比如用selenium的示例:

    from selenium import webdriver
    from bs4 import BeautifulSoup
    
    driver = webdriver.Chrome()
    driver.get(url)
    Soup = BeautifulSoup(driver.page_source, 'html.parser')
    Title = Soup.find('h5', class_="mb-0 p-2 w-100 bd-highlight fs-22")
    print(Title)
    driver.quit()
    

另外,建议先打印website.status_code确认请求是否成功(200是成功),再打印website.text看看返回的内容是否和浏览器里的一致,这样能快速定位问题所在。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 21:31:17