Skip to content


篡改猴脚本,可以显示招聘网站职位首次发布时间的信息增强工具

🏷️ 牛牛查求职助手 牛牛查favicon

Version License Platform Support

智能招聘信息增强工具 – 让求职更安全、更高效

牛牛查favicon

📝 项目简介

牛牛查求职助手是一款专为求职者设计的浏览器油猴脚本,旨在为招聘网站提供强大的信息增强功能。通过智能识别和数据补充,帮助求职者更好地了解公司信息,识别潜在风险,提高求职成功率。

✨ 核心功能

🏷️ 公司标签系统

  • ⚠️ 诈骗公司识别 – 红色警告标签,自动识别已知诈骗公司
  • 🔄 外包公司标记 – 橙色提醒标签,帮助了解工作性质
  • 📚 培训机构识别 – 蓝色信息标签,识别培训转岗机构
  • 🚨 自定义标签 – 紫色标记,支持个性化公司标记

🔍 公司信息查询

  • 一键查询 – 快速跳转至天眼查、爱企查、企查查等平台
  • 多平台支持 – 集成百度搜索、工商信息查询等多个渠道
  • 便捷操作 – 鼠标悬停显示查询选项,点击直接跳转

📅 职位时间追踪

  • 首发时间显示 – 显示职位最初发布时间
  • 更新时间追踪 – 跟踪职位信息更新记录
  • 颜色编码 – 用不同颜色标识职位新鲜度
    • 🟢 7天内:新鲜职位
    • 🔵 14天内:较新职位
    • 🟡 2个月内:一般职位
    • 🔴 3个月内:较旧职位
    • ⚫ 3个月以上:过期职位

💼 职位详情增强

  • 学历要求显示 – 自动提取并显示学历要求
  • 工作经验标注 – 清晰展示经验要求
  • 职位描述预览 – 快速浏览职位详细信息

🔗 链接智能解码

  • 加密链接解码 – 自动解码Base64等加密链接
  • 真实地址显示 – 显示链接的真实目标地址
  • 安全访问 – 新窗口打开,保护主页面安全

🌍 支持平台

平台 支持状态 功能完整度
前程无忧 (51job.com) ✅ 完全支持 🌟🌟🌟🌟🌟
BOSS直聘 (zhipin.com) ✅ 完全支持 🌟🌟🌟🌟🌟
牛企直聘 (niuqizp.com) ✅ 完全支持 🌟🌟🌟🌟⭐

🚀 快速开始

安装步骤

  1. 安装篡改猴 (Tampermonkey) 篡改猴 (Tampermonkey) 是拥有 超过 1000 万用户 的最流行的浏览器扩展之一。 它适用于 Chrome、Microsoft Edge、Safari、Opera Next 和 Firefox。 有些人也会把篡改猴(Tampermonkey)称作油猴(Greasemonkey),尽管后者只是一款仅适用于 Firefox 浏览器的浏览器扩展程序。 以下站点可能需要施魔法

Chrome 上的 Tampermonkey
Chrome 上的 Tampermonkey

要使用用户脚本,您首先需要安装一个用户脚本管理器。您可以根据您自己当前使用的浏览器来选择一个用户脚本管理器。

桌面端

移动端(Android)

移动端(iOS)

  1. 安装脚本

    方式一:直接安装(推荐)

    点击:安装脚本

    方式二:手动安装

    1. 打开项目地址,复制文件内容 tampermonkey/牛牛查求职助手-招聘网站信息增强工具.user.js
    2. 在Tampermonkey中创建新脚本
    3. 粘贴代码并保存

    方式三:脚本站安装

    1. Tampermonkey官网
    2. Greasy Fork脚本站
    3. OpenUserJS脚本站
    4. 搜索”牛牛查求职助手”
    5. 粘贴代码并保存
  2. 开始使用

    • 访问支持的招聘网站
    • 脚本将自动运行并显示增强信息
    • 点击右下角的🏷️按钮查看功能介绍

使用说明

  1. 查看公司标签

    • 在职位列表中自动显示公司风险标签
    • 点击标签查看详细信息和风险说明
  2. 查询公司信息

    • 点击”🔍 牛牛查公司”按钮
    • 选择查询平台(天眼查、爱企查等)
    • 新窗口打开查询结果
  3. 查看职位时间

    • 职位信息区域显示发布和更新时间
    • 颜色编码帮助识别职位新鲜度

🛠️ 开发信息

技术栈

  • JavaScript – 核心脚本语言
  • Tampermonkey API – 浏览器扩展接口
  • CSS3 – 样式美化
  • DOM操作 – 页面元素增强

项目结构

niuniuchajobhunting/
├── tampermonkey/
│   └── icons/                                      # 图标
│   └── screenshot/                                 # 截图
│   └── 牛牛查求职助手-招聘网站信息增强工具.user.js    # 正式版本
│   └── README.md                                   # 项目说明
└── README.md                                       # 项目说明

核心配置

// 网站配置
const siteConfigs = {
  'we.51job.com': { /* 51job配置 */ },
  'www.zhipin.com': { /* BOSS直聘配置 */ },
  'campus.niuqizp.com': { /* 牛企直聘配置 */ }
};

// 公司标签数据库
const COMPANY_BLACKLISTS = {
  scam: { /* 诈骗公司名单 */ },
  outsourcing: { /* 外包公司名单 */ },
  training: { /* 培训机构名单 */ },
  custom: { /* 自定义标签 */ }
};

🔧 自定义配置

添加自定义公司标签

您可以编辑脚本中的COMPANY_BLACKLISTS对象来添加自定义公司标签:

// 在custom分类中添加需要标记的公司
custom: {
    name: '自定义',
    emoji: '🚨',
    color: '#9C27B0',
    companies: [
        '您要标记的公司名称1',
        '您要标记的公司名称2',
        // 更多公司...
    ]
}

修改查询服务

可以自定义公司查询服务:

const QUERY_SERVICES = [
    { name: '🔍 百度', url: 'https://www.baidu.com/s?wd=' },
    { name: '👁️ 天眼查', url: 'https://www.tianyancha.com/search?key=' },
    // 添加更多查询服务...
];

📊 功能特点

🧠 智能识别

  • 模糊匹配算法 – 精准识别公司类型,避免漏检
  • 多维度匹配 – 支持公司全名、简称、关键词匹配
  • 动态更新 – 实时监听页面变化,自动更新信息

🎨 用户体验

  • 响应式设计 – 适配桌面和移动设备
  • 无侵入式 – 不影响原网站功能和布局
  • 性能优化 – 高效DOM操作,不影响页面加载速度

🔒 隐私安全

  • 本地处理 – 所有数据在本地处理,不上传个人信息
  • 开源透明 – 代码完全开源,保证安全可靠
  • 无广告 – 纯净工具,专注功能实现

📸 功能截图

51job职位列表截图 51job职位列表

boss职位列表截图 boss职位列表

boss职位列表

牛企直聘职位详情截图 牛企直聘职位详情

🤝 贡献指南

欢迎为项目做出贡献!您可以通过以下方式参与:

🐛 报告问题

  • Issues中报告Bug
  • 提供详细的复现步骤和环境信息
  • 附上错误截图或日志信息

💡 功能建议

  • 提交新功能建议和改进意见
  • 分享使用经验和优化建议
  • 建议支持新的招聘平台

📝 代码贡献

  1. Fork本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建Pull Request

📋 公司名单更新

帮助我们完善公司黑名单数据库:

  • 提供诈骗公司信息
  • 更新外包公司名单
  • 补充培训机构信息

📄 许可证

本项目采用 MIT License 许可证。

💬 联系方式

🙏 致谢

感谢以下项目和服务:

  • Tampermonkey – 强大的用户脚本管理器
  • jQuery – 高效的JavaScript库
  • 各大招聘平台 – 为求职者提供服务平台
  • 所有贡献者和用户 – 让项目变得更好

⭐ Star History

如果这个项目对您有帮助,请考虑给项目一个Star ⭐,这是对我们最大的鼓励!


让求职更安全,让选择更明智!
牛牛查求职助手 – 您的智能求职伙伴

Posted in 技术, 浏览器插件.

Tagged with , , .


B站职位爬虫playwright使用指南

B站职位爬虫使用指南

1. 项目简介

这是一个基于 Playwright 的 B 站职位信息爬虫,能够自动化爬取 B 站官网发布的社会招聘和校园招聘职位信息,并将数据保存为 JSON 格式的文件。

项目地址

2. 技术栈与依赖

  • Python: 程序开发语言
  • Playwright: 浏览器自动化工具,用于模拟浏览器行为获取页面数据
  • 第三方库: time, random, json, datetime, argparse, re, os, sys, typing

3. 安装与配置

3.1 安装依赖

# 安装 Playwright
pip install playwright

# 安装 Playwright 浏览器驱动
playwright install

3.2 项目结构

├── bilibili/
│   ├── test_playwright.py  # 主程序文件
│   ├── data/               # 数据保存目录
│   └── howto_playwright.md            # 使用指南文档

4. 运行方式

程序支持通过命令行参数控制爬取行为,主要参数包括招聘类型、爬取间隔、代理设置、起始页和最大爬取页数等。

4.1 基本语法

python test_playwright.py [参数选项]

4.2 可用参数

参数 说明 示例
--type 招聘类型 (social=社会招聘, campus=校园招聘, all=全部) --type social
--sleep 页面爬取间隔(秒) --sleep 2.5
--proxy 代理服务器地址 --proxy http://127.0.0.1:7890
--start-page 起始页码 --start-page 3
--max-page 最大抓取页数 (0为不限制) --max-page 10 d

4.3 运行示例

爬取校园招聘职位

python test_playwright.py --type campus --sleep 1.5 --max-page 5

使用代理爬取社会招聘职位

python test_playwright.py --type social --proxy http://127.0.0.1:7890 --start-page 2

5. 程序运行流程

整个程序的运行流程可以分为以下几个主要阶段:

5.1 参数解析与初始化

  1. 解析命令行参数,确定爬取配置
  2. 初始化爬虫开始时间
  3. 根据招聘类型确定爬取的URL

5.2 浏览器初始化

程序通过 init_browser() 函数初始化 Playwright 和浏览器环境:

  1. 根据操作系统类型决定是否使用无头模式(Linux下默认无头,其他系统默认有界面)
  2. 启动 Chromium 浏览器,配置浏览器参数(禁用自动化控制检测、禁用扩展等)
  3. 创建浏览器上下文,设置随机 User-Agent
  4. 创建新的页面对象并设置超时时间

5.3 页面访问与数据获取

  1. 首次访问职位列表页面(带重试机制)
  2. 获取职位类型和工作地点等字典数据
  3. 解析页面,获取最大页码数
  4. 根据设置的起始页和最大爬取页数,开始循环爬取

5.4 职位信息提取

对于每一页的职位信息,程序执行以下步骤:

  1. 加载当前页职位列表
  2. 获取职位卡片列表
  3. 遍历每个职位卡片:
    • 提取列表页上的基本信息(职位标题、地点、类别、工作类型、发布日期)
    • 模拟点击职位标题,打开新窗口查看详情
    • 在详情页提取更详细的职位信息
    • 构建完整的职位数据字典
  4. 将当前页数据添加到总数据列表
  5. 定期保存数据(每收集50条),避免意外丢失

5.5 数据保存

程序使用 save_job_list_data() 函数将爬取的数据保存为 JSON 文件:

  1. 创建 data 目录(如果不存在)
  2. 生成包含时间戳的文件名
  3. 将职位数据列表保存为 JSON 格式

5.6 程序结束处理

  1. 关闭页面、浏览器上下文和浏览器
  2. 执行垃圾回收
  3. 生成并打印爬取报告(包括开始时间、总页数、爬取页数、收集职位总数、是否成功、完成时间等信息)

6. 数据结构

爬取的职位数据包含以下字段:

{
  "position_id": "职位ID",
  "position_title": "职位名称",
  "location": "工作地点",
  "category": "职位类别",
  "job_type": "工作类型",
  "post_date": "发布日期",
  "position_url": "职位详情页URL",
  "position_detail": {
    "position_id": "职位ID",
    "position_url": "职位详情页URL",
    "title": "职位名称",
    "location": "工作地点",
    "category": "职位类别",
    "job_type": "工作类型",
    "post_date": "发布日期",
    "position_content": "职位详情内容"
  },
  "crawl_time": "爬取时间"
}

7. 防反爬策略

程序包含多种防反爬策略:

  1. 随机 User-Agent:每次运行随机选择一个浏览器标识
  2. 随机爬取间隔:在指定的爬取间隔基础上随机波动
  3. 指数退避重试:请求失败时使用指数退避算法进行重试
  4. 模拟真人行为:点击操作前加入随机延迟
  5. 禁用自动化检测:配置浏览器参数,避免被网站检测为自动化工具

8. 常见问题与解决方案

8.1 浏览器启动失败

问题:程序无法启动浏览器,报初始化错误

解决方案

  • 确认 Playwright 已正确安装:playwright install
  • 检查系统权限,确保有足够权限启动浏览器
  • 对于 Linux 系统,可能需要安装额外的依赖库

8.2 页面加载超时

问题:页面加载超时,无法获取职位信息

解决方案

  • 增加 --sleep 参数值,延长爬取间隔
  • 使用 --proxy 参数设置代理,避免IP被限制
  • 检查网络连接是否稳定

8.3 职位数据为空

问题:爬取完成但数据为空

解决方案

  • 检查网站结构是否发生变化(可能需要更新选择器)
  • 确认爬取的URL是否正确
  • 尝试调整起始页和最大爬取页数参数

9. 代码优化建议

  1. 错误处理增强:可以增加更细粒度的错误处理,针对不同类型的错误采取不同的重试策略
  2. 并发爬取:考虑引入异步或多线程爬取,提高效率(注意控制并发数,避免触发反爬)
  3. 数据去重:增加数据去重机制,避免重复爬取相同的职位信息
  4. 定时任务:结合定时任务工具,实现定期自动爬取
  5. 日志系统:引入专业的日志系统替代 print,方便问题排查和监控

10. 注意事项

  1. 请遵守网站的 robots.txt 规则和使用条款
  2. 合理设置爬取频率,避免对网站服务器造成过大压力
  3. 爬虫仅供学习和研究使用,请勿用于非法用途
  4. 定期更新代码以适应网站结构的变化

通过本指南,您应该能够理解并成功运行 B 站职位爬虫程序。如有任何问题或建议,欢迎提交反馈。

Posted in 爬虫spider.

Tagged with , .


Linux 安装 Playwright

Playwright

