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

使用BeautifulSoup爬取timesjob.com时触发TypeError错误求助

解决爬取timesjob.com Python职位时的TypeError错误

错误成因

你在循环里执行了job = job.text,这一步把BeautifulSoup返回的Tag对象转换成了普通字符串。字符串类型的find()方法仅用于查找子串位置,只接受待查找的字符串参数,不支持class_这类关键字参数,因此触发了TypeError: find() takes no keyword arguments。

修正后的代码

删除job = job.text这行,或用单独变量存储文本内容,保留原Tag对象用于节点查找:

from bs4 import BeautifulSoup
import requests

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")
jobs = soup.find_all("li", class_="clearfix job-bx wht-shd-bx")
for job in jobs:
    # 用单独变量存储文本,不覆盖原Tag对象
    job_text = job.text
    company_name = job.find("h3", class_="joblist-comp-name").text.replace(" ", "")
    skills = job.find("span", class_="srp-skills").text.replace(" ", "")
    published_date = job.find("span", class_="sim-posted").span.text
    
    print(f"""
Company Name: {company_name}
Required Skills: {skills}
Published Date: {published_date}
    """)
    print("-" * 50)

额外提示

  • 原代码中打印职位信息的语句在循环外,只会输出最后一个职位的内容,修正后移到循环内可输出所有职位信息。
  • 清理文本时,除了replace(" ", ""),也可以用get_text(strip=True)更高效地移除多余空白字符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 16:21:51