В этом случае я попытаюсь найти какой-либо шаблон, который поможет мне извлечь эти данные,
например, я вижу, что эти слова встречаются часто "is hiring|is looking for|is looking to hire|hiring"
, и название компании стоит на первом месте, а местоположение указывается после in
:
это всего лишь небольшая пробная версия, и вы можете расширить ее, чтобы получить то, что вам нужно
import re
text = """ZeroCater (YC W11) Is Hiring a Principal Engineer in SF: Must Love Food (zerocater.com)
OneSignal Is Hiring Full Stack Engineers in San Mateo (onesignal.com)
Faire (YC W17) Is Looking to Hire Business Operations Leads (greenhouse.io)
InsideSherpa (YC W19) Is Hiring Software Engineers in Sydney (workable.com)
Jerry (YC S17) Is Hiring Senior Software Dev, Data Engineer (Toronto/Remote) (getjerry.com)
Iris Automation Is Hiring an Account Executive for B2B Flying Vehicle Software (irisonboard.com)"""
data = text.lower().splitlines()
for i, line in enumerate(data):
# getting company name
data[i] = re.split(r'is hiring|is looking for|is looking to hire|hiring', line)
# job title and location if present
data[i][1] = re.split(r' in ', data[i][1])
print('company --- Job Title --- Location')
for c in data:
print(f'{c[0]} --- {c[1][0]} --- {c[1][1] if len(c[1])>1 else ""}')
выход:
company --- Job Title --- Location
zerocater (yc w11) --- a principal engineer --- sf: must love food (zerocater.com)
onesignal --- full stack engineers --- san mateo (onesignal.com)
faire (yc w17) --- business operations leads (greenhouse.io) ---
insidesherpa (yc w19) --- software engineers --- sydney (workable.com)
jerry (yc s17) --- senior software dev, data engineer (toronto/remote) (getjerry.com) ---
iris automation --- an account executive for b2b flying vehicle software (irisonboard.com) ---
уверен, что этот код нуждается в большом количестве модификаций для получения надежных результатов, но, по крайней мере, это начало