Skip to content
This repository has been archived by the owner on Nov 28, 2023. It is now read-only.

jemaf/stackoverflow-jobs

Repository files navigation

This project is archived since Stack Overflow Jobs no longer exists.

stackoverflow-jobs

Simple wrapper for crawling jobs data at Stack Overflow Jobs portal.

Basic usage

Creating a query is pretty straightforward:

from stackoverflow_jobs.query import Query

q = Query()

All query filters are available inside filters module. In case you want to add new filters, all you need to do is to append them to the Query object:

from stackoverflow_jobs.query import Query
from stackoverflow_jobs.filters import Role, Remote, Description

q = Query() \
    + Description("Android Developer") \
    + Remote() \
    + Role([Role.Type.MOBILE])

After you build your query, call execute() to fetch the data:

data = q.execute()

By default, queries requests are timed out after 60 seconds. You can change the timeout value in two different ways:

  1. Query(timeout): Every query will end up after the specified timeout.
  2. execute(timeout): Set up timeout for a specific query execution.
q1 = Query()   # Timeout default value: 60 seconds
q2 = Query(25) # Timeout custom value: 25 seconds

q1.execute()  # timeout: 60 seconds
q2.execute()  # timeout: 25 seconds

q1.execute(5) # timeout: 5 seconds
q2.execute(5) # timeout: 5 seconds

Important note: The library queries Stack Overflow Jobs RSS feed. This means that you need to parse the XML afterwards.

You can also retrieve the query URL using build_query() method, in case you need to:

q.build_query()
>>> 'https://stackoverflow.com/jobs/feed?q=Android+Developer&r=true&dr=MobileDeveloper'

Installing

stackoverflow-jobs is available in pypi repository:

pip install stackoverflow-jobs