求人情報を.csv
ファイルにスクレイピングするための自動ツール。
JobFunnel には Python 3.11 以降が必要です。
pip install git+https://github.com/PaulMcInnis/JobFunnel.git
定期的にスクレイピングとレビューを実行することで、最も忙しい求人市場の騒音さえも遮断できます。
YAML 構成ファイルを使用するか、コマンド引数を渡すことによってジョブを検索できます。
以下のコマンドを実行して、デモの settings.yaml をダウンロードします。
wget https://git.io/JUWeP -O my_settings.yaml
注記:
できるだけ少ない検索キーワードを指定することをお勧めします (つまり、 Python
、 AI
)。
JobFunnel は現在、 CANADA_ENGLISH
、 USA_ENGLISH
、 UK_ENGLISH
、 FRANCE_FRENCH
、およびGERMANY_GERMAN
ロケールをサポートしています。
YAML 設定を使用してfunnel
実行し、マスター CSV ファイルに利用可能なプロバイダーからのジョブを入力します。
funnel load -s my_settings.yaml
マスター CSV ファイルを開き、ジョブごとのstatus
を更新します。
仕事の進捗状況を反映するには、 interested
」、 applied
、 interview
」またはoffer
に設定します。
この検索からジョブを削除するには、 archive
、 rejected
、またはdelete
に設定します。 block_list_file
内で「ブロックされた」ジョブを確認できます。
検索の自動化
JobFunnel は、crontab を使用して夜間に実行するように簡単に自動化できます
詳細については、crontab ドキュメントを参照してください。
独自のスクレーパーを作成する
スクレイパーを作成したい求人 Web サイトがある場合は、それを実装してください。実装の詳細については、ベース スクレイパーを確認してください。
リモートワーク
検索パラメーターのremoteness
希望のレベル (つまりFULLY_REMOTE
に一致するように設定することで、リモート作業を探すイライラするユーザー エクスペリエンスを回避します。
X 言語 / 求人 Web サイトのサポートの追加
JobFunnel は、ロケールやドメインをまたがって同じ求人 Web サイトから求人をスクレイピングすることをサポートします。サポートの追加に興味がある場合は、セッション ヘッダーとドメイン文字列を定義するだけで済みます。実装の詳細については、Base Scraper を参照してください。
ブロック企業
不要な会社を YAML のcompany_block_list
に追加するか、コマンド ラインで-cbl
として渡してフィルタリングします。
職務年齢フィルターmax_listing_days
を構成することで、スクレイピングされたリストの最大存続期間 (日数) を構成できます。
ターミナルでのジョブの確認
コマンドラインでジョブリストを確認できます。
column -s, -t < master_list.csv | less -#2 -N -S
敬意を持った遅刻
組み込みの遅延アルゴリズムを使用して、敬意を持って求人情報をスクレイピングします。
遅延の構成方法をよりよく理解するには、コードと視覚化を使用してアルゴリズムを段階的に説明するこの Jupyter Notebook を確認してください。
失われたデータの回復
JobFunnel は、すべての履歴スクレイピング データが保存されているcache_folder
からマスター CSV を再構築できます。
funnel --recover
CLIによる実行
CLI のみを使用して JobFunnel を実行できます。次の方法でコマンド構造を確認してください。
funnel inline -h
JobFunnel は CAPTCHA を解決しません。スクレイピング中にUnable to extract jobs from initial search result page:
」エラーが発生した場合。次に、ブラウザでその URL を開き、CAPTCHA を手動で解決します。
JobFunnel での作業を希望する寄稿者や開発者向けに、このセクションでは開発環境のセットアップと、コードの品質と一貫性を維持するために使用するツールについて説明します。
まず、JobFunnel を開発者モードでインストールします。これにより、テスト、リンティング、フォーマット ユーティリティなどの開発ツールを含む、必要な依存関係がすべてインストールされます。
JobFunnel を開発者モードでインストールするには、次のコマンドを使用します。
pip install -e ' .[dev] '
このコマンドは、パッケージを編集可能な状態でインストールするだけでなく、自動コード品質チェックのためのコミット前フックも設定します。
次のコミット前フックは、コードが一貫したスタイルと品質のガイドラインに従っていることを確認するために、変更をコミットするときに自動的に実行されるように構成されています。
Black
: 一貫性を確保するために Python コードを自動的にフォーマットします。isort
: Black スタイルに従ってインポートを並べ替えて整理します。Prettier
: YAML や JSON などの Python 以外のファイルをフォーマットします。Flake8
: Python コードのスタイル ガイド違反をチェックします。 pip install -e '.[dev]'
を実行するとコミット前パッケージがインストールされますが、次のコマンドを 1 回実行してフックを初期化する必要があります。
pre-commit install
コミットを試行すると、コミット前フックが自動的に実行されます。書式設定の問題が見つかった場合、フックはそれらを修正するか (Black および isort の場合)、スタイル違反について警告します (Flake8 の場合)。これにより、コミットされたすべてのコードがプロジェクトの品質基準を満たしていることが保証されます。
次のようにして、いつでも事前コミットフックを手動で実行することもできます。
pre-commit run --all-files
これは、コミットする前に、または大規模なコード レビューの一部として、コードベース全体をチェックするのに役立ちます。リポジトリにコミットする前に、スタイル ガイド違反をすべて修正してください (または無視する理由を指定してください)。
pytest
使用してテストを実行し、コードが期待どおりに動作することを確認します。コード カバレッジはテストを実行するたびに自動的に生成されます。
すべてのテストを実行するには、次のコマンドを使用します。
pytest
これにより、テスト スイートが実行され、コード カバレッジ レポートが自動的に生成されます。
詳細なコード カバレッジ レポートを表示したい場合は、次を実行できます。
pytest --cov-report=term-missing
これにより、テスト カバレッジで欠落したコード行がターミナル出力に直接表示されます。