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

解决LinkedIn职位爬虫报错:'NoneType' object has no attribute 'text'

LinkedIn职位爬虫解析报错解决

你遇到的'NoneType' object has no attribute 'text'错误,核心出在两个点,直接说问题和修正方法:

问题1:链接提取逻辑完全错误

你写的job.find('href',class_='xxx')是错的——href是<a>标签的属性,不是标签名。而且职位链接存在<a>标签的href属性里,根本不需要取.text。

结合你附的截图,正确做法是先找到带base-card__full-link类的<a>标签,再提取它的href属性。

问题2:没处理元素找不到的情况

如果页面里有职位卡片缺失标题、公司名或链接,find()会返回None,这时直接调用.text就会触发报错。必须先判断元素是否存在,再执行后续操作。

修正后的代码

page_source = BeautifulSoup(driver.page_source, 'lxml')
job_card = page_source.find_all('div', class_='base-card relative w-full hover:no-underline focus:no-underline base-card--link base-search-card base-search-card--link job-search-card')
for job in job_card:
    # 处理职位标题
    title_elem = job.find('h3', class_='base-search-card__title')
    job_title = title_elem.text.replace(' ', '') if title_elem else '无标题'
    
    # 处理公司名称
    company_elem = job.find('h4', class_='base-search-card__subtitle')
    job_company_name = company_elem.text.replace(' ', '') if company_elem else '无公司名'
    
    # 处理职位链接
    link_elem = job.find('a', class_='base-card__full-link absolute top-0 right-0 bottom-0 left-0 p-0 z-[2]')
    job_link_post = link_elem['href'] if link_elem else '无链接'
   
    print(f'Title = {job_title}\n'
          f'Company Name = {job_company_name}\n'
          f'Job Link = {job_link_post}\n')

额外提示

  • LinkedIn有反爬机制,爬取时记得加随机延迟,避免账号受限。
  • 可以用select_one()替代find(),语法更贴近CSS选择器,比如job.select_one('h3.base-search-card__title'),写法更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 06:54:22