首页 > 后端开发 > Python教程 > 使用 Python 和法学硕士搜索初创公司职位

使用 Python 和法学硕士搜索初创公司职位

DDD
发布: 2025-01-27 20:15:13
原创
258 人浏览过

Search startup jobs with Python and LLMs

许多公司网站发布的职位信息,在主流求职网站上并不总是能找到。例如,寻找远程初创公司的工作可能具有挑战性,因为这些公司甚至可能未在求职网站上列出。要找到这些工作,您需要:

  • 寻找有潜力的公司
  • 搜索他们的职业页面
  • 分析可用的职位列表
  • 手动记录职位详细信息

这非常耗时,但我们将对其进行自动化。

准备工作

我们将使用Parsera库来自动化职位抓取。Parsera提供两种使用选项:

  • 本地模式: 使用您选择的LLM在您的机器上处理页面;
  • API模式: 所有处理都在Parsera的服务器上进行。

在本例中,我们将使用本地模式,因为这是一个一次性的、小规模的提取。

首先,安装所需的软件包:

<code>pip install parsera
playwright install</code>
登录后复制

由于我们正在运行本地设置,因此需要LLM连接。为简便起见,我们将使用OpenAI的gpt-4o-mini,只需要设置一个环境变量:

<code>import os
from parsera import Parsera

os.environ["OPENAI_API_KEY"] = "<your_openai_api_key_here>"

scraper = Parsera(model=llm)
</your_openai_api_key_here></code>
登录后复制

一切设置完成后,我们就可以开始抓取了。

步骤1:获取最新A轮融资初创公司的列表

首先,我们需要找到我们感兴趣的公司及其网站列表。我找到了一份上个月完成A轮融资的100家初创公司的列表。增长型公司和新一轮融资的公司似乎是不错的选择。

让我们获取这些公司的国家和网站:

<code>url = "https://growthlist.co/series-a-startups/"
elements = {
    "Website": "公司的网站",
    "Country": "公司的国家",
}
all_startups = await scraper.arun(url=url, elements=elements)</code>
登录后复制

有了国家信息,我们可以过滤我们感兴趣的国家。让我们将搜索范围缩小到美国:

<code>us_websites = [
    item["Website"] for item in all_startups if item["Country"] == "United States"
]</code>
登录后复制

步骤2:查找职业页面

现在,我们有了一个来自美国的A轮融资初创公司网站列表。下一步是找到他们的职业页面。我们将直接从他们的主页提取职业页面:

<code>from urllib.parse import urljoin

# 定义我们的目标
careers_target = {"url": "职业页面网址"}

careers_pages = []
for website in us_websites:
    website = "https://" + website
    result = await scraper.arun(url=website, elements=careers_target)
    if len(result) > 0:
        url = result[0]["url"]
        if url.startswith("/") or url.startswith("./"):
            url = urljoin(website, url)
        careers_pages.append(url)</code>
登录后复制

请注意,可以选择使用搜索API替换此步骤,用搜索调用替换LLM调用。

步骤3:抓取开放职位

最后一步是从网站的职业页面加载所有开放职位。假设我们正在寻找软件工程职位,那么我们将查找职位名称、地点、链接以及它是否与软件工程相关:

<code>jobs_target = {
    "Title": "职位的名称",
    "Location": "职位的所在地",
    "Link": "职位发布的链接",
    "SE": "如果这是软件工程职位,则为True,否则为False",
}

jobs = []
for page in careers_pages:
    result = await scraper.arun(url=page, elements=jobs_target)
    if len(result) > 0:
        for row in result:
            row["url"] = page
            row["Link"] = urljoin(row["url"], row["Link"])
    jobs.extend(result)</code>
登录后复制

所有职位都已提取,我们可以过滤掉所有非软件工程职位并将它们保存到.csv文件中:

<code>import csv

engineering_jobs = [job for job in jobs if job["SE"] == "True"]

with open("jobs.csv", "w") as f:
    write = csv.writer(f)
    write.writerow(engineering_jobs[0].keys())
    for job in engineering_jobs:
        write.writerow(job.values())
</code>
登录后复制

最后,我们得到一个包含职位列表的表格,如下所示:

职位名称 所在地 链接 软件工程职位 网址
AI技术主管经理 班加罗尔 https://job-boards.greenhouse.io/enterpret/jobs/6286095003 True https://boards.greenhouse.io/enterpret/
后端开发人员 特拉维夫 https://www.upwind.io/careers/co/tel-aviv/BA.04A/backend-developer/all#jobs True https://www.upwind.io/careers
... ... ... ... ...
结论 ------------

下一步,我们可以重复相同的过程来从完整的职位列表中提取更多信息。例如,获取技术栈或过滤远程初创公司的工作。这将节省手动查看所有页面的时间。您可以尝试自己迭代Link字段并提取您感兴趣的元素。

希望您觉得这篇文章有帮助,如果您有任何问题,请告诉我。

以上是使用 Python 和法学硕士搜索初创公司职位的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板