挺喽蹂 发表于 2026-1-22 22:15:00

爬虫_20251211_Browser-Use_MCP_Selenium_爬虫+LLM

爬虫_20251211

Browser-Use

Browser-Use 下载安装

Github 仓库链接: https://github.com/browser-use/browser-use
检查 Windows 中是否已经安装 uv:
uv --version升级 uv 版本:
uv self update安装方法:

[*]用 pip 安装 uv:
pip install uv
[*]用官方脚本安装:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"通过检查 uv 的安装路径来判断自己的安装方式。在 PowerShell 里运行:
Get-Command uv如果是用 pip 安装的 uv(Python 包),路径通常是:
C:\Users\yuanz\AppData\Local\Programs\Python\Python311\Scripts\uv.exe
C:\Users\yuanz\AppData\Roaming\Python\Python311\Scripts\uv.exe如果是用官方脚本安装的 uv(独立可执行文件),路径通常是:
C:\Users\yuanz\.local\bin\uv.exe
C:\Users\yuanz\AppData\Local\uv\bin\uv.exe检查是否是 pip 管理的版本:
pip list | findstr uv解除 PowerShell .ps1 执行禁令:
# 在 PowerShell 以管理员身份运行的情况下执行,以解禁 PowerShell 的默认禁止执行 .ps1 脚本禁令
# 这条命令的意思是允许当前用户运行本地的 PowerShell 脚本(如 .venv\Scripts\activate.ps1),但仍阻止来自互联网且未签名的脚本。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser创建并激活虚拟环境:
cd <项目路径>
uv venv
.venv\Scripts\activate命令行前多出 (.venv) 说明虚拟环境激活成功。
安装 Browser-Use:
uv init
uv add browser-use
uv sync
uvx browser-use install安装 dotenv:
uv pip install python-dotenv创建 .env 文件注意事项:

[*]不要加引号,不要加空格。
[*].env 文件名一定要以点开头。
[*]确保它和你的 Python 脚本在同一文件夹下。
Browser-Use 使用示例:

# run_agent.py# -*- coding: utf-8 -*-"""一个开箱即用的 browser-use 示例:- 读取 .env 里的 GEMINI_API_KEY- 默认用【本机浏览器】;需要可一键切换到云端浏览器- 支持为网页流量设置“本地代理”,同时保证本地 CDP (127.0.0.1) 不走代理- 兼容 browser-use 0.8.x(Browser() 只支持 use_cloud/headless/proxy)"""import osimport sysimport tracebackfrom dotenv import load_dotenv# 1) 载入 .env(放在项目根目录,内容:GEMINI_API_KEY=你的key)load_dotenv()# 2) —— 关键:保证本地调试端口不走代理(否则会 JSONDecodeError)os.environ["NO_PROXY"]= "localhost,127.0.0.1"os.environ["no_proxy"]= "localhost,127.0.0.1"# 如果之前在系统/终端里设置过以下代理变量,这里强制清理(仅当前进程)for k in ("HTTP_PROXY", "HTTPS_PROXY", "http_proxy", "https_proxy"):    os.environ.pop(k, None)# 3) 根据你的代理情况配置网页访问代理(如果需要)#    例如你的本地 VPN 端口是 25378,则设为:PROXY_SERVER = os.getenv("PROXY_SERVER", "http://127.0.0.1:25378")USE_PROXY = os.getenv("USE_PROXY", "false").lower() in ("1", "true", "yes")# 4) 是否使用云端浏览器(本机不稳定时可切换为 True;需先执行 `browser-use auth` 完成登录)USE_CLOUD = os.getenv("USE_CLOUD", "false").lower() in ("1", "true", "yes")# 5) 其余参数HEADLESS = os.getenv("HEADLESS", "false").lower() in ("1", "true", "yes")MODEL_ID = os.getenv("GEMINI_MODEL", "gemini-2.5-flash")# 6) 导入 browser-use(放到 NO_PROXY 设置之后)from browser_use import Agent, ChatGoogle, Browserdef make_browser():    """    兼容 browser-use 0.7.x:    Browser() 支持的参数有限:use_cloud、headless、proxy、profile_name    其中 proxy 传递为 playwright 兼容的 dict:      {"server": "http://host:port", "username": "...", "password": "..."}    """    kwargs = {      "use_cloud": USE_CLOUD,      "headless": HEADLESS,    }    if (not USE_CLOUD) and USE_PROXY:      kwargs["proxy"] = {"server": PROXY_SERVER}      # 如需账号密码,改成:      # kwargs["proxy"] = {"server": PROXY_SERVER, "username": "your_user", "password": "your_pass"}    return Browser(**kwargs)# 不再需要文件解析和 CSV 生成功能,数据直接输出到 terminaldef main():    # 小检查:API Key    key = os.getenv("GEMINI_API_KEY")    if not key:      print("❌ 未检测到 GEMINI_API_KEY,请在项目根目录创建 .env 并写入:")      print("GEMINI_API_KEY=你的key")      sys.exit(1)    print("=== Config ===")    print(f"USE_CLOUD : {USE_CLOUD}")    print(f"HEADLESS: {HEADLESS}")    print(f"USE_PROXY : {USE_PROXY}({PROXY_SERVER if USE_PROXY else 'no proxy'})")    print(f"MODEL_ID: {MODEL_ID}")    print("NO_PROXY:", os.environ.get("NO_PROXY"))    browser = make_browser()    agent = Agent(      task="""            【严格动作协议】            - 你是浏览器自动化 Agent。你每一步“必须”返回一个且仅一个动作(action),动作必须是下列之一:            navigate / click / input / send_keys / wait / scroll / find_text / extract / evaluate / read_file / replace_file / done            - 除最终 `done` 外,不要输出任何自然语言或总结;若需要记录进度,使用 `replace_file`。            - 如不确定,也必须给出一个动作(例如 wait)。绝不能只输出思考(thinking)。            【任务】            1) 打开 https://www.cn-healthcare.com/ 。            2) 点击顶栏“搜索/放大镜”图标 ,先等待url变为 "https://www.cn-healthcare.com/search/",再等待输入框出现;            3) 然后在顶部的的输入框中输入:公立医院,并按 Enter,等待 10 秒;若无明显结果,再按一次 Enter 或再点搜索按钮。            4) 滚动到底部,等待 5 秒,只执行这一次操作。            4) 从当前页抽取文章卡片(仅 cn-healthcare.com 域):            - 每个卡片元素:             - 标题: 内的

