用於將職位發布抓取到.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 文件。
編寫自己的爬蟲
如果您想為招募網站編寫爬蟲,歡迎您實現它,查看基本爬蟲以了解實作細節。
遠距工作
透過設定搜尋參數remoteness
來符合您所需的等級(即FULLY_REMOTE
,繞過尋找遠端工作的令人沮喪的使用者體驗。
添加對 X 語言/招聘網站的支持
JobFunnel 支援跨區域設定和網域從同一招聘網站抓取職位。如果您有興趣添加支持,您可能只需要定義會話標頭和域字串,請查看 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 無法解決驗證碼問題。如果在抓取時收到「 Unable to extract jobs from initial search result page:
錯誤。然後在瀏覽器上開啟該網址並手動解決驗證碼。
對於想要在 JobFunnel 上工作的貢獻者和開發人員,本節將指導您設定開發環境以及我們用來維護程式碼品質和一致性的工具。
首先,以開發人員模式安裝 JobFunnel 。這將安裝所有必要的依賴項,包括測試、linting 和格式化實用程式等開發工具。
若要在開發者模式下安裝 JobFunnel,請使用下列命令:
pip install -e ' .[dev] '
此命令不僅以可編輯狀態安裝包,而且還設定預提交掛鉤以進行自動程式碼品質檢查。
以下預提交掛鉤配置為在您提交變更時自動執行,以確保程式碼遵循一致的樣式和品質準則:
Black
:自動格式化Python程式碼以確保一致性。isort
:根據 Black 風格對導入進行排序和組織。Prettier
:格式化非 Python 文件,例如 YAML 和 JSON。Flake8
:檢查 Python 程式碼是否違反樣式指南。雖然在執行pip install -e '.[dev]'
時安裝了預提交包,但您仍然需要透過執行以下命令來初始化掛鉤:
pre-commit install
當您嘗試提交時,預提交掛鉤將自動運行。如果發現任何格式問題,掛鉤將修復它們(對於 Black 和 isort),或警告您有關樣式違規的問題(對於 Flake8)。這可確保所有提交的程式碼符合專案的品質標準。
您也可以隨時使用以下命令手動執行預提交掛鉤:
pre-commit run --all-files
這對於在提交之前檢查整個程式碼庫或作為更大的程式碼審查的一部分非常有用。在提交到儲存庫之前,請修復所有樣式指南違規行為(或提供忽略的原因)。
我們使用pytest
來運行測試並確保程式碼的行為符合預期。每次執行測試時都會自動產生程式碼覆蓋率。
若要執行所有測試,請使用以下命令:
pytest
這將執行測試套件並自動產生程式碼覆蓋率報告。
如果您想查看詳細的程式碼覆蓋率報告,您可以執行:
pytest --cov-report=term-missing
這將直接在終端輸出中顯示測試覆蓋範圍中遺漏的程式碼行。