好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > python實現自動打卡小程序

python實現自動打卡小程序

熱門標簽:長春人工智能電銷機器人官網 廈門crm外呼系統如何 西藏快速地圖標注地點 n400電話申請多少錢 如何在地圖標注文字 ai地圖標注 地圖標注推廣單頁 百應ai電銷機器人鄭州 女王谷地圖標注

本文實例為大家分享了python實現自動打卡小程序的具體代碼,供大家參考,具體內容如下

"""
湖南大學疫情防控每日自動打卡程序v1.0
author: Liu
time:2021/3/16
"""


from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from PIL import Image
from bs4 import BeautifulSoup
import requests
from aip import AipOcr
import time
from datetime import datetime
import re



class DailyAttend(object):


  def __init__(self, browser, stu_id, passwd, t, address, tmp_yesterday, tmp_today):

    self.browser = browser
    self.stu_id = stu_id
    self.passwd = passwd
    self.t = t
    self.address = address
    self.tmp_yesterday = tmp_yesterday
    self.tmp_today = tmp_today
    self.img_path = "captcha.png"


  def get_captcha_img(self):
    url = "https://fangkong.hnu.edu.cn/app/#/login?redirect=%2Fhome"
    self.browser.get(url)
    self.browser.find_element_by_class_name("vcdoe-tips").click() # 模擬點擊使驗證碼加載出來
    time.sleep(2)
    webpage = self.browser.page_source
    soup = BeautifulSoup(webpage, features="html.parser")
    div = soup.find("div", attrs={"class": "login-content"})
    src = div.find_all("img")[2].attrs["src"] # 從html中解析出圖片鏈接
    r = requests.get(src)
    if r.status_code == 200:
      open(self.img_path, "wb").write(r.content)
    else:
      print("網絡不佳,無法加載驗證碼圖片")


  def recog_captcha_img(self):

    img = Image.open(self.img_path)
    img = img.convert('L') # P模式轉換為L模式(灰度模式默認閾值127)
    count = 165 # 設定閾值
    table = []
    for i in range(256):
      if i  count:
        table.append(0)
      else:
        table.append(1)

    img = img.point(table, '1')
    img.save(self.img_path) # 保存處理后的驗證碼

    ## 調用百度ocr
    # 識別碼
    APP_ID = "23779944"
    API_KEY = "FPgsSXsuqXk3twpqVHmNNK6g"
    SECRET_KEY = "nG08oGzErk8CdMvDAynAiGdzfBjHr3NO"
    # 初始化對象
    client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

    # 讀取圖片
    def get_file_content(file_path):
      with open(file_path, 'rb') as f:
        return f.read()

    image = get_file_content(self.img_path)
    # 定義參數變量
    options = {'language_type': 'ENG', } # 識別語言類型,默認為'CHN_ENG'中英文混合
    # 調用通用文字識別
    result = client.basicGeneral(image, options) # 高精度接口 basicAccurate
    for word in result['words_result']:
      self.captcha = (word['words'])



  def login(self):

    ## 登錄
    while True:
      self.browser.find_element_by_css_selector("[type=text]").send_keys(self.stu_id)
      self.browser.find_element_by_css_selector("[type=password]").send_keys(self.passwd)
      self.browser.find_element_by_css_selector("[type=number]").send_keys(self.captcha)
      self.browser.find_element_by_tag_name("button").click()
      time.sleep(2)
      page = self.browser.page_source
      html = BeautifulSoup(page, features="html.parser")
      err_message = html.find("p", attrs={"class": "el-message__content"})
      if err_message.text == "登錄成功":
        print("登錄成功!")
        break
      elif err_message.text == "賬號或密碼錯誤":
        print("賬號或密碼錯誤!請重新輸入!")
        self.stu_id = input("請輸入學號:")
        self.passwd = input("請輸入密碼:")
        continue
      else:
        self.get_captcha_img()
        self.recog_captcha_img()
        continue


  def attend(self):
    success_messages = self.browser.find_elements_by_css_selector('p[class=el-message__content]')
    success_messages = [message.text for message in success_messages]
    if "今日已打卡" in success_messages:
      print("今日已打卡!")
      time.sleep(60)
    else:
      ## 選擇打卡定位
      self.browser.find_elements_by_xpath('//div/span[text()="正在獲取定位..."]')[1].click()
      time.sleep(1)
      for i in range(17):
        self.browser.find_elements_by_xpath('//ul/li')[i + 1].click()
      time.sleep(1)
      self.browser.find_element_by_xpath('//ul/li[text()="岳麓區"]').click()
      time.sleep(1)
      self.browser.find_element_by_xpath('//div/button[text()="確認"]').click()
      time.sleep(1)

      ## 輸入相關打卡信息并點擊打卡按鈕
      self.browser.find_elements_by_css_selector('input[placeholder="街道門牌、樓層房間號等信息"]')[1].send_keys(self.address)
      temp = self.browser.find_elements_by_css_selector("input[placeholder=請輸入]")
      temp[0].send_keys(self.tmp_yesterday)
      temp[1].send_keys(self.tmp_today)
      self.browser.find_elements_by_css_selector(
        'button[class="btnDaka van-button van-button--info van-button--normal van-button--block"]')[1].click()
      today = datetime.now().strftime("%Y-%m-%d")
      print(today + "打卡成功!")
      time.sleep(60)




if __name__ == "__main__":

  ## 歡迎界面
  print("=" * 100)
  print("打卡小程序")
  print("歡迎你湖南大學的朋友!開始使用吧!")
  print("=" * 100)

  ## 用戶輸入
  while True:
    t = input("請輸入你的每日打卡時間(24小時制, 例如:00:10):")
    if re.search('^(([0-1][0-9])|(2[1-3])):[0-5][0-9]$', t) == None:
      print("你輸入的時間格式有誤,請重新輸入!")
      continue
    stu_id = input("請輸入你的學號:")
    passwd = input("請輸入個人門戶密碼:")
    address = input("請輸入你的打卡詳細地址(例如:湖南大學北校區1舍):")
    tmp_yesterday = input("請輸入你的昨日體溫:")
    tmp_today = input("請輸入你的今日體溫:")
    print("=" * 100)
    if input("請檢查你的輸入是否無誤,若有誤則輸入y并重新輸入,若無誤則輸入n:") == "n":
      print("=" * 100)
      break

  user_info = {
    't': t,
    'stu_id': stu_id,
    'passwd': passwd,
    'address': address,
    'tmp_yesterday': tmp_yesterday,
    'tmp_today': tmp_today
  }

  ## 瀏覽器設置
  chrome_options = Options()
  chrome_options.add_argument("--headless")
  chrome_options.add_argument("--disable-gpu")
  chrome_options.add_experimental_option('excludeSwitches', ['enable-logging'])
  browser = webdriver.Chrome(executable_path="chromedriver.exe", options=chrome_options)

  ## 打卡
  app = DailyAttend(browser, **user_info) # 實例化打卡器
  print("正在等待打卡時間到來...")
  while True:
    if datetime.now().strftime("%H:%M") == t:
      app.get_captcha_img()
      app.recog_captcha_img()
      app.login()
      app.attend()
    else:
      time.sleep(10)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • Python實現釘釘/企業微信自動打卡的示例代碼
  • 基于python+selenium自動健康打卡的實現代碼
  • python實現自動打卡的示例代碼
  • python+selenium 簡易地疫情信息自動打卡簽到功能的實現代碼
  • Python + selenium + crontab實現每日定時自動打卡功能
  • Python 實現網課實時監控自動簽到、打卡功能
  • Python實現i人事自動打卡的示例代碼
  • python獲取微信企業號打卡數據并生成windows計劃任務
  • 使用Python實現企業微信的自動打卡功能
  • Python實戰之單詞打卡統計

標簽:渭南 內江 興安盟 廊坊 拉薩 綿陽 亳州 黔東

巨人網絡通訊聲明:本文標題《python實現自動打卡小程序》,本文關鍵詞  python,實現,自動,打卡,小,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python實現自動打卡小程序》相關的同類信息!
  • 本頁收集關于python實現自動打卡小程序的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 老熟风间由美AV在线一区二区| 欧美成人久久电影香蕉| 女女又爽?又黄?免费动画| 日本加勒比日本高清a区免费视频| 6080新觉伦影院手机版| 国产精品人獸交一区二区三区| 解开丰满老师的乳罩| 岛国动作片| 国产一卡2卡3卡4卡网站| 小芳的性纵欲日记1~5集| 99久久99久久999久久久亚洲 | 免费观看午夜在线欧差毛片| 人超人碰人摸免费视频| 免费午夜无码18网站| 同性男同gayfreexxxx| 国产三级不卡| 爽好大快深点公交车视频| 免费在线观看www| 国产精品无码久黑人无码牛牛久久 | 日韩制服丝袜在线观看| 波多野结衣无删减| 总裁跪趴高h秘书攻| 情侣主调教vk| 挺进贞洁美妇后菊| 美女视频免费福利网站| 小受粗暴h疼哭np各种play| 色视频在线观看完整免费版| 婬乱生活H肉NP学生和老师视频 | 小sao货水好多真贱| 亚洲插插| 男的把女的啪视频网站| 成人精品动漫H无码??| 黄色男人网站在线观看| 亚洲成a人片在线观看网站口工| eeuss鲁片一区二区三区漫画 | 国产精品久久AV无码538| 国产一级a毛一级a看免费| 国内精品视频一区| 日本老熟老太hd| 国产女人高潮大叫毛片| 欧美成人免费大片888|