Jobstream example

Hej där!

Har laddat ner Jobstream example från gitlab och lyckats lösa en DB fil. Med hjälp av detta program har jag som mål att ladda ner annonser som är inom lokalvård/städ. Finner dock ingen filtrering som löser detta.

Jobbar med en masteruppsats och behöver få ner alla annonser från och med 1 januari 2022. Mitt största problem som tidigare sagt, är att jag icke kan filtrera, vilket leder att jag får en onödigt stor databasfil.

Därefter, går det på ett enkelt vis att justera databas filen så den inhämtar arbetsort, epost där man söker jobb etc istället för att mata in allt i en rad?

Tack på förhand

1 gillning

Hej, kul att du använder exemplet.

För att sortera fram jobb av en viss kategori används “concept ids”.

concept id för gruppen “Städare” (som borde täcka ditt behov) är Z6TY_xDf_Yup

I funktionen get_ads_since_time
byter du ut nuvarande params = mot denna:
params = {'date': timestamp, 'occupation-concept-id': 'Z6TY_xDf_Yup'}

get_ads.py · main · Arbetsförmedlingen / Job Ads / Getting started - code examples / Jobstream example · GitLab

Och det går att bara spara delar av annonsen till databasen, men jag får återkomma om det.

1 gillning

Jag uppdaterar exemplet med att bara spara vissa fält, och publicerar koden imorgon.

Idag blev det visst. Nu är koden uppdaterad, ladda ned och prova på nytt (du behöver göra en ny databas).
Vill du spara fler fält så hoppas jag det framgår var de behöver ändras.

En kommentar: jag vet inte exakt vilken data du behöver och om den behöver vara aktuell, men vi håller på att publicera annonser från tidigare år. Då kan du arbeta med t.ex hela 2021

Det är dock annonser utan persondata såsom epostadress.

När jag laddat ned de annonser efter urvalet jag valt. Hur får jag datan i databasfältet “data” i separata kolumner på ett enkelt sätt?

Hej, jag har gjort lite kommentarer i database.py för var det behöver ändras om du vill lägga till fler kolumner.
Kolla efter # TODO: When adding more fields,

Det är inte optimalt och borde bli tydligare definierat, men det är vad jag har tid med just nu. Hoppas det räcker.

Observera att du måste skapa en ny databas, eftersom tabellerna skapas i bootstrap.py

Toppen. Har tagit bort den gamla databasen. Får dock flera felmeddelanden b la: “no such table: jobads” när jag kör bootstrap.py. Måste jag ladda ned fler nya filer gitlab för att det ska fungera eller byta ut någon text? Är tyvärr ingen van python användare.

Nej det skall funka direkt. Jag provade just och det gick utan problem.

Så här ser det ut när jag kör:

(venv) C:\repos\jobstream-example>python bootstrap.py
2022-04-25 08:57:11  INFO     initialize connection to database 'jobads_database.db'
2022-04-25 08:57:11  INFO     Created database table: jobads
2022-04-25 08:57:11  INFO     Database has 0 ads
2022-04-25 08:57:11  INFO     Committed transactions and closed DB connection
2022-04-25 08:57:11  INFO     Database created: "jobads_database.db"
2022-04-25 08:57:11  INFO     New timestamp written: 2022-04-25T08:57:11
2022-04-25 08:57:11  INFO     Collecting ads from: https://dev-jobstream-api.jobtechdev.se/snapshot with params {}
2022-04-25 08:59:44  INFO     Got 76168 ads from https://dev-jobstream-api.jobtechdev.se/snapshot. Params: {}
2022-04-25 08:59:44  INFO     initialize connection to database 'jobads_database.db'
2022-04-25 08:59:45  INFO     Database has 76168 ads
2022-04-25 08:59:45  INFO     Committed transactions and closed DB connection
2022-04-25 08:59:45  INFO     Loaded 76168 into the database table "jobads". Timestamp: 2022-04-25T08:57:11

Det fungerade när jag bytte ut settings-filen mot en ny. Vart hittar jag en lista med värden att använda, t ex om jag vill ha företagsnamn m fl. istället för email som kolumn?

Datamodellen för annonserna finns beskriven på Swagger-sidan för JobSearch: https://jobsearch.api.jobtechdev.se/ (vi skall lägga in den på JobStreams Swagger också)

En mer detaljerad beskrivning finns här docs/AdFields.md · main · Arbetsförmedlingen / Job Ads / jobsearch-apis · GitLab

bild
Så företagsnamn hittar du med:
employer_name = ad.get('employer', {}).get('name', ' ')

Toppen!

Vilken ska man använda för att få länken till Arbetsgivarens länk?

url = ad.get('employer', {}).get('url', ' ')

Den strängen verkar hämta företagets url och inte länken direkt till där ansökan görs. Är det möjligt att hämta den? Har provat några exempel men har inte lyckats. Har provat webpage_url, application_details url etc.

application_details.url är där ansöknings-url finns - i de fall arbetsgivaren lagt in den, det är inget obligatoriskt fält.
Fältet kan vara null, en del arbetsgivare lägger den här typen av information i annonsbeskrivningen.

Exempel där det finns med:
bild