Automatisiertes Tool zum Scrapen von Stellenausschreibungen in eine .csv
Datei.
JobFunnel erfordert Python 3.11 oder höher.
pip install git+https://github.com/PaulMcInnis/JobFunnel.git
Durch regelmäßiges Scraping und Überprüfen können Sie sich selbst auf den geschäftigsten Stellenmärkten durchsetzen.
Sie können mit YAML-Konfigurationsdateien oder durch Übergabe von Befehlsargumenten nach Jobs suchen.
Laden Sie die Demo-Einstellungen.yaml herunter, indem Sie den folgenden Befehl ausführen:
wget https://git.io/JUWeP -O my_settings.yaml
NOTIZ:
Es wird empfohlen, so wenige Suchbegriffe wie möglich anzugeben (z. B. Python
, AI
).
JobFunnel unterstützt derzeit die Gebietsschemata CANADA_ENGLISH
, USA_ENGLISH
, UK_ENGLISH
, FRANCE_FRENCH
und GERMANY_GERMAN
.
Führen Sie funnel
mit Ihren YAML-Einstellungen aus, um Ihre Master-CSV-Datei mit Jobs von verfügbaren Anbietern zu füllen:
funnel load -s my_settings.yaml
Öffnen Sie die Master-CSV-Datei und aktualisieren Sie den status
pro Auftrag:
Wählen Sie interested
“, applied
, interview
oder offer
, um Ihren beruflichen Fortschritt widerzuspiegeln.
Legen Sie archive
, rejected
oder delete
fest, um einen Job aus dieser Suche zu entfernen. Sie können „blockierte“ Jobs in Ihrer block_list_file
überprüfen.
Suchen automatisieren
JobFunnel kann mit Crontab leicht automatisiert werden, sodass es jede Nacht ausgeführt wird
Weitere Informationen finden Sie im Crontab-Dokument.
Schreiben Sie Ihre eigenen Scraper
Wenn Sie eine Job-Website haben, für die Sie einen Scraper schreiben möchten, können Sie ihn gerne implementieren. Sehen Sie sich den Base Scraper für Details zur Implementierung an.
Fernarbeit
Umgehen Sie eine frustrierende Benutzererfahrung bei der Suche nach Remote-Arbeit, indem Sie den Suchparameter remoteness
so einstellen, dass er Ihrem gewünschten Level entspricht, z. B. FULLY_REMOTE
.
Unterstützung für X-Sprache/Job-Website hinzugefügt
JobFunnel unterstützt das Scraping von Jobs von derselben Job-Website über Gebietsschemas und Domänen hinweg. Wenn Sie daran interessiert sind, Unterstützung hinzuzufügen, müssen Sie möglicherweise nur Sitzungsheader und Domänenzeichenfolgen definieren. Weitere Implementierungsdetails finden Sie im Base Scraper.
Blockierende Unternehmen
Filtern Sie unerwünschte Unternehmen, indem Sie sie zu Ihrer company_block_list
in Ihrem YAML hinzufügen oder sie per Befehlszeile als -cbl
übergeben.
Jobalterfilter
Sie können das maximale Alter gelöschter Einträge (in Tagen) konfigurieren, indem Sie max_listing_days
konfigurieren.
Überprüfen von Jobs im Terminal
Sie können die Jobliste in der Befehlszeile überprüfen:
column -s, -t < master_list.csv | less -#2 -N -S
Respektvolles Hinauszögern
Scrapen Sie Ihre Stellenausschreibungen respektvoll mit unseren integrierten Verzögerungsalgorithmen.
Um besser zu verstehen, wie die Verzögerung konfiguriert wird, sehen Sie sich dieses Jupyter-Notizbuch an, das den Algorithmus Schritt für Schritt mit Code und Visualisierungen aufschlüsselt.
Wiederherstellen verlorener Daten
JobFunnel kann Ihre Master-CSV aus Ihrem cache_folder
neu erstellen, in dem sich alle historischen Scrape-Daten befinden:
funnel --recover
Wird über CLI ausgeführt
Sie können JobFunnel nur über die CLI ausführen. Überprüfen Sie die Befehlsstruktur über:
funnel inline -h
JobFunnel löst kein CAPTCHA. Wenn Sie beim Scraping die Fehlermeldung Unable to extract jobs from initial search result page:
“ erhalten, wird angezeigt. Öffnen Sie dann diese URL in Ihrem Browser und lösen Sie das CAPTCHA manuell.
Für Mitwirkende und Entwickler, die an JobFunnel arbeiten möchten, führt dieser Abschnitt durch die Einrichtung der Entwicklungsumgebung und der Tools, die wir zur Aufrechterhaltung der Codequalität und -konsistenz verwenden.
Installieren Sie zunächst JobFunnel im Entwicklermodus . Dadurch werden alle erforderlichen Abhängigkeiten installiert, einschließlich Entwicklungstools wie Test-, Linting- und Formatierungsdienstprogrammen.
Um JobFunnel im Entwicklermodus zu installieren, verwenden Sie den folgenden Befehl:
pip install -e ' .[dev] '
Dieser Befehl installiert nicht nur das Paket in einem bearbeitbaren Zustand, sondern richtet auch Pre-Commit-Hooks für automatische Codequalitätsprüfungen ein.
Die folgenden Pre-Commit-Hooks sind so konfiguriert, dass sie automatisch ausgeführt werden, wenn Sie Änderungen festschreiben, um sicherzustellen, dass der Code konsistenten Stil- und Qualitätsrichtlinien entspricht:
Black
: Formatiert Python-Code automatisch, um Konsistenz sicherzustellen.isort
: Sortiert und organisiert Importe nach dem Black-Stil.Prettier
: Formatiert Nicht-Python-Dateien wie YAML und JSON.Flake8
: Überprüft Python-Code auf Verstöße gegen den Styleguide. Während das Pre-Commit-Paket installiert wird, wenn Sie pip install -e '.[dev]'
ausführen, müssen Sie die Hooks dennoch initialisieren, indem Sie den folgenden Befehl einmal ausführen:
pre-commit install
Die Pre-Commit-Hooks werden automatisch ausgeführt, wenn Sie versuchen, einen Commit durchzuführen. Wenn Formatierungsprobleme gefunden werden, beheben die Hooks diese (für Black und isort) oder warnen Sie vor Stilverstößen (für Flake8). Dadurch wird sichergestellt, dass der gesamte festgeschriebene Code den Qualitätsstandards des Projekts entspricht.
Sie können die Pre-Commit-Hooks auch jederzeit manuell ausführen mit:
pre-commit run --all-files
Dies ist nützlich, um die gesamte Codebasis vor dem Festschreiben oder im Rahmen einer größeren Codeüberprüfung zu überprüfen. Bitte beheben Sie alle Verstöße gegen den Styleguide (oder geben Sie einen Grund für die Ignorierung an), bevor Sie sie in das Repository übertragen.
Wir verwenden pytest
um Tests durchzuführen und sicherzustellen, dass sich der Code wie erwartet verhält. Die Codeabdeckung wird jedes Mal automatisch generiert, wenn Sie die Tests ausführen.
Um alle Tests auszuführen, verwenden Sie den folgenden Befehl:
pytest
Dadurch wird die Testsuite ausgeführt und automatisch ein Code-Coverage-Bericht generiert.
Wenn Sie einen detaillierten Codeabdeckungsbericht sehen möchten, können Sie Folgendes ausführen:
pytest --cov-report=term-missing
Dadurch wird direkt in Ihrer Terminalausgabe angezeigt, welche Codezeilen in der Testabdeckung fehlten.