許多公司網站發布的職位信息,在主流求職網站上並不總是能找到。例如,尋找遠程初創公司的工作可能具有挑戰性,因為這些公司甚至可能未在求職網站上列出。要找到這些工作,您需要:
這非常耗時,但我們將對其進行自動化。
我們將使用Parsera庫來自動化職位抓取。 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>
一切設置完成後,我們就可以開始抓取了。
首先,我們需要找到我們感興趣的公司及其網站列表。我找到了一份上個月完成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>
現在,我們有了一個來自美國的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調用。
最後一步是從網站的職業頁面加載所有開放職位。假設我們正在尋找軟件工程職位,那麼我們將查找職位名稱、地點、鏈接以及它是否與軟件工程相關:
<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中文網其他相關文章!