
这里将介绍一种强大的解决方案:利用人工智能和浏览器自动化技术,大幅简化你的搜索就业信息流程。我们将深入探讨一个基于browser-use库构建的Python脚本,打造一个可自动搜索、分析、记录就业信息并辅助上传简历的智能体。这个智能体能够根据你的指令浏览网站、提取关键信息,甚至与网页元素进行交互,而这一切都由大语言模型驱动。主要目标如下:自动化搜索和筛选数据分析相关职位。智能提取职位信息和技术要求。自动上传简历并填写申请表单。生成技术栈思维导图和求职分析报告。提高求职效率,减少重复性工作。
技术框架
browser-use是本项目的核心组件,它是一个专为智能体浏览器交互而设计的Python库。根据其GitHub页面的介绍,该库通过集成大语言模型来实现智能化的网页操作。其核心特性如下。智能网页理解:基于视觉和文本双重分析,准确理解网页结构和内容语义。自然语言交互:支持使用自然语言指令直接控制浏览器操作,降低使用门槛。多模态感知:融合视觉信息和文本内容,实现更准确的页面元素识别和操作决策。动态适应性:具备处理不同网站布局和交互模式的能力,适应性强。智能容错:内置异常处理和重试机制,提高任务执行的稳定性和成功率。
除了核心的browser-use库,该智能体还集成了以下主要组件。
LangChain:大语言模型集成框架,负责对话管理和任务编排。
Google Gemini API:提供强大的自然语言理解和成能力。
PyPDF2:PDF文档处理库,用于解析简历文件内容。
Pydantic:数据验证和序列化框架,确保数据类型安全。
Playwright:底层浏览器控制引擎,提供跨平台浏览器操作。
#组合所有指令
#注意:原始脚本中的memory、action和reflection 是变量名
#这里改为更具描述性的名称
ground_task =(
ground_task + memory_instructions + account_profile + action_instructions + reflection_instructions
)
#大语言模型配置:支持多种大语言模型API
#可使用 ChatOpenAI, ChatAnthropic, ChatGoogleGenerativeAI等
#(脚本中已包含 Gemini 和OpenAI via GitHub的配置)
_token_b64 ="[API_TOKEN_BASE64]"
token =base64.b64decode(_token_b64).decode ("utf-8")
#使用Gemini Pro
model ChatGoogleGenerativeAI(
model="gemini-2.5-flash" api_kev=SecretStr(token)
)
planner_LLM =ChatGoogleGenerativeAI(
model="gemini-2.5-pro", api_key=SecretStr(token))
#或者使用OpenAI via GitHub
#token_openai_github ="[GITHUB_PAT_TOKEN]" #替换为你的 GitHub PAT
#model =ChatOpenAI(
# base_url="https://*****/inference",
# model="openai/gpt-4o",
# api_key=SecretStr(token_openai_github),
#)
#planner_LLM = ChatOpenAI(
# base_url="https://******/inference",
# model="openai/gpt-4o",
# api_key=SecretStr(token_openai_github),
# )
message_context =(
f"任务执行上下文信息:\n"
f"1.总体目标:分析10000个数据分析相关的职位描述\n"
f"2.当前进度:已完成{total_applications}个职位的分析\n"
f"3.剩余任务:还需分析{10000-total applications}个职位\n"
f"4.完成度:{(total_applications/10000)*100:.lf}%\n"
f"5.重点关注:杭州香港地区金融行业的合规、KYC、客服相关职位\n"
f"6.技术栈重点:数据分析、AI/ML、合规技术等相关技能\n"
f"7.输出要求:结构化数据收集,为创建思维导图做准备\n"
)
while True:
logger.info("开始运行数据分析助手...")
browser =Browser(
config=BrowserConfig(
browser_binary_path=(
"/Applications/Google Chrome.app/Contents/MacoS/GoogleChrome"
),
disable_security=True,
headless=False,
)
)
async with await browser.new_context () as context:
try:
agent Agent(
task=ground_task,
message_contextmessage_context,
LLM=model,
planner_LLM=planner_LLM,
use_vision_for_planner=True,
planner_interval=4,
controller=controller,
max_failures=3,
use_vision=True,
browser_context=context,
save_conversation_path="logs/find_apply_jobs",
)
agent.state =AgentState()
history =await agent.run()
if history:
logger.info(f"访问的URL数量:{len(history.urls())}")
#其他日志
new_total_applications =total_applications
if os.path.exists (APPLICATION_STATS_FILE):
try:
with open(
APPLICATION_STATS_FILE, "r", encoding="utf-8") as f:
stats =json.load(f)
new_total_applications =stats.get(
"total_applications", 0
)
except Exception as e:
logger.error(f"读取“申请/分析”统计文件时出错:{e}")
new_applications =(
new_total_applications - total_applications
)
logger.info(
f"本次运行新增了{new_applications}个职位分析,"
f"当前总计:{new_total_applications}/10000"
)
await asyncio.sleep(1)
logger.info("\n等待1秒后继续下一轮......")
except Exception as e:
logger.error(f"agent 运行失败,全部重置:{str(e)}")
await asyncio.sleep(1)
continue
await browser.close()
if__name__ = "__main__":
asyncio. run(main())
此部分详细描述了如何构建和组合给大语言模型的指令,以及智能体的初始化和主循环。
运行演示脚本与成果展示
确保满足这些前提条件:仔细检查Python 版本、已安装的库、Playwright浏览器驱动程序、简历文件和应用程序接口密钥。
1.配置大语言模型
在脚本中,确保所需的大语言模型配置已激活,并且应用程序接口密钥已正确设置。
2.验证浏览器路径
验证 BrowserConfig 中的 browser_binary_path 指向本地的Chrome安装位置。
3.运行脚本
python your_script_name.py
一个浏览器窗口被打开(因为headless=False),你将看到智能体开始浏览网站、输入搜索查询,并根据提供的详尽提示提取就业信息。监控控制台输出和job_search.log 文件以了解进度和任何错误。
4.运行结果与成果展示预期
运行脚本后,你可以期待以下成果。
自动生成的职位信息CSV文件,包含职位名称、公司、薪资等详细信息。
结构化的技术元数据,可用于生成思维导图。
详细的日志文件,记录整个搜索和分析过程。
统计报告,显示已分析的职位数量和进度。
可视化的浏览器操作过程,便于调试和优化。

7726

被折叠的 条评论
为什么被折叠?



