Maison >développement back-end >Tutoriel Python >Recherchez des travaux de démarrage avec Python et LLMS
De nombreux sites Web d'entreprises publient des informations sur les offres d'emploi qui ne se trouvent pas toujours sur les sites Web de recherche d'emploi traditionnels. Par exemple, trouver un emploi dans des startups distantes peut être difficile car ces entreprises peuvent même ne pas être répertoriées sur les sites d'emploi. Pour trouver ces emplois dont vous avez besoin :
Cela prend beaucoup de temps mais nous allons l'automatiser.
Nous utiliserons la bibliothèque Parsera pour automatiser le job scraping. Parsera propose deux options d'utilisation :
Dans cet exemple, nous utiliserons le mode local car il s'agit d'une extraction unique à petite échelle.
Tout d'abord, installez les packages requis :
<code>pip install parsera playwright install</code>
Puisque nous exécutons une configuration locale, une connexion LLM est requise. Pour plus de simplicité, nous utiliserons gpt-4o-mini d'OpenAI et n'aurons besoin de définir qu'une seule variable d'environnement :
<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>
Une fois que tout est configuré, nous pouvons commencer à explorer.
Tout d'abord, nous devons trouver une liste des entreprises qui nous intéressent et leurs sites Web. J'ai trouvé une liste de 100 startups qui ont levé des fonds de série A le mois dernier. Les entreprises en croissance et les entreprises bénéficiant de nouveaux tours de table semblent être de bons choix.
Obtenons les pays et les sites Web de ces entreprises :
<code>url = "https://growthlist.co/series-a-startups/" elements = { "Website": "公司的网站", "Country": "公司的国家", } all_startups = await scraper.arun(url=url, elements=elements)</code>
Grâce aux informations sur les pays, nous pouvons filtrer les pays qui nous intéressent. Limitons notre recherche aux États-Unis :
<code>us_websites = [ item["Website"] for item in all_startups if item["Country"] == "United States" ]</code>
Nous avons maintenant une liste de sites Web de startups de financement de série A aux États-Unis. La prochaine étape consiste à trouver leur page de carrière. Nous extrairons la page des carrières directement depuis leur page d'accueil :
<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>
Notez que vous pouvez éventuellement remplacer cette étape par l'API de recherche et l'appel LLM par un appel de recherche.
La dernière étape consiste à charger tous les postes ouverts depuis la page carrière du site Web. Disons que nous recherchons un emploi en génie logiciel, alors nous rechercherons le titre du poste, le lieu, le lien, et s'il est lié au génie logiciel :
<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>
Une fois tous les postes extraits, nous pouvons filtrer tous les postes non liés à l'ingénierie logicielle et les enregistrer dans un fichier .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>
Enfin, nous obtenons un tableau avec une liste de postes, comme indiqué ci-dessous :
职位名称 | 所在地 | 链接 | 软件工程职位 | 网址 |
---|---|---|---|---|
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 |
... | ... | ... | ... | ... |
Ensuite, nous pouvons répéter le même processus pour extraire plus d'informations de la liste complète des tâches. Par exemple, obtenez la pile technologique ou filtrez les emplois dans les startups à distance. Cela permettra de gagner du temps en examinant manuellement toutes les pages. Vous pouvez essayer de parcourir vous-même le champ Lien et d'extraire les éléments qui vous intéressent.
J'espère que vous avez trouvé cet article utile et n'hésitez pas à me faire savoir si vous avez des questions.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!