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

Python求职信息爬虫多输入经if判断过滤不熟悉技能问题求助

求职爬虫多技能过滤问题修复方案

核心问题排查

  • 多技能输入未拆分:直接将输入的逗号分隔字符串(如linux,sql)做遍历操作,实际循环时会逐个读取'l'、'i'、'n'这类单个字符,根本不会匹配完整的技能名称,过滤逻辑完全失效
  • 校验逻辑写反:原有逻辑是「如果不熟悉的技能不在职位要求里,就标记为需要过滤」,和预期效果完全相反。正确逻辑应该是「如果职位要求里存在用户不熟悉的技能,才标记为需要过滤」
  • break语句位置错误:技能校验结束后直接加了break,会在处理完第一个职位后直接终止整个职位遍历流程,且break写在打印逻辑之前,导致打印代码永远不会执行
  • 未调用执行函数:原有代码只定义了find_jobs(),没有主动调用,也是无输出的核心原因之一

修复后完整代码

import requests
from bs4 import BeautifulSoup

html_text = requests.get('https://www.timesjobs.com/candidate/job-search.html?searchType=personalizedSearch&from=submit&txtKeywords=python&txtLocation=').text
soup = BeautifulSoup(html_text , 'lxml')

print ('Write Your Skill That you are less familiar with, split with comma if multiple')
# 拆分多技能输入,去除每个技能前后的空格和中间空格,避免匹配失败
unfamiliar_skill = [s.strip().replace(' ','') for s in input(">").split(',')]
print (f'Filtering out {",".join(unfamiliar_skill)}')

def find_jobs():
    jobs = soup.find_all('li', class_ = "clearfix job-bx wht-shd-bx")
    for job in jobs:
        published_date = job.find('span', class_ = "sim-posted").span.text
        if "few" in published_date:
            company_name = job.find('h3', class_ = "joblist-comp-name").text.replace(' ','')
            require_experiance = job.find('ul', class_ = "top-jd-dtl clearfix").li.text.replace("card_travel", '')
            skills_requirment = job.find('span', class_="srp-skills").text.replace(' ','')
            location_of_the_job = job.find('ul', class_ = "top-jd-dtl clearfix").span.text
            for_more_info = job.find('header', class_ = "clearfix").h2.a["href"]
            
            have_unfamiliar_skill = False
            for skill in unfamiliar_skill:
                # 修正判断逻辑:职位要求包含不熟悉技能就标记为待过滤
                if skill in skills_requirment:
                    have_unfamiliar_skill = True
                    # 匹配到一个就可以终止后续技能校验,提升效率
                    break
            
            if not have_unfamiliar_skill:
                print("necessary information")
                print(f"Company Name: {company_name.strip()}") 
                print(f"Require Experiance: {require_experiance.strip()}")
                print(f"Skill Requirment: {skills_requirment.strip()}")
                print(f"Location Of The Job: {location_of_the_job.strip()}")
                print(f"For More Info: {for_more_info}")
                print('') 

# 调用函数执行逻辑
find_jobs()

内容的提问来源于stack exchange,提问作者Or Zemer Tov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:36:07