使用Mechanize编写宿舍WiFi自动登录脚本时遇SSL证书验证失败错误
解决Mechanize访问内网HTTPS页面的SSL证书验证错误
你在编写宿舍WiFi自动登录脚本时遇到的这个报错,本质是内网WiFi登录页面用的是自签名SSL证书——这类证书不是由公共信任的CA机构颁发的,而Mechanize默认会严格验证证书有效性,所以触发了CERTIFICATE_VERIFY_FAILED错误。
快速修复:关闭SSL证书验证
因为你访问的是本地内网地址,安全性风险极低,直接关闭证书验证就能解决问题。针对你的Python 2.7环境,修改代码如下:
import mechanize import ssl # 全局关闭SSL证书验证(适配Python 2.7) ssl._create_default_https_context = ssl._create_unverified_context br = mechanize.Browser() br.set_handle_robots(False) br.open("https://192.168.10.3/connect/PortalMain") for f in br.forms(): print f
后续自动登录逻辑参考
成功打印表单后,你可以继续编写填写账号密码并提交的代码,示例如下:
# 选择登录表单(nr=0代表页面第一个表单,可根据实际情况调整索引) br.select_form(nr=0) # 替换为你宿舍WiFi的实际字段名和账号密码 br["username"] = "你的宿舍账号" br["password"] = "你的WiFi密码" # 提交登录请求 response = br.submit() # 打印响应内容,确认是否登录成功 print(response.read())
小提示
你可以通过print f的输出,确认表单里的账号、密码字段名(比如有些页面可能用user_account代替username),确保填写的字段名和页面表单完全匹配。
内容的提问来源于stack exchange,提问作者Parth Manaktala
相关产品推荐
相关产品推荐

