{"repo":"teusonho/JobCrawlerSystem","free":true,"listed":false,"github":"https://github.com/teusonho/JobCrawlerSystem","clone":"git clone https://github.com/teusonho/JobCrawlerSystem.git","description":"爬虫智能体系统采集Boss直聘岗位列表，基于Django+Scrapy+Agent搭建","language":"Python","stars":12,"topics":["agent","celery","django","redis","scrapy"],"license":null,"category":"databases-storage","readme_excerpt":"爬虫智能体系统采集Boss直聘岗位列表 1.功能介绍 该系统基于Django+Scrapy+Agent搭建，主要用于采集boss直聘的岗位信息，基于Django框架搭建web端，基于Scrapy框架搭建爬虫端，二者通过celery中间件和Redis消息队列通信。Agent智能体部分基于langchain框架搭建，使用“qwen3-max”作为聊天模型，基于streamlit开发前端页面。 1.1 web端功能 进入admin界面，通过以下方式下发爬虫任务： (1)新建；(2)批量导入；(3)celery定时下发；(4)API下发，支持GET和POST请求，URL格式：/spider/api/boss/createSpider?query=Java&city=北京&count=10。 批量导入参考“Django\\CrawlerOperationProject\\爬虫任务模版.csv”文件。 domain字段默认zhipin.com； city字段可填写多城市，使用中文逗号\"，\"或英文逗号\",\"做分隔符（不支持混用）； count字段表示每个城市爬取多少岗位； query字段用于boss直聘搜索。 通过celery beat定时下发爬虫任务。 爬虫任务下发后生成任务ID，可通过URL查询该任务的采集详情，如下图。 1.2 爬虫端功能 爬虫端接收到任务 (1)启动浏览器访问boss直聘获取cookie； (2)采用POST发包获取对应城市编码； (3)解析后再携带参数重新发包获取岗位列表，得到为失败响应则延迟重试步骤(1)(3)，直到成功或达到最大尝试次数； (4)任务结束后保存Mysql数据库并通过消息队列redis返回。 1.3 智能体端功能 智能体的执行逻辑如下： (1)接收用户输入，提取城市和职位； (2)查询关键词和城市在数据库是否已有任务结果； (3)若无结果则下发爬虫任务采集岗位信息； (4)若已有任务ID，则携带任务ID生成查询语句，传入SQL Agent； (5)SQL Agent解析查询语句使用工具查询，并返回查询结果 (6)根据查询结果，再分析岗位信息和推荐岗位链接。 智能体具有上下文记忆的功能，对话示例如下： 2.配置 系统分为两个项目分别部署，web端功能依赖于爬虫端，智能体功能依赖于web端。 2.1 web端配置 Django项目需修改，\\CrawlerOperationProject\\CrawlerOperationProject\\settings.py文件以下参数，用于配置Mysql和Redis，采集的岗位信息有web端和爬虫端双端存储。 celery beat定时下发的任务，需设置CrawlerOperationProject\\celery.py文件 2.2 爬虫端配置 Scrapy项目需修改，\\JobCrawlerProject\\JobCrawlerProject\\settings.py文件以下参数，用于配置浏览器、Mysql和Redis，配置的edge或chrome浏览器需保留登录账户。 2.3 智能体配置 Agent项目需修改，\\JobAgentProject\\config文件夹下的各yml参数，用于配置Mysql数据库链接和模型，项目使用通义千问作为聊天模型，若需适配更改，\\JobAgentProject\\model\\factory.py文件。 3.启动 3.1 web端启动 进入Django项目的 CrawlerOperationProject 目录下（manage.py所在目录），激活虚拟环境。 执行迁移 ","default_branch":null,"files":null,"tree":[],"storefront":"/r/teusonho","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/teusonho/JobCrawlerSystem/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}