首頁 >後端開發 >Python教學 >使用Python和LLM搜索啟動作業

使用Python和LLM搜索啟動作業

DDD
DDD原創
2025-01-27 20:15:13327瀏覽

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和LLM搜索啟動作業的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn