Husky Spider Utils Help

西南科技大学一站式登录实现

本项目基于含验证码的浏览器登录实现对husky-spider-utils部分方法进一步展示
本代码仅供学习参考,请勿滥用

核心封装

import base64 import os.path from ddddocr import DdddOcr from husky_spider_utils import SeleniumSession from loguru import logger class OAAuth: url = "https://cas.swust.edu.cn/authserver/login?service=" def __init__(self, username, password, service=""): self.service = service self.session = SeleniumSession(selenium_init_url=self.url + service) self.ocr = DdddOcr(show_ad=False) self.username = username self.password = password self.login() def login(self): # self.session.load_cookies("./temp/cookies.txt") if not self.session.get_current_url().startswith("https://cas.swust.edu.cn"): return self.session.send_key("#username", self.username) self.session.send_key("#password", self.password) captcha = self.get_captcha("#imgCode") self.session.send_key("input[name='captcha']", captcha) self.session.click("button[name='submit']") if self.session.get_current_url().startswith("https://cas.swust.edu.cn"): msg = "".join(self.session.get_element_selector(".textError").css(" ::text").getall()).strip() logger.error(msg) if msg == "验证码无效": self.login() else: logger.success("登录成功!") if not os.path.exists("./temp"): os.mkdir("./temp") # self.session.save_cookies("./temp/cookies.txt") def get_captcha(self, img_element): base64_image = self.session.get_img_base64_from_img_tag(img_element) captcha = self.ocr.classification(base64.b64decode(base64_image)) logger.info(captcha) return captcha
08 五月 2025