Playwright是由Microsoft开发的现代化端到端(E2E)测试框架,支持Chromium、Firefox、WebKit等主流浏览器,并提供跨语言API(JavaScript/TypeScript、Python、Java、C#)。

它以速度快、稳定性高、异步支持著称,尤其适合复杂Web应用的自动化测试和爬虫开发。以下是从零开始的完整入门指南:

Playwright 官网

https://playwright.dev/

Playwright python 文档

https://playwright.dev/python/docs/intro

Playwright node.js 文档

https://playwright.dev/docs/intro

Playwright java 文档

https://playwright.dev/java/docs/intro

Playwright .NET 文档

https://playwright.dev/dotnet/docs/intro

Playwright 中文文档可以在以下地址找到:

https://playwright.nodejs.cn/

为什么选择Playwright?

Playwright是由微软开发的开源自动化测试工具,旨在提供跨浏览器的自动化测试支持。与Selenium等传统工具不同,Playwright不仅支持Chrome、Firefox和WebKit等主流浏览器,还提供了以下显著优势:

  • 跨浏览器支持:能够在多个浏览器(包括Chromium、Firefox和Safari)上进行自动化测试,确保软件在不同平台的兼容性。

  • 强大的功能支持:支持页面元素的动态交互、网络请求拦截、浏览器上下文模拟等高级功能,能够高效地模拟用户操作。

  • 快速执行:Playwright具有极高的执行速度,适用于需要快速反馈的自动化测试任务。

环境安装(以Python为例)

Playwright有Node.js、Python、C# 和 Java语言版本,本文介绍Python版本的Playwright使用方法。 Playwright的Python版本仓库地址:https://github.com/microsoft/playwright-python

安装Python(≥3.7)并验证: python –version # 需输出3.7+ 安装Playwright库: pip install playwright

或者使用镜像源安装

pip install playwright -i https://mirrors.aliyun.com/pypi/simple/

Downloading playwright-1.48.0-py3-none-manylinux1_x86_64.whl (38.2 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 38.2/38.2 MB 8.7 MB/s eta 0:00:00
Downloading greenlet-3.1.1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (605 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 606.0/606.0 kB 18.3 MB/s eta 0:00:00
Downloading pyee-12.0.0-py3-none-any.whl (14 kB)
Installing collected packages: pyee, greenlet, playwright
Successfully installed greenlet-3.1.1 playwright-1.48.0 pyee-12.0.0

指定版本安装

$ pip install playwright==1.48.0
$ python -m playwright install

安装浏览器内核(默认Chromium):

查看所有支持的浏览器:

playwright install --help

安装浏览器内核(windows 默认Chromium)

playwright install chromium # 可选firefox/webkit

Downloading Chromium 139.0.7258.5 (playwright build v1181) from https://cdn.playwright.dev/dbazure/download/playwright/builds/chromium/1181/chromium-win64.zip 

安装浏览器内核(linux下)

BEWARE: your OS is not officially supported by Playwright; downloading fallback build for ubuntu20.04-x64.
Downloading Chromium 130.0.6723.31 (playwright build v1140) from https://playwright.azureedge.net/builds/chromium/1140/chromium-linux.zip
164.5 MiB [====================] 100% 0.0s

在防火墙或代理后面安装

pip install playwright
HTTPS_PROXY=https://192.0.2.1 playwright install

Playwright默认安装路径

Playwright 将 Chromium、WebKit 和 Firefox 浏览器下载到操作系统特定的缓存文件夹中:

Windows 上的 %USERPROFILE%\AppData\Local\ms-playwright

macOS 上的 ~/Library/Caches/ms-playwright

Linux 上的 ~/.cache/ms-playwright

这些浏览器安装后将占用数百兆磁盘空间

使用环境变量设置安装路径.将浏览器下载到特定位置

pip install playwright
PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers python -m playwright install
编写python爬虫脚本,进行百度模拟搜索。

python_wright_baidu.py

#!/usr/bin/env python3
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    #for browser_type in [p.chromium, p.firefox, p.webkit]:
        #browser = browser_type.launch()
        #print(browser_type.name)

        browser = p.chromium.launch(headless=False)
        page = browser.new_page()
        #page.goto('http://playwright.dev')
        page.goto("https://www.baidu.com")
        print(page.title())
        print(page.url)
        #print(page.content())

        # 输入搜索词并提交
        page.locator("textarea#chat-textarea").fill("c1g军火库")
        page.locator("button#chat-submit-button").click()        
        #page.screenshot(path=f'example-{browser_type.name}.png')
        page.wait_for_timeout(1000)  # 简单等待(实际推荐用事件等待)
        results = page.locator("#content_left").all()
        for item in results:
            print(item.inner_text())        
        browser.close()

使用drissionpage可以参考 Linux 安装drissionpage 和chrome

Posted in 爬虫spider.

Tagged with .


OpenAI、Anthropic 禁止中国控股公司使用 Claude,AI 领域地缘政治博弈升级

2025 年 9 月 5 日,美国知名大模型公司 Anthropic 发布《更新对不受支持地区的销售限制》公告,宣布禁止多数股权由中国资本持有的集团或其子公司使用 Claude 等 AI 服务,无论公司运营地点在哪。这是美国 AI 公司首次出台此类政策,背后涉及复杂的多方面因素,对全球 AI 产业格局影响深远。

政策核心内容:Anthropic 新政策规定,只要公司直接或间接被中国公司持股超过 50%,就无法再使用 Claude 服务。这一限制不仅针对中国大陆企业,还涵盖其在全球各地的子公司,包括通过云服务间接接入的情况也被禁止。除中国外,俄罗斯、伊朗、朝鲜等被美国视为 “对手国家” 的实体也受此政策约束,直接客户和通过云服务访问的团体同样受到影响 。

官方给出的限制原因:Anthropic 声称,做出这一决策主要基于法律、监管和安全风险的考虑。他们认为中国控股公司可能因所在地区法律要求,被迫共享数据、配合情报机构,从而带来国家安全风险。此外,还担心这些公司利用 Claude 的能力开发服务,服务于对抗性军事和情报机构,以及通过技术手段推进自身 AI 研发,与美国及盟国的科技公司在全球市场竞争,威胁美国在 AI 领域的优势地位。

对不同主体的影响

  • 个人开发者:目前个人账号理论上还能使用,但未来存在被限制的风险。随着政策进一步收紧,个人获取先进 AI 工具的难度可能加大。
  • 企业团队:国内公司此前通过境外子公司间接使用 Claude 的途径被彻底切断。这意味着相关企业需要寻找替代方案,如转向 OpenAI、Google Gemini 或国内大模型,增加了企业的技术转型成本和业务调整压力。
  • 行业生态:许多基于 Claude 二次开发的 SaaS 和 AI 应用,不得不改变技术路线。这可能促使行业加速技术替代和创新,推动国内 AI 技术的发展,但短期内会造成行业内的动荡和资源重新配置。

政策背后的地缘政治因素:这一政策与美国整体对华科技政策一致,是大国博弈在 AI 领域的直接体现。AI 技术已成为国家竞争的重要筹码,美国试图通过限制技术输出,维护自身在 AI 领域的主导权,确保 AI 发展符合美国的战略利益和价值观 。 行业未来发展趋势:此次事件标志着全球 AI 工具 “地缘政治化” 加剧,未来可能形成明显的 “两套生态”,即美国主导的模型和中国的模型,两者互不兼容、各自发展。这将促使各国更加重视自主研发,加大在 AI 领域的投入,推动全球 AI 技术在不同体系下独立发展,减少国际间的技术交流与合作。

以下为 Anthropic 公告全文:

Anthropic 的服务条款禁止相似某些地区使用我们的服务,原因包括法律、监管及安全风险。然而,来自这些受限地区的公司(包括像中国),仍以各种方式访问我们的服务,例如通过在其他国家注册的子公司。

这些地区的公司面临法律要求,这些要求可能迫使它们共享数据、配合情报机构,或采取其他可能带来国家安全风险的行为。无论这些公司运营的地点或个人偏好如何,这些要求都会使其很难抵抗这些压力。当这些实体通过子公司访问我们的服务时,它们可能利用我们的能力开发最终为对抗性军事和情报机构及更广泛威权目标服务的应用和服务。同时,它们也可能通过蒸馏等技术利用我们的模型推进自身的 AI 开发,并与总部位于美国及盟国的可信科技公司展开全球竞争。

为了应对这一现实,并更好地与我们确保变革性 AI 能力服务于民主利益的承诺保持一致,我们正在加强区域限制。此次更新禁止那些所有权结构使其受限于我们产品不允许的司法管辖区(如中国)控制的公司或组织使用我们的服务,无论它们实际运营地点在哪里。这包括那些直接或间接由不受支持地区的公司持股超过 50% 的实体。这一变更确保我们的服务条款反映现实风险,并忠实于我们政策的精神。

基于这一考量,我们继续倡导相关政策,例如:严格的出口管制;加快在美国本土的能源项目建设,以支撑大规模 AI 基础设施的建设;以及严格评估 AI 模型的国家安全相关能力,包括可能被美国对手利用的能力。

AI 发展的安全性和保障需要集体承诺,防止对手滥用其能力。负责任的 AI 公司可以且应该采取果断行动,确保变革性技术服务于美国及盟国的战略利益,并支持我们的民主价值观。

来源:https://www.anthropic.com/news/updating-restrictions-of-sales-to-unsupported-regions

Posted in AI.

Tagged with , , .


Linux 安装drissionpage 和chrome ,编写爬虫爬取bilibili校招和社招信息

drissionpage

DrissionPage® 是一个基于 Python 的网页自动化工具。读作 “拽神”。

既能控制浏览器,也能收发数据包,还能把两者合而为一。

可兼顾浏览器自动化的便利性和 requests 的高效率。

功能强大,语法简洁优雅,代码量少,对新手友好。

Drissionpage 官网

https://drissionpage.cn/

最新版本:4.1.1.2

操作系统:Windows、Linux 和 Mac

Python 版本:3.6 及以上

支持:Chromium 内核浏览器(如 Chrome 和 Edge)、electron 应用

安装 DrissionPage

请使用 pip 安装:

pip install DrissionPage

升级最新稳定版

pip install DrissionPage --upgrade

指定版本升级

pip install DrissionPage==4.0.0b17

安装chrome

https://www.google.cn/chrome/?hl=zh-CN&standalone=1

在页面左下方选择其他平台,选择 Chrome Linux(64位)版本 uname -m x86_64

在centos7.9上

在老系统安装最新版会出现依赖glibc,2.25版本以上的才支持

wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
yum install -y google-chrome-stable_current_x86_64.rpm

Error: Package: google-chrome-stable-139.0.7258.127-1.x86_64 (/google-chrome-stable_current_x86_64)
           Requires: libc.so.6(GLIBC_2.25)(64bit)
Error: Package: google-chrome-stable-139.0.7258.127-1.x86_64 (/google-chrome-stable_current_x86_64)
           Requires: libc.so.6(GLIBC_2.18)(64bit)

找一个适合centos7的老版本chrome http://dist.control.lth.se/public/CentOS-7/x86_64/google.x86_64/

https://docs.centos.org/en-US/centos-linux/7/system-administrators-guide/packages/https://www.google.com/chrome/index.htm
wget http://dist.control.lth.se/public/CentOS-7/x86_64/google.x86_64/google-chrome-stable-102.0.5005.61-1.x86_64.rpm
yum install google-chrome-stable-102.0.5005.61-1.x86_64.rpm 
=============================================================================================================
 Package                   Arch     Version             Repository                                      Size
=============================================================================================================
Installing:
 google-chrome-stable      x86_64   102.0.5005.61-1     /google-chrome-stable-102.0.5005.61-1.x86_64   264 M
Installing for dependencies:
 liberation-fonts          noarch   1:1.07.2-16.el7     base                                            13 k
 liberation-narrow-fonts   noarch   1:1.07.2-16.el7     base                                           202 k
 vulkan                    x86_64   1.1.97.0-1.el7      base                                           3.6 M
 vulkan-filesystem         noarch   1.1.97.0-1.el7      base                                           6.3 k

Transaction Summary
=============================================================================================================
Install  1 Package (+4 Dependent packages)

Total size: 268 M
Total download size: 3.8 M
Installed size: 286 M
Is this ok [y/d/N]: y
Downloading packages:
(1/4): liberation-fonts-1.07.2-16.el7.noarch.rpm                                      |  13 kB  00:00:00     
(2/4): liberation-narrow-fonts-1.07.2-16.el7.noarch.rpm                               | 202 kB  00:00:00     
(3/4): vulkan-filesystem-1.1.97.0-1.el7.noarch.rpm                                    | 6.3 kB  00:00:00     
(4/4): vulkan-1.1.97.0-1.el7.x86_64.rpm                                               | 3.6 MB  00:00:00     
-------------------------------------------------------------------------------------------------------------
Total                                                                        6.2 MB/s | 3.8 MB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : vulkan-filesystem-1.1.97.0-1.el7.noarch                                                   1/5 
  Installing : vulkan-1.1.97.0-1.el7.x86_64                                                              2/5 
  Installing : 1:liberation-narrow-fonts-1.07.2-16.el7.noarch                                            3/5 
  Installing : 1:liberation-fonts-1.07.2-16.el7.noarch                                                   4/5 
  Installing : google-chrome-stable-102.0.5005.61-1.x86_64                                               5/5 
  Verifying  : vulkan-1.1.97.0-1.el7.x86_64                                                              1/5 
  Verifying  : 1:liberation-narrow-fonts-1.07.2-16.el7.noarch                                            2/5 
  Verifying  : 1:liberation-fonts-1.07.2-16.el7.noarch                                                   3/5 
  Verifying  : google-chrome-stable-102.0.5005.61-1.x86_64                                               4/5 
  Verifying  : vulkan-filesystem-1.1.97.0-1.el7.noarch                                                   5/5 

Installed:
  google-chrome-stable.x86_64 0:102.0.5005.61-1                                                              

Dependency Installed:
  liberation-fonts.noarch 1:1.07.2-16.el7           liberation-narrow-fonts.noarch 1:1.07.2-16.el7          
  vulkan.x86_64 0:1.1.97.0-1.el7                    vulkan-filesystem.noarch 0:1.1.97.0-1.el7    

在Rocky9上安装新版

yum install -y google-chrome-stable_current_x86_64.rpm

Dependencies resolved.
=============================================================================================================
 Package                                   Arch     Version                             Repository      Size
=============================================================================================================
Installing:
 google-chrome-stable                      x86_64   139.0.7258.127-1                    @commandline   115 M
Upgrading:
 llvm-libs                                 x86_64   19.1.7-1.el9                        appstream       57 M
Installing dependencies:
 ModemManager-glib                         x86_64   1.20.2-1.el9                        baseos         334 k
 adobe-source-code-pro-fonts               noarch   2.030.1.050-12.el9.1                baseos         831 k
 adwaita-cursor-theme                      noarch   40.1.1-3.el9                        appstream      623 k
 adwaita-icon-theme                        noarch   40.1.1-3.el9                        appstream       11 M
 alsa-lib                                  x86_64   1.2.13-2.el9                        appstream      506 k
 at-spi2-atk                               x86_64   2.38.0-4.el9                        appstream       86 k
 at-spi2-core                              x86_64   2.40.3-1.el9                        appstream      176 k
 atk                                       x86_64   2.36.0-5.el9                        appstream      270 k
 avahi-glib                                x86_64   0.8-22.el9_6.1                      appstream       14 k
 avahi-libs                                x86_64   0.8-22.el9_6.1                      baseos          66 k
 bluez-libs                                x86_64   5.72-4.el9                          baseos          81 k
 bubblewrap                                x86_64   0.4.1-8.el9_5                       baseos          49 k
 cairo                                     x86_64   1.17.4-7.el9                        appstream      659 k
 cairo-gobject                             x86_64   1.17.4-7.el9                        appstream       18 k
 colord-libs                               x86_64   1.4.5-6.el9_6                       appstream      228 k
 composefs-libs                            x86_64   1.0.8-1.el9                         appstream       53 k
 cups-libs                                 x86_64   1:2.3.3op2-33.el9                   baseos         261 k
 desktop-file-utils                        x86_64   0.26-6.el9                          appstream       72 k
 exempi                                    x86_64   2.6.0-0.2.20211007gite23c213.el9    appstream      523 k
 exiv2-libs                                x86_64   0.27.5-2.el9                        appstream      779 k
 fdk-aac-free                              x86_64   2.0.0-8.el9                         appstream      324 k
 flac-libs                                 x86_64   1.3.3-10.el9_2.1                    appstream      217 k
 flatpak-selinux                           noarch   1.12.9-4.el9_6                      appstream       20 k
 flatpak-session-helper                    x86_64   1.12.9-4.el9_6                      appstream       71 k
 fontconfig                                x86_64   2.14.0-2.el9_1                      appstream      274 k
 freetype                                  x86_64   2.10.4-10.el9_5                     baseos         386 k
 fribidi                                   x86_64   1.0.10-6.el9.2                      appstream       84 k
 fuse                                      x86_64   2.9.9-17.el9                        baseos          78 k
 gdk-pixbuf2                               x86_64   2.42.6-6.el9_6                      appstream      465 k
 gdk-pixbuf2-modules                       x86_64   2.42.6-6.el9_6                      appstream       83 k
 geoclue2                                  x86_64   2.6.0-8.el9_6.1                     appstream      122 k
 giflib                                    x86_64   5.2.1-9.el9                         appstream       48 k
 glib-networking                           x86_64   2.68.3-3.el9                        baseos         169 k
 graphene                                  x86_64   1.10.6-2.el9                        appstream       64 k
 graphite2                                 x86_64   1.3.14-9.el9                        baseos          94 k
 gsettings-desktop-schemas                 x86_64   40.0-6.el9                          baseos         667 k
 gsm                                       x86_64   1.0.19-6.el9                        appstream       33 k
 gstreamer1                                x86_64   1.22.12-3.el9                       appstream      1.4 M
 gstreamer1-plugins-base                   x86_64   1.22.12-4.el9                       appstream      2.2 M
 gtk-update-icon-cache                     x86_64   3.24.31-5.el9                       appstream       32 k
 gtk3                                      x86_64   3.24.31-5.el9                       appstream      4.8 M
 harfbuzz                                  x86_64   2.7.4-10.el9                        baseos         623 k
 hicolor-icon-theme                        noarch   0.17-13.el9                         appstream       66 k
 iso-codes                                 noarch   4.6.0-3.el9                         appstream      3.3 M
 jbigkit-libs                              x86_64   2.1-23.el9                          appstream       52 k
 json-glib                                 x86_64   1.6.6-1.el9                         baseos         151 k
 lcms2                                     x86_64   2.12-3.el9                          appstream      166 k
 libX11                                    x86_64   1.7.0-11.el9                        appstream      645 k
 libX11-common                             noarch   1.7.0-11.el9                        appstream      151 k
 libX11-xcb                                x86_64   1.7.0-11.el9                        appstream       10 k
 libXau                                    x86_64   1.0.9-8.el9                         appstream       30 k
 libXcomposite                             x86_64   0.4.5-7.el9                         appstream       23 k
 libXcursor                                x86_64   1.2.0-7.el9                         appstream       30 k
 libXdamage                                x86_64   1.1.5-7.el9                         appstream       22 k
 libXext                                   x86_64   1.3.4-8.el9                         appstream       39 k
 libXfixes                                 x86_64   5.0.3-16.el9                        appstream       19 k
 libXft                                    x86_64   2.3.3-8.el9                         appstream       61 k
 libXi                                     x86_64   1.7.10-8.el9                        appstream       39 k
 libXinerama                               x86_64   1.1.4-10.el9                        appstream       14 k
 libXrandr                                 x86_64   1.5.2-8.el9                         appstream       27 k
 libXrender                                x86_64   0.9.10-16.el9                       appstream       27 k
 libXtst                                   x86_64   1.2.3-16.el9                        appstream       20 k
 libXv                                     x86_64   1.0.11-16.el9                       appstream       18 k
 libXxf86vm                                x86_64   1.1.4-18.el9                        appstream       18 k
 libappstream-glib                         x86_64   0.7.18-5.el9_4                      appstream      386 k
 libasyncns                                x86_64   0.8-22.el9                          appstream       29 k
 libatomic                                 x86_64   11.5.0-5.el9_5                      baseos          25 k
 libcanberra                               x86_64   0.30-27.el9                         appstream       85 k
 libdrm                                    x86_64   2.4.123-2.el9                       appstream      158 k
 libepoxy                                  x86_64   1.5.5-4.el9                         appstream      244 k
 liberation-fonts                          noarch   1:2.1.3-5.el9                       appstream      6.7 k
 liberation-fonts-common                   noarch   1:2.1.3-5.el9                       appstream       13 k
 liberation-mono-fonts                     noarch   1:2.1.3-5.el9                       appstream      496 k
 liberation-sans-fonts                     noarch   1:2.1.3-5.el9                       appstream      600 k
 liberation-serif-fonts                    noarch   1:2.1.3-5.el9                       appstream      600 k
 libexif                                   x86_64   0.6.22-6.el9                        appstream      423 k
 libgexiv2                                 x86_64   0.12.3-1.el9                        appstream       81 k
 libglvnd                                  x86_64   1:1.3.4-1.el9                       appstream      133 k
 libglvnd-egl                              x86_64   1:1.3.4-1.el9                       appstream       36 k
 libglvnd-glx                              x86_64   1:1.3.4-1.el9                       appstream      140 k
 libgsf                                    x86_64   1.14.47-5.el9                       appstream      245 k
 libgudev                                  x86_64   237-1.el9                           baseos          35 k
 libgusb                                   x86_64   0.3.8-2.el9                         baseos          50 k
 libgxps                                   x86_64   0.3.2-3.el9                         appstream       78 k
 libicu                                    x86_64   67.1-10.el9_6                       baseos         9.6 M
 libiptcdata                               x86_64   1.0.5-10.el9                        appstream       60 k
 libjpeg-turbo                             x86_64   2.0.90-7.el9                        appstream      174 k
 libldac                                   x86_64   2.0.2.3-10.el9                      appstream       40 k
 libnotify                                 x86_64   0.7.9-8.el9                         appstream       43 k
 libogg                                    x86_64   2:1.3.4-6.el9                       appstream       32 k
 libosinfo                                 x86_64   1.10.0-1.el9                        appstream      312 k
 libpciaccess                              x86_64   0.16-7.el9                          baseos          26 k
 libproxy                                  x86_64   0.4.15-35.el9                       baseos          73 k
 librsvg2                                  x86_64   2.50.7-3.el9                        appstream      2.8 M
 libsbc                                    x86_64   1.4-9.el9                           appstream       44 k
 libsndfile                                x86_64   1.0.31-9.el9                        appstream      205 k
 libsoup                                   x86_64   2.72.0-10.el9_6.2                   appstream      388 k
 libstemmer                                x86_64   0-18.585svn.el9                     appstream       83 k
 libtheora                                 x86_64   1:1.1.1-31.el9                      appstream      163 k
 libtiff                                   x86_64   4.4.0-13.el9                        appstream      197 k
 libtool-ltdl                              x86_64   2.4.6-46.el9                        baseos          35 k
 libtracker-sparql                         x86_64   3.1.2-3.el9_1                       appstream      316 k
 libusbx                                   x86_64   1.0.26-1.el9                        baseos          75 k
 libvorbis                                 x86_64   1:1.3.7-5.el9                       appstream      192 k
 libwayland-client                         x86_64   1.21.0-1.el9                        appstream       33 k
 libwayland-cursor                         x86_64   1.21.0-1.el9                        appstream       18 k
 libwayland-egl                            x86_64   1.21.0-1.el9                        appstream       12 k
 libwayland-server                         x86_64   1.21.0-1.el9                        appstream       41 k
 libwebp                                   x86_64   1.2.0-8.el9                         appstream      276 k
 libxcb                                    x86_64   1.13.1-9.el9                        appstream      224 k
 libxkbcommon                              x86_64   1.0.3-4.el9                         appstream      132 k
 libxshmfence                              x86_64   1.3-10.el9                          appstream       12 k
 libxslt                                   x86_64   1.1.34-13.el9_6                     appstream      239 k
 low-memory-monitor                        x86_64   2.1-4.el9                           appstream       35 k
 mesa-dri-drivers                          x86_64   24.2.8-2.el9_6                      appstream      9.4 M
 mesa-filesystem                           x86_64   24.2.8-2.el9_6                      appstream       11 k
 mesa-libEGL                               x86_64   24.2.8-2.el9_6                      appstream      141 k
 mesa-libGL                                x86_64   24.2.8-2.el9_6                      appstream      169 k
 mesa-libgbm                               x86_64   24.2.8-2.el9_6                      appstream       36 k
 mesa-libglapi                             x86_64   24.2.8-2.el9_6                      appstream       44 k
 mesa-vulkan-drivers                       x86_64   24.2.8-2.el9_6                      appstream       11 M
 nspr                                      x86_64   4.35.0-17.el9_5                     appstream      134 k
 nss                                       x86_64   3.101.0-10.el9_5                    appstream      716 k
 nss-softokn                               x86_64   3.101.0-10.el9_5                    appstream      386 k
 nss-softokn-freebl                        x86_64   3.101.0-10.el9_5                    appstream      309 k
 nss-sysinit                               x86_64   3.101.0-10.el9_5                    appstream       18 k
 nss-util                                  x86_64   3.101.0-10.el9_5                    appstream       89 k
 openjpeg2                                 x86_64   2.4.0-8.el9                         appstream      161 k
 opus                                      x86_64   1.3.1-10.el9                        appstream      199 k
 orc                                       x86_64   0.4.31-8.el9                        appstream      182 k
 osinfo-db                                 noarch   20250124-2.el9.rocky.20250630       appstream      308 k
 osinfo-db-tools                           x86_64   1.10.0-1.el9                        appstream       68 k
 ostree-libs                               x86_64   2025.1-1.el9                        appstream      468 k
 pango                                     x86_64   1.48.7-3.el9                        appstream      297 k
 pipewire-jack-audio-connection-kit-libs   x86_64   1.0.1-1.el9                         appstream      134 k
 pipewire-libs                             x86_64   1.0.1-1.el9                         appstream      1.9 M
 pixman                                    x86_64   0.40.0-6.el9_3                      appstream      269 k
 polkit                                    x86_64   0.117-13.el9                        baseos         146 k
 polkit-libs                               x86_64   0.117-13.el9                        baseos         8.3 M
 poppler                                   x86_64   21.01.0-21.el9                      appstream      1.1 M
 poppler-data                              noarch   0.4.9-9.el9.0.1                     appstream      1.8 M
 poppler-glib                              x86_64   21.01.0-21.el9                      appstream      151 k
 pulseaudio-libs                           x86_64   15.0-3.el9                          appstream      663 k
 rtkit                                     x86_64   0.11-29.el9                         appstream       55 k
 shared-mime-info                          x86_64   2.1-5.el9                           baseos         372 k
 sound-theme-freedesktop                   noarch   0.8-17.el9                          appstream      377 k
 totem-pl-parser                           x86_64   3.26.6-2.el9                        appstream      130 k
 tracker                                   x86_64   3.1.2-3.el9_1                       appstream      538 k
 upower                                    x86_64   0.99.13-2.el9                       appstream      165 k
 vulkan-loader                             x86_64   1.4.304.0-1.el9                     appstream      149 k
 webkit2gtk3-jsc                           x86_64   2.48.5-1.el9_6                      appstream      8.5 M
 webrtc-audio-processing                   x86_64   0.3.1-8.el9.0.1                     appstream      303 k
 wireplumber                               x86_64   0.4.14-1.el9.0.1                    appstream       83 k
 wireplumber-libs                          x86_64   0.4.14-1.el9.0.1                    appstream      338 k
 xdg-dbus-proxy                            x86_64   0.1.3-1.el9                         appstream       41 k
 xdg-desktop-portal                        x86_64   1.12.6-1.el9                        appstream      367 k
 xdg-utils                                 noarch   1.1.3-13.el9_6                      appstream       71 k
 xkeyboard-config                          noarch   2.33-2.el9                          appstream      779 k
 xml-common                                noarch   0.6.3-58.el9                        appstream       31 k
Installing weak dependencies:
 abattis-cantarell-fonts                   noarch   0.301-4.el9                         appstream      364 k
 dconf                                     x86_64   0.40.0-6.el9                        appstream      109 k
 exiv2                                     x86_64   0.27.5-2.el9                        appstream      975 k
 flatpak                                   x86_64   1.12.9-4.el9_6                      appstream      1.7 M
 libcanberra-gtk3                          x86_64   0.30-27.el9                         appstream       31 k
 libproxy-webkitgtk4                       x86_64   0.4.15-35.el9                       appstream       21 k
 pipewire                                  x86_64   1.0.1-1.el9                         appstream      101 k
 pipewire-alsa                             x86_64   1.0.1-1.el9                         appstream       56 k
 pipewire-jack-audio-connection-kit        x86_64   1.0.1-1.el9                         appstream      8.1 k
 pipewire-pulseaudio                       x86_64   1.0.1-1.el9                         appstream      185 k
 polkit-pkla-compat                        x86_64   0.1-21.el9                          baseos          44 k
 tracker-miners                            x86_64   3.1.2-4.el9_3                       appstream      888 k
 xdg-desktop-portal-gtk                    x86_64   1.12.0-3.el9                        appstream      130 k

Transaction Summary
=============================================================================================================
Install  173 Packages
Upgrade    1 Package

Total size: 280 M
Total download size: 165 M

查看浏览器版本

which google-chrome
/bin/google-chrome
google-chrome --version 
Google Chrome 139.0.7258.127 

激活 conda 虚拟环境

conda info –envs

# conda environments:
#
base                 * /data/miniconda3
py385                  /data/miniconda3/envs/py385

conda activate py385

安装DrissionPage

pip install DrissionPage

升级最新稳定版

pip install DrissionPage –upgrade

查看DrissionPage版

pip list|grep DrissionPage DrissionPage 4.1.1.2

编写测试脚本

#!/usr/bin/env python3
from DrissionPage import ChromiumPage

page = ChromiumPage()
page.get('https://www.baidu.com')
print(page.html)

编写测试脚本2

#!/usr/bin/env python3
from DrissionPage import ChromiumPage, ChromiumOptions
from DrissionPage._functions.keys import Keys

co = ChromiumOptions()
co.headless(True)
co.set_argument('--no-sandbox') 
co.set_argument("--disable-gpu") 
co.incognito(True)

# 1、设置无头模式:co.headless(True)
# 2、设置无痕模式:co.incognito(True)
# 3、设置访客模式:co.set_argument('--guest')
# 4、设置请求头user-agent:co.set_user_agent()
# 5、设置指定端口号:co.set_local_port(7890)
# 6、设置代理:co.set_proxy('http://localhost:2222')
page = ChromiumPage(co)
url = "https://cn.bing.com/"
page.get(url, retry=1, interval=1, timeout=5)

page.wait.load_start()  # 等待页面加载完成
#css定位,也可以用xpath

print(page.title)
print(page.url)
print(page.html)

测试浏览器信息 curl https://bot.sannysoft.com/

Bilibili职位爬虫

功能特点

  • 多招聘类型支持:支持社会招聘、校园招聘(应届生)
  • 使用模似浏览器操作:采用DrissionPage模拟浏览器请求,自动获取cookies
  • 文件备份:同时保存JSON格式的数据文件
  • 错误处理:完善的异常捕获和失败记录机制

项目地址

输出结果

  • 职位数据将保存到当前目录下的bilibili_jobs.json文件中
  • 控制台会显示抓取进度和状态信息
python3 test_drission.py 
✓ DrissionPage、json、time、random、argparse模块导入成功
当前时间: 2025-08-18 19:49:34
 获取页面...https://jobs.bilibili.com/campus/positions?type=3
 页面HTML长度: 45370字符
✓ 页面HTML已保存到page_html_debug.html文件,用于调试
页面标题: 哔哩哔哩-招聘
当前URL: https://jobs.bilibili.com/campus/positions?type=3
开始提取分页数据...
✓ 最大页码: 13
✗ 未找到分页元素
开始提取第1/13页职位数据...
  - 选择器1结果数量: 10
✓ 开始处理 10 个职位卡片...

--- 处理职位 1/10 ---
✓ 获取列表职位基本信息: 搜推算法工程师【2026届】
{'title': '搜推算法工程师【2026届】', 'location': '上海', 'category': '技术类', 'job_type': '全职', 'post_date': '2025-08-15 发布'}
✓ 当前窗口: <ChromiumTab browser_id=1f8fb51b-6e6b-4b71-a928-b08ed59743df tab_id=56AA585A50DC06EA3B2E890B7F602353>
✓ 点击职位标题
✓ 找到职位详情页: https://jobs.bilibili.com/campus/positions/24286

=== 开始获取职位详情: https://jobs.bilibili.com/campus/positions/24286 ===
✓ 职位详情页面加载完成
position_id: 24286
✓ 成功提取职位基本信息: 地点=上海, 类别=全职, 类型=技术类, 日期=2025-08-15 发布
✓ 成功提取职位内容
=== 职位详情获取完成 ===
✓ 已切换回职位列表页面
{'position_id': '24286', 'position_url': 'https://jobs.bilibili.com/campus/positions/24286', 'location': '上海', 'category': '全职', 'job_type': '技术类', 'post_date': '2025-08-15 发布', 'position_content': '职位描述\n工作职责: 1.优化视频、直播等推荐算法,提升亿级用户APP使用体验; 2.将前沿算法(深度学习、大语言模型等)落地于B站各算法场景; 3.挖掘用户行为与反馈数据,解决算法痛点问题; 4.设计B站流量分配与社区算法机制,构建优质内容生态与社区环境; 5.参与推荐、搜索、广告等业务策略优化,实现核心算法应用; 6.迭代召回、相关性等模型,利用大语言模型优化视频内容理解与服务; 7.训练优化B站专属大模型,跟进大语言模型等前沿技术并创新应用。 工作要求: 1、本科及以上学历,计算机、数学、人工智能、大数据等相关专业; 2、具备扎实编程能力与算法功底,熟练掌握至少一种编程语言(Python/C++/Java等); 3、拥有机器学习/深度学习理论基础,熟悉至少一种主流深度学习框架,了解大数据平台工具; 4、具备以下一个或多个领域理论背景与实践经验:机器学习/数据挖掘/深度学习/NLP/CV/信息检索等; 5、逻辑思维能力强,对数据敏感,能发现关键数据、抓住核心问题,具备出色问题分析与解决能力; 6、工作积极主动,责任心强,自驱力强,善于沟通协作,有良好团队精神,能持续学习; 7、有ACM/ICPC等比赛获奖经历,或在多智能体、多模态大模型领域有论文发表、开源项目贡献等,可加分。\n网申须知\n 网申开始日期:2025-08-01 00:00\n 网申截止日期:2025-12-31 00:00\n仅限 2025-09 至 2026-08 毕业的大学生,每人限投2个职位,请慎重投递。\n投递简历'}

使用Playwright可以参考 Linux 安装 Playwright

Posted in 技术, 爬虫spider.

Tagged with , , , , , .


win10 KB5063709 /win11 KB5063878 近期的补丁在更新后会在大量数据写入导致丢盘

2025 年 8 月 12 日—KB5063709(OS 内部版本 19044.6216 和 19045.6216) https://support.microsoft.com/zh-cn/topic/2025-%E5%B9%B4-8-%E6%9C%88-12-%E6%97%A5-kb5063709-os-%E5%86%85%E9%83%A8%E7%89%88%E6%9C%AC-19044-6216-%E5%92%8C-19045-6216-96d99cf6-f8b5-4798-9892-4e3eb8f11548

上周微软向 Windows 11 24H2 版推出 KB5063878 号例行累积更新,该更新的构建版本号为 Build 26100.4946,不过部分用户安装更新后发现该更新可能会导致固态硬盘无法正常使用。

最先发现这个问题的是网友 @Necoru_cat,网友发现当安装更新后一次性写入大量数据例如 50GB 就可能导致固态硬盘无法识别,这个问题可能也影响到部分机械硬盘。 Windows 10(KB5063709/KB5063877/KB5063871/KB5063889)Windows 11(KB5063878/KB5063875)

卸载补丁 wusa /uninstall /kb:KB5063878

Posted in 安全通告.

Tagged with .


Cursor限制国内用户使用Claude模型?国内免费使用Claude Code

这两天,很多使用Cursor进行AI编程的小伙伴突然发现一个醒目的提示

Model not available

This model provider doesn’t serve your region. Visit https://docs.cursor.com/account/regions for more information.

从官方文档来看,这次限制主要是由于A社更新了其服务区域政策,导致中国大陆地区无法再使用部分模型。

在国内社交媒体平台上,以“Cursor不能用了”为关键词搜索,可以看到开发者们已经炸锅了,相关帖子引发热议。本次断供的模型包含开发者编程时常用的主力模型,如Claude 4 Sonnet、Claude 3.5 Sonnet等性能优异的模型。有网友吐槽,自己是Cursor长期的订阅用户,却因为一纸通知而失去了当时付费购买的核心服务。

感觉自推出Claude Code后,其他对其产生严重依赖的AI IDE的使用体验也大大下降,部分原因可能是算力供应不足、A社要优先满足其自己的AI编程工具。 考虑到Cursor让人迷惑的定价和各种策略,以及Claude Code更强大的编程能力,直接使用Claude Code或许是一个更好的选择

Claude Code是什么?

Claude Code 是由 Anthropic 公司推出的一款智能编程工具,基于 Claude Sonnet 模型开发。这款工具最大的亮点是能够通过自然语言指令直接在终端操作,无需复杂的配置,就能完成代码编辑、Bug 修复、代码搜索等任务。它支持多种编程语言,包括Java、Python、go 等,并且可以直接集成到 VS Code、Cursor 等开发环境中,让开发者体验更流畅. https://www.anthropic.com/claude-code

国内使用 Claude Code 的难点

尽管 Claude Code 功能强大,但在国内使用却并不容易,主要原因包括:

网络限制:由于官方需要稳定的外网环境,国内用户往往需要借助“魔法网络”才能访问。 费用高昂:Claude Code 的订阅费用不低,尤其是 Max 计划,每月 200 美元的价格让许多开发者望而却步。 注册门槛:需要海外邮箱和手机号进行注册,国内用户难以满足这些条件。 那么,有没有办法绕过这些限制,让我们在国内也能免费使用呢?答案是肯定的!接下来,给大家分享,如何白嫖 Claude Code,国内也能免费使用

Any Router

Any Router 是一个API聚合、转发、统计和管理平台,适合需要高效调用和管理多种API资源的开发者和团队。我们可以在控制台查看账户余额、API调用统计、消耗分布等信息,并进行相关管理操作。 为什么选择AnyRouter接入Claude?

零成本启动:新用户注册即赠  $50额度,足够体验数百次Claude 3.7高级模型调用1 绕过风控难题:直接注册Claude账号需海外手机/IP,且封号率高(网友实测“比OpenAI更严”)34 模型自由选:支持全系列Claude模型(含最新3.7 Sonnet),性能对标GPT-4甚至部分场景反超2

注册AnyRouter账号

步骤1:

首先打开平台链接 https://anyrouter.top/login https://anyrouter.top/register?aff=2sDt

步骤2: 使用 GitHub 账号登录

进入到Any Router首页,使用 GitHub 账号登录(如果没有 GitHub,需先注册一个,此处需要魔法)

步骤3: 100 美元

登录后,你会自动进入数据看板,并免费获得 100 美元的初始额度。

步骤4: 注册成功后,如果你觉得100美元的初始额度不够用,还可以将分享邀请链接 (可选)

发送给你的好友,这样您和好友都可获得额外 $50 Claude Code 额度的奖励。 https://anyrouter.top/register?aff=2sDt

步骤5: 添加API令牌,

进入“API 令牌”页面,点击“添加令牌”。 在名称栏填写易记的名称,例如“Claude Code Key” 在“模型限制”中选择 claude-sonnet-4-20250514,并勾选“设为无限额度”,其他保持默认设置即可。 点击“提交”,复制生成的 API Key,以备后续使用(以 sk- 开头,令牌后面要用)

步骤6:安装 Node.js(已安装可跳过)

确保 Node.js 版本 ≥ 18.0 https://nodejs.org/en/download/

# Ubuntu / Debian 用户
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo bash -
sudo apt-get install -y nodejs
node --version

# macOS 用户
sudo xcode-select --install
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install node
node --version

# rocky
# LTS
curl -o- https://fnm.vercel.app/install | bash
# current
curl -fsSL https://rpm.nodesource.com/setup_current.x | sudo bash -
dnf install nodejs -y
node -v
v24.4.0

npm -v
11.4.2
 glibc二进制版适合centos7
https://unofficial-builds.nodejs.org/download/release/v18.20.8/node-v18.20.8-linux-x64-glibc-217.tar.gz
tar zxvf node-v18.20.8-linux-x64-glibc-217.tar.gz   -C /usr/local
ln -s /usr/local/node-v18.20.8-linux-x64-glibc-217/bin/node /usr/bin/node
ln -s /usr/local/node-v18.20.8-linux-x64-glibc-217/bin/npm  /usr/bin/npm 

将/usr/local/node-v18.20.8-linux-x64-glibc-217/bin/claude
加入到环境变量中
export PATH=$PATH:/usr/local/node-v18.20.8-linux-x64-glibc-217/bin/claude

步骤7:安装 Claude Code

 npm config get prefix
/usr

#全局npm包目录
/usr/lib/node_modules
npm install -g @anthropic-ai/claude-code
claude --version

如果是使用 Windows 系统,需要通过 WSL(Windows 子系统)安装。

步骤8: 配置环境变量,为避免每次重复输入,将环境变量写入 bash_profile 和 bashrc,将sk-xxx替换为前面获取的API令牌。

为避免每次重复输入,可将环境变量写入 bash_profile 和 bashrc:

# 对于 Bash 用户 (macOS 默认,部分 Linux)
echo -e '\n export ANTHROPIC_AUTH_TOKEN=sk-...' >> ~/.bash_profile
echo -e '\n export ANTHROPIC_BASE_URL=https://anyrouter.top' >> ~/.bash_profile
source ~/.bash_profile

echo -e '\n export ANTHROPIC_AUTH_TOKEN=sk-...' >> ~/.bashrc
echo -e '\n export ANTHROPIC_BASE_URL=https://anyrouter.top' >> ~/.bashrc
# 对于 Zsh 用户 (较新版 macOS 默认)
echo -e '\n export ANTHROPIC_AUTH_TOKEN=sk-...' >> ~/.zshrc
echo -e '\n export ANTHROPIC_BASE_URL=https://anyrouter.top' >> ~/.zshrc

步骤9: 使用 Claude Code

重启终端后,直接使用:

cd your-project-folder
claude

1.0.48 (Claude Code)

运行后 选择你喜欢的主题 + Enter 确认安全须知 + Enter 使用默认 Terminal 配置 + Enter 信任工作目录 + Enter

开始在终端里和你的 AI 编程搭档一起写代码吧!🚀

选择模型:/model, 默认的模型是Claude 4 Sonnet

对于日常任务,推荐使用 Claude 4 Sonnet,费率仅为 Claude 4 Opus 的 1/5;对于有较复杂的任务,可以使用更强大的 Claude 4 Opus.

Posted in AI, 技术.

Tagged with , .


Git CLI高危任意文件写入漏洞曝光,PoC已公开

Git CLI存在一个高危漏洞,攻击者可利用该漏洞在Linux和macOS系统上实现任意文件写入。目前该漏洞的概念验证(PoC)利用代码已公开。 该漏洞编号为CVE-2025-48384,CVSS严重性评分为8.1分。当用户执行

git clone –recursive命令克隆恶意仓库时,攻击者可借此实现远程代码执行。

一个看似无害的回车符(Carriage Return),竟然能让 Git 的子模块克隆逻辑彻底“失控”,甚至引发远程代码执行(RCE)!近日,研究人员 David Leadbeater 披露了一个严重漏洞(CVE-2025-48384),攻击者可以通过精心构造的 .gitmodules 文件,在类 Unix 系统上实现任意文件写入,最终控制用户系统。这一漏洞利用的是 Git 配置解析中对 \r 字符处理的不一致性,看似微小的逻辑差异,却构成了实质性安全威胁。

该研究者表示:“在类 Unix 平台上,如果你对不可信的仓库执行了 git clone –recursive 操作,极有可能会导致远程代码执行(RCE)。请尽快更新 Git 及其他嵌入 Git 的软件(包括 GitHub Desktop)到修复版本。”

原文链接:https://dgl.cx/2025/07/git-clone-submodule-cve-2025-48384#_

该漏洞特别影响macOS和Linux平台上未打补丁的Git CLI版本(v2.43.7、v2.44.4、v2.45.4、v2.46.4、v2.47.3、v2.48.2、v2.49.1和v2.50.1之前的版本)。值得注意的是,由于非UNIX系统在控制字符处理上的根本差异,Windows系统不受此漏洞影响。

企业必须立即通过各自的包管理器将受影响的Git CLI升级至已修复版本(v2.43.7、v2.44.4、v2.45.4、v2.46.4、v2.47.3、v2.48.2、v2.49.1或v2.50.1)。用户可通过执行git –version命令验证当前Git版本,并与存在漏洞的版本范围(包括v2.50.0、v2.49.0、v2.48.0-v2.48.1、v2.47.0-v2.47.2、v2.46.0-v2.46.3、v2.45.0-v2.45.3、v2.44.0-v2.44.3以及v2.43.6及更早版本)进行比对。

macOS平台的GitHub Desktop用户应暂时避免使用该客户端进行Git操作,转而使用已打补丁的Git CLI进行仓库管理,直至官方发布修复补丁。 安全团队可实施检测机制,使用自定义代理规则监控针对外部仓库的可疑

git clone –recursive操作,同时在克隆不受信任的仓库前审计.gitmodules文件内容。

Posted in 安全通告.

Tagged with , .


WordPress插件exlink-safe-filter上架

exlink-safe-filter – External Link Security

使用Trae AI辅助开发了wordpress外链打码插件, 现已通过wordpress审核,上线市场。可以从多个渠道获取。

=== exlink-safe-filter – External Link Security === Plugin Name: exlink-safe-filter Contributors: C1G Donate link: https://blog.c1gstudio.com/ Tags: external links, security, link filtering, whitelist, blacklist Requires at least: 5.0 Tested up to: 6.8 Stable tag: 2.0.4 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html

高级外部链接安全过滤插件,提供白名单、灰名单、黑名单分类管理及多种安全防护选项。

== 描述 ==

exlink-safe-filter是一款企业级外部链接安全管理插件,专为WordPress网站设计。它通过先进的链接分类系统和灵活的安全策略,有效保护您的网站用户免受恶意链接的侵害,同时提供良好的用户体验。

主要功能:

  • 多层次链接分类系统

    • 白名单:完全信任的域名,直接显示原始链接
    • 灰名单:经过中转页但自动跳转
    • 黑名单:完全阻止访问,显示警告信息
    • 未知域名:可配置处理方式(3秒自动跳转、显示URL、显示编码URL或阻止访问)
  • 全面的内容处理范围

    • 内容类型:文章、页面、评论、产品(支持WooCommerce)
    • 元素类型:HTML链接(a标签)、纯文本URL、电子邮件地址、图片资源、其他资源(脚本、iframe等)
  • 灵活的处理选项

    • 处理时间:显示时处理(推荐)或发布/编辑时处理
    • 审计模式:保留原始URL在data-original-url属性中,便于审计
    • URL加密:支持Base64加密或明文显示
    • 自定义重定向地址:默认为/exlink-safe-redirect/
  • 高级安全特性

    • 域名掩码功能:替换主体域名中间部分,保留首尾字符(如将www.domain.com.cn显示为www.d***n.com.cn)
    • 全面的域名验证系统
    • 自定义警告和安全消息
    • 多语言支持:中文(简体)和英文
    • 自定义CSS样式:可定制中转页和警告信息样式
  • 用户友好的界面

    • 直观的设置页面
    • 详细的选项说明
    • 响应式设计,适配各种设备

== 安装 ==

  1. 从WordPress插件目录下载并安装插件,或上传exlink-safe-filter文件夹到/wp-content/plugins/目录
  2. 在WordPress后台激活插件
  3. 进入【设置】→【exlink-safe-filter Security】配置插件选项
  4. 根据需求设置白名单、灰名单和黑名单
  5. 配置安全策略和显示选项
  6. 保存设置后插件自动生效

== 截图 ==

  1. 安全中转页面示例
  2. 过滤后的显示页面
  3. 设置页面

== 常见问题 ==

= 如何添加域名到白名单? = 在设置页面的”域名列表”选项卡中,将域名添加到白名单文本框,每行一个域名(*.example.com)。

= 如何添加域名到灰名单? = 在设置页面的”域名列表”选项卡中,将域名添加到灰名单文本框,每行一个域名(*.example.com)。

= 如何添加域名到黑名单? = 在设置页面的”域名列表”选项卡中,将域名添加到黑名单文本框,每行一个域名(*.example.com)。

= 如何自定义中转页样式? = 在”自定义CSS”选项卡中,添加您的自定义CSS代码,插件会自动将其应用到中转页和警告信息。

= 插件支持哪些语言? = 当前支持中文(简体)和英文,可在设置页面的”常规设置”中切换。

= 如何配置域名掩码功能? = 在”安全设置”中,将”域名转码方式”设置为”打码”,系统会自动替换域名主体部分的中间字符为星号。

== 升级日志 ==

= 2.0.4 =

  • 增强所有用户输入输出的安全转义处理

= 2.0.3 =

  • 移除rot13加密方式
  • 增强所有用户输入输出的安全转义处理
  • 新增内容安全策略(CSP)保护
  • 强化XSS防御机制
  • 优化前端资源加载方式(WP 6.3+特性)

= 2.0.1 =

  • 新增恢复默认设置功能(带二次确认对话框)
  • 优化设置页面布局和提示文案
  • 优化默认安装配置
    • 默认不启用插件
    • 内容范围默认仅选中文章
    • 元素范围默认仅选中HTML链接

Posted in WordPress.

Tagged with , , , .


MySQL 8.0 for Database Administrators OCP 课程习题14

14. Skill Check Achieving High Availability with MySQL InnoDB Cluster

Which are true about a MySQL InnoDB cluster? (Choose two)

It provides a confgurable capability for the administration of a group of server instances in a cluster.

It uses AdminAPI to work with relational and document data in the MySQL Document Store.

It provides real-time access with data consistency across partitioned and distributed datasets.

It relies on MySQL Router to interconnect replicated servers in a group.

It uses MySQL Group Replication to replicate data between all servers in a group.

How does MySQL Shell (mysqlsh) support the administration of a cluster? (Choose two)

It enables replicated server updates using binary log position and global transaction identifiers (GTIDs).

It manages failover by automatically routing server connections.

It provides scripting capabilities using JavaScript, Python, and SQL commands.

It implements a pluggable architecture and allows developers to create customized plug-ins.

It enables access to MySQL features via APIs

You have a live cluster with three servers. Executing the dba.getCluster() function returns the Cluster value “cluster”. Which methods must be used, all of which are required, to add a fourth server to the cluster? (Choose three)

cluster.rescan()

cluster.rejoinInstance()

dba.configureLocalInstance()

cluster.addInstance()

cluster.dissolve()

dba.configureInstance()

Which are functions of Group Replication? (Choose two)

assigning replication servers to groups of three to nine servers

in multi-primary mode, enabling group members to certify the order of transactions within the global sequence of transactions

enabling automatic avoidance of “split-brain” situations among group members

in multi-primary mode, enabling automatic election of a new primary when the primary server fails

in single-primary mode, enabling all servers to accept transactions but only the primary decides the order to commit

Examine this mysqlsh statement and output: mysql-js> cluster.checkInstanceState(“root@server4:3314”) … … { “reason”: “recoverable”, “state”: “ok” } What does the output signify?

The instance has not executed any GTID transactions; therefore, it cannot conflict with the GTIDs executed by the cluster.

The instance has more executed GTIDs than the executed GTIDs of the cluster seed instances.

The instance has executed GTIDs, which diverge with the executed GTIDs of the cluster seed instances.

The instance has executed GTIDs, which do not conflict with the executed GTIDs of the cluster seed instances.

myCluster is an InnoDB cluster. Examine this mysqlsh statement and output: mysql-js > cluster.status() { “clusterName”: “myCluster”, “defaultReplicaSet”: { “name”: “default”, “primary”: “server2:3312”, “status”: “OK_NO_TOLERANCE”, … What does this status signify? (Choose two)

There are enough members online to form a quorum.

One or more members may be online but their status is not ONLINE or RECOVERING.

One or more members are online but cannot form a quorum.

There is no redundancy in the cluster, and the failure of a member will result in database outage.

There is sufficient redundancy available to tolerate at least one failure.


14. Skill Check Achieving High Availability with MySQL InnoDB Cluster

Which are true about a MySQL InnoDB cluster? (Choose two)

It provides a confgurable capability for the administration of a group of server instances in a cluster.

It uses AdminAPI to work with relational and document data in the MySQL Document Store.

It provides real-time access with data consistency across partitioned and distributed datasets.

It relies on MySQL Router to interconnect replicated servers in a group.

It uses MySQL Group Replication to replicate data between all servers in a group.

答案: It provides a confgurable capability for the administration of a group of server instances in a cluster. It uses MySQL Group Replication to replicate data between all servers in a group.

说明: What Is MySQL InnoDB Cluster? • Provides a complete and scalable high availability solution for MySQL – Easy to configure and administer a group of server instances in a cluster • Uses MySQL Group Replication to replicate data between all servers in the group – The AdminAPI removes the need to work with group replication directly. – You work with the AdminAPI via MySQL Shell using your choice of Python or JavaScript language. • Manages failover automatically – If a server in the group goes down, the cluster reconfigures itself. – It requires at least three servers for the group to be fault tolerant • Enables clients to connect to the group transparently – Clients connect to the group via MySQL Router and do not have to know the details of the individual instances within the group.

How does MySQL Shell (mysqlsh) support the administration of a cluster? (Choose two)

It enables replicated server updates using binary log position and global transaction identifiers (GTIDs).

It manages failover by automatically routing server connections.

It provides scripting capabilities using JavaScript, Python, and SQL commands.

It implements a pluggable architecture and allows developers to create customized plug-ins.

It enables access to MySQL features via APIs

答案: It provides scripting capabilities using JavaScript, Python, and SQL commands.

It enables access to MySQL features via APIs.

说明: MySQL Shell (mysqlsh) • Is an advanced client and code editor for MySQL • Provides scripting capabilities by using JavaScript, Python, or SQL commands – You can enter commands interactively or execute them in batches. – You can switch between languages by entering \js, \py, or \sql, respectively. • Enables access to MySQL features via APIs – XDevAPI: Communicate with a MySQL server running the X Plugin to work with both relational and document data in the MySQL Document Store. – AdminAPI: Configure and administer a MySQL InnoDB cluster. • Supports output in tab delimited, table, and JSON (JavaScript Object Notation) formats • Interacts with a MySQL server via a global Session object – If using Python and JavaScript, you create the Session object by calling the getSession() method on the mysqlx module. – If using SQL, the Session object is created when the client connects.

You have a live cluster with three servers. Executing the dba.getCluster() function returns the Cluster value “cluster”. Which methods must be used, all of which are required, to add a fourth server to the cluster? (Choose three)

cluster.rescan()

cluster.rejoinInstance()

dba.configureLocalInstance()

cluster.addInstance()

cluster.dissolve()

dba.configureInstance()

答案: cluster.rescan() cluster.addInstance() dba.configureInstance()

Which are functions of Group Replication? (Choose two)

assigning replication servers to groups of three to nine servers

in multi-primary mode, enabling group members to certify the order of transactions within the global sequence of transactions

enabling automatic avoidance of “split-brain” situations among group members

in multi-primary mode, enabling automatic election of a new primary when the primary server fails

in single-primary mode, enabling all servers to accept transactions but only the primary decides the order to commit

答案: assigning replication servers to groups of three to nine servers in multi-primary mode, enabling group members to certify the order of transactions within the global sequence of transactions

说明: How Group Replication Works • Servers belong to a replication group. – A replication group can contain up to nine servers. — At least three servers are required to be fault tolerant. – Group Replication uses global transaction identifiers (GTIDs). – The group is defined by a UUID. • Group membership is managed automatically. – A server that joins or rejoins the group will automatically synchronize with the others. – Servers can leave and join the group at any time. • Replication groups operate in one of two modes: – Single-primary: One server in the group accepts updates. – Multi-primary: All servers in the group accept updates. • Changes are replicated to all members of the group.

Examine this mysqlsh statement and output: mysql-js> cluster.checkInstanceState(“root@server4:3314”) … … { “reason”: “recoverable”, “state”: “ok” } What does the output signify?

The instance has not executed any GTID transactions; therefore, it cannot conflict with the GTIDs executed by the cluster.

The instance has more executed GTIDs than the executed GTIDs of the cluster seed instances.

The instance has executed GTIDs, which diverge with the executed GTIDs of the cluster seed instances.

The instance has executed GTIDs, which do not conflict with the executed GTIDs of the cluster seed instances.

答案: The instance has executed GTIDs, which do not conflict with the executed GTIDs of the cluster seed instances.

说明: Checking the State of an Instance • Execute cluster.checkInstanceState(instance) to verify the instance GTID state in relation to the cluster. – Analyzes the instance executed GTIDs with the executed/purged GTIDs on the cluster to determine if the instance is valid for the cluster. • The output of this method is one of the following: – OK new: The instance has not executed any GTID transactions; therefore, it cannot conflict with the GTIDs executed by the cluster. – OK recoverable: The instance has executed GTIDs, which do not conflict with the executed GTIDs of the cluster seed instances. – ERROR diverged: The instance has executed GTIDs, which diverge with the executed GTIDs of the cluster seed instances. – ERROR lost_transactions: The instance has more executed GTIDs than the executed GTIDs of the cluster seed instances.

myCluster is an InnoDB cluster. Examine this mysqlsh statement and output: mysql-js > cluster.status() { “clusterName”: “myCluster”, “defaultReplicaSet”: { “name”: “default”, “primary”: “server2:3312”, “status”: “OK_NO_TOLERANCE”, … What does this status signify? (Choose two)

There are enough members online to form a quorum.

One or more members may be online but their status is not ONLINE or RECOVERING.

One or more members are online but cannot form a quorum.

There is no redundancy in the cluster, and the failure of a member will result in database outage.

There is sufficient redundancy available to tolerate at least one failure.

答案: There is no redundancy in the cluster, and the failure of a member will result in database outage. There are enough members online to form a quorum.

说明: OK_NO_TOLERANCE = 当前服务正常(有 quorum) + 无故障缓冲(单点即崩)。需尽快修复离线节点或扩容!

节点有哪状态 ONLINE – 节点状态正常。 OFFLINE – 实例在运行,但没有加入任何Cluster。 RECOVERING – 实例已加入Cluster,正在同步数据。 ERROR – 同步数据发生异常。 UNREACHABLE – 与其他节点通讯中断,可能是网络问题,可能是节点crash。 MISSING 节点已加入集群,但未启动group replication

集群有哪些状态 OK – 所有节点处于online状态,有冗余节点。 OK_PARTIAL – 有节点不可用,但仍有冗余节点。 OK_NO_TOLERANCE – 有足够的online节点,但没有冗余,例如:两个节点的Cluster,其中一个挂了,集群就不可用了。 NO_QUORUM – 有节点处于online状态,但达不到法定节点数,此状态下Cluster无法写入,只能读取。 UNKNOWN – 不是online或recovering状态,尝试连接其他实例查看状态。 UNAVAILABLE – 组内节点全是offline状态,但实例在运行,可能实例刚重启还没加入Cluster。

Posted in Mysql.

Tagged with , , , .