下的文本             - 网址:

内的标签内的 href 参数内容             - 作者: 下的标签内的 span.author 的所有文本内容             - 发布日期: 下的内的所有文本内容(格式 yyyy/mm/dd)            5) 过滤:            - 仅保留 URL 含 /article /content /articlewm,且不是图片/视频/PDF 等后缀            - 日期在 2023-05-01 至 2025-10-31(含端点);相对时间如“刚刚/几天前”跳过            - URL 去重            【抽取与落地(必须)】            - 完成搜索与滚动后,执行一次 extract:            - 每个卡片元素:             - 标题: 内的

下的文本             - 网址:

内的标签内的 href 参数内容             - 作者: 下的标签内的 span.author 的所有文本内容             - 发布日期: 下的内的所有文本内容(格式 yyyy/mm/dd)            - 执行完 evaluate 后,Agent 立即结束(调用 done)。            - 数据会直接显示在 terminal 中,无需写入文件。            【禁止事项】            - 除最终 `done` 外,任何步骤禁止输出自然语言文本、代码块或截图。      """,      llm=ChatGoogle(model=MODEL_ID),      browser=browser,    )    # 运行 Agent,数据会直接输出到 terminal    try:      print("
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

缑莺韵 发表于 2026-1-24 08:10:32

很好很强大我过来先占个楼 待编辑

赏勿 发表于 2026-1-24 11:24:23

收藏一下   不知道什么时候能用到

章海 发表于 2026-1-26 02:54:12

用心讨论,共获提升!

黎娅茜 发表于 2026-1-30 04:05:29

新版吗?好像是停更了吧。

梁丘眉 发表于 2026-2-4 04:10:23

喜欢鼓捣这些软件,现在用得少,谢谢分享!

匣卒 发表于 2026-2-4 15:00:51

分享、互助 让互联网精神温暖你我

丧血槌 发表于 2026-2-7 07:37:02

鼓励转贴优秀软件安全工具和文档!

黎娅茜 发表于 2026-2-8 05:48:16

感谢分享

劳暄美 发表于 2026-2-8 11:33:03

这个好,看起来很实用

骆贵 发表于 2026-2-8 14:45:35

感谢分享,学习下。

史华乐 发表于 2026-2-9 08:54:44

过来提前占个楼

轩辕娅童 发表于 2026-2-9 12:42:29

这个有用。

纪音悦 发表于 2026-2-9 14:29:09

感谢,下载保存了

万俟谷雪 发表于 2026-2-9 20:36:48

热心回复!

碣滥 发表于 2026-2-10 12:43:58

谢谢分享,试用一下

汇干环 发表于 2026-2-10 19:56:21

感谢,下载保存了

喳谍 发表于 2026-2-11 05:48:30

过来提前占个楼

虹姥 发表于 2026-2-12 11:36:56

yyds。多谢分享

史华乐 发表于 2026-2-16 05:07:06

感谢分享
页: [1] 2
查看完整版本: 爬虫_20251211_Browser-Use_MCP_Selenium_爬虫+LLM