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

使用BeautifulSoup提取职位链接遇'NoneType'无get属性错误

解决Jobs.ch职位链接提取失败的问题

问题背景

已成功从https://www.jobs.ch/en/vacancies/?term=Data%20Analyst获取职位名称和公司信息,但提取职位链接时触发AttributeError,错误信息:

AttributeError: 'NoneType' object has no attribute 'get'

问题原因

job_elements是通过find_all("a", class_="...")直接获取到的<a>标签集合,你在循环中再次调用job_element.find('a', ...)会返回None——因为当前job_element本身就是目标<a>标签,内部不存在嵌套的同类型标签,调用get('href')自然报错。

修正代码

直接从job_element本身提取href属性即可,同时注意拼接完整域名(原href为相对路径):

import requests
from bs4 import BeautifulSoup as bs

url = 'https://www.jobs.ch/en/vacancies/?term=Data%20Analyst'
page = requests.get(url)
soup = bs(page.content, "html.parser")

results = soup.find(class_="Div-sc-1cpunnt-0 ujqkk")
job_elements = results.find_all("a", class_="Link__ExtendedRR6Link-sc-czsz28-1 jzwvjr Link-sc-czsz28-2 VacancyLink___StyledLink-sc-ufp08j-0 bzpUGN zoplL")

for job_element in job_elements:
    title_element = job_element.find("span", class_="Span-sc-1ybanni-0 Text__span-sc-1lu7urs-12 Text-sc-1lu7urs-13 VacancySerpItem___StyledText-sc-ppntto-4 jpKTRn bbefum hSicAH")
    company_element = job_element.find("p", class_="P-sc-hyu5hk-0 Text__p2-sc-1lu7urs-10 Span-sc-1ybanni-0 Text__span-sc-1lu7urs-12 Text-sc-1lu7urs-13 cHnalP cTUsVs")
    # 直接从当前a标签获取href并拼接完整URL
    job_link = f"https://www.jobs.ch{job_element.get('href')}"
    
    print(title_element.text)
    print(company_element.text)
    print(job_link)
    print()

额外优化

为避免因个别标签缺失href导致报错,可添加默认值处理:

job_link = f"https://www.jobs.ch{job_element.get('href', '')}"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 14:10:26