精华内容
下载资源
问答
  • 最简单的易班打卡脚本

    千次阅读 多人点赞 2020-12-25 18:06:14
    易班web自动化打卡脚本易班web自动化打卡脚本分析实现过程环境搭建定位元素获取cookies定时启动脚本完整代码 易班web自动化打卡脚本 一直以来,易班打卡被称为最鸡肋,最浪费时间,最浪费纳税人钱财的表面工程,那么...

    易班web自动化打卡脚本

    一直以来,易班打卡被称为最鸡肋,最浪费时间,最浪费纳税人钱财的表面工程,那么如何解决这一问题,已成为现在高校大学生的急需思考的大问题。那这一次我就来谈谈我是怎么解决这一问题的。

    分析

    众所周知,学生虽然使用较多的是易班APP,但是,善良的易班还做了网页端。刚好前不久我学习了一点儿web自动化技术,正好拿来练练手。
    先来看看易班的登录界面,它使用了验证码,然而,图形验证码就是专门克制机器操作的,所以验证码只能使用人为识别。那该如何实现自动登录呢?
    在这里插入图片描述
    我们发现,登录一次之后,再次打开页面就会自动登录,原来易班记录了用户的cookies。
    没错,你猜对了!我就是保存cookies,每次登录都更换cookies,以实现多用户登录打卡。

    实现过程

    环境搭建

    网上有很多webdriver环境搭建的教程,我就不再啰嗦了

    定位元素

    使用google浏览器复制的full xpath
    driver.find_element_by_xpath("/html/body/div1/div/div[2]/div1").click()
    通过full xpath查找网页元素,并且执行点击操作;

    driver.find_element_by_id(“account-txt”).send_keys("*****")
    通过id查找网页元素,并且执行输入操作;

    会用这两个方法就够了(这也太low了)
    在这里插入图片描述

    获取cookies

    一段非常简单的代码,跑跑看

    import selenium.webdriver
    import time
    import json
    
    lst[] = ["",""] # 分别填上账号和密码
    driver = selenium.webdriver.Chrome()
    driver.implicitly_wait(10)
    driver.get("http://www.yiban.cn/")
    driver.delete_all_cookies() # 删除已有cookies
    print("登录过程需要手动输入验证码")
    time.sleep(1)
    driver.get("https://www.yiban.cn/login?go=http%3A%2F%2Fwww.yiban.cn%2F") # 进入登录界面
    driver.find_element_by_id("account-txt").send_keys(lst[0])
    driver.find_element_by_id("password-txt").send_keys(lst[1])
    driver.find_element_by_id("login-btn").click()
    print("登录过程可能需要手动输入验证码\n完成登录后,键入y,开始提取用户cookies\n无法登录情况下,键入n或其他任意字符,跳过此次提取")
    dd = input("是否完成登录?(y/n)")
    if(dd == 'y'):
        cookies = driver.get_cookies()
        print("已获取cookies")
        jsoncookies = json.dumps(cookies)
        # 将cookies保存到cookies.txt中
        with open("cookies.txt", "a+")as f:
            ss = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))
            f.write("\n"+ss+"#"+str(lst[0])+"#"+str(lst[1])+"#"+"cookies--->"+jsoncookies)
            print("cookies已添加在cookies.txt!")
    else:
        print("未提取cookies,并跳过此用户")
    driver.quit()
    

    使用cookies

    import selenium.webdriver
    import time
    import json
    
    driver = selenium.webdriver.Chrome()
    driver.get("http://www.yiban.cn/")
    driver.implicitly_wait(8)
    time.sleep(2)
    line = input("请输入cookies:")
    cookies = json.loads(line)
    driver.delete_all_cookies()
    driver.get("http://www.yiban.cn/")
    for co in cookies:
        driver.add_cookie(co)
    driver.get("https://f.yiban.cn/iapp659175")
    

    定时启动脚本

    假设看到这的小伙伴已经写好了完整代码,现在开始用服务器定时启动打卡脚本
    crontab -e
    在这里插入图片描述
    3 6,11,17 * * * /usr/bin/python /home/yiban/yibandaka.py >> /www/wwwroot/mblog.ren/submit/yiban/run_log.txt 2>&1
    每天的6点、11点、17点的03分开始执行脚本,并将记录保存在run_log.txt

    完整代码

    代码写的比较随意,将就一下吧!
    下面代码是直接从服务器拷贝过来的,用电脑的话,需要稍作修改

    import selenium.webdriver
    import time
    import random
    import json
    import requests
    
    def daka(Tim,TempList):
    	# 服务器上要使用绝对路径,电脑是可以用相对路径;cookies_list.txt保存了用户cookies,每行一个cookies,比如:三个人就是三行cookies
        with open("/home/yiban/cookies_list.txt", "r", encoding="utf-8")as fl:
            kk = 0
            dd = 0
            lst=[]
            # 以下配置用于服务器,电脑可使用下方注释的的代码
            option =selenium.webdriver.ChromeOptions()
            option.add_argument('--no-sandbox')
            option.add_argument('--headless')
            driver = selenium.webdriver.Chrome(executable_path='/home/software/chromedriver', chrome_options=option) # 注意path,我这里是chromedriver放在/home/apk/chromedriver
            driver.get("http://www.yiban.cn/")
            driver.implicitly_wait(6)
            # 以下配置用于电脑,服务器可使用上方的的代码
            # driver = selenium.webdriver.Chrome()
            # driver.get("http://www.yiban.cn/")
            # driver.implicitly_wait(6)
            for line in fl.readlines():
                if(dd == 8):
                    print("| The website of yiban maybe have some problem !")
                    break
                kk = kk + 1
                cookies = json.loads(line)
                print("| %d Replace login cookies!\t" %kk , end="")
                driver.delete_all_cookies()
                driver.get("http://www.yiban.cn/")
                for co in cookies:
                    driver.add_cookie(co)
                try:
                    driver.get("https://f.yiban.cn/iapp659175")
                    time.sleep(0.5)
                    if(Tim == 1):
                        driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div[1]").click()  #google浏览器复制的full xpath,下面都是
                        time.sleep(0.5)
                        driver.find_element_by_xpath("/html/body/div[1]/div/div[5]/div/div[2]/div[1]/div/input").clear()
                        tmp=TempList[random.randint(0,2)]
                        driver.find_element_by_xpath("/html/body/div[1]/div/div[5]/div/div[2]/div[1]/div/input").send_keys(tmp)
                        driver.find_element_by_xpath("/html/body/div[1]/div/div[5]/div/div[2]/div[3]/input").click()
                        driver.find_element_by_xpath("/html/body/div[1]/div/div[5]/div/div[2]/div[4]/span").click()
    
                    elif(Tim == 2):
                        driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div[2]").click()
                        time.sleep(0.5)
                        driver.find_element_by_xpath("/html/body/div[1]/div/div[5]/div/div[2]/div[1]/div/input").clear()
                        tmp=TempList[random.randint(0,2)]
                        driver.find_element_by_xpath("/html/body/div[1]/div/div[5]/div/div[2]/div[1]/div/input").send_keys(tmp)
                        driver.find_element_by_xpath("/html/body/div[1]/div/div[5]/div/div[2]/div[3]/input").click()
                        driver.find_element_by_xpath("/html/body/div[1]/div/div[5]/div/div[2]/div[4]/span").click()
    
                    elif(Tim == 3):
                        driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div[3]").click()
                        time.sleep(0.5)
                        driver.find_element_by_xpath("/html/body/div[1]/div/div[5]/div/div[2]/div[1]/div/input").clear()
                        tmp=TempList[random.randint(0,2)]
                        driver.find_element_by_xpath("/html/body/div[1]/div/div[5]/div/div[2]/div[1]/div/input").send_keys(tmp)
                        driver.find_element_by_xpath("/html/body/div[1]/div/div[5]/div/div[2]/div[3]/input").click()
                        driver.find_element_by_xpath("/html/body/div[1]/div/div[5]/div/div[2]/div[4]/span").click()
                except:
                    dd = dd + 1
                    print("%d execution failure! %d" % (kk,dd))
                    lst.append(line)
                else:
                    print("%d execution successful!" % kk)
            
            driver.quit()
    	# 打卡失败者重新打卡
        if(lst and dd < 8):
            print("|++++++++++++++++++Failure re-execution++++++++++++++++++")
            jj = 0
            time.sleep(3)
            # 注意这里配置是服务器,电脑需要更换这里的配置
            option =selenium.webdriver.ChromeOptions()
            option.add_argument('--no-sandbox')
            option.add_argument('--headless')
            driver = selenium.webdriver.Chrome(executable_path='/home/software/chromedriver', chrome_options=option)
            driver.get("http://www.yiban.cn/")
            driver.implicitly_wait(6)
            # time.sleep(1)
            for lst1 in lst:
                jj = jj + 1
                cookies = json.loads(lst1)
                print("|+ %d Replace login cookies!\t" %jj, end="")
                driver.delete_all_cookies()
                driver.get("http://www.yiban.cn/")
                for co in cookies:
                    driver.add_cookie(co)
                try:
                    driver.get("https://f.yiban.cn/iapp659175")
                    time.sleep(1)
                    if(Tim == 1):
                        driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div[1]").click()
                        time.sleep(0.5)
                        driver.find_element_by_xpath("/html/body/div[1]/div/div[5]/div/div[2]/div[1]/div/input").clear()
                        tmp=TempList[random.randint(0,2)]
                        driver.find_element_by_xpath("/html/body/div[1]/div/div[5]/div/div[2]/div[1]/div/input").send_keys(tmp)
                        driver.find_element_by_xpath("/html/body/div[1]/div/div[5]/div/div[2]/div[3]/input").click()
                        driver.find_element_by_xpath("/html/body/div[1]/div/div[5]/div/div[2]/div[4]/span").click()
    
                    elif(Tim == 2):
                        driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div[2]").click() 
                        time.sleep(0.5)
                        driver.find_element_by_xpath("/html/body/div[1]/div/div[5]/div/div[2]/div[1]/div/input").clear()
                        tmp=TempList[random.randint(0,2)]
                        driver.find_element_by_xpath("/html/body/div[1]/div/div[5]/div/div[2]/div[1]/div/input").send_keys(tmp)
                        driver.find_element_by_xpath("/html/body/div[1]/div/div[5]/div/div[2]/div[3]/input").click()
                        driver.find_element_by_xpath("/html/body/div[1]/div/div[5]/div/div[2]/div[4]/span").click()
    
                    elif(Tim == 3):
                        driver.find_element_by_xpath("/html/body/div[1]/div/div[2]/div[3]").click()
                        time.sleep(0.5)
                        driver.find_element_by_xpath("/html/body/div[1]/div/div[5]/div/div[2]/div[1]/div/input").clear()
                        tmp=TempList[random.randint(0,2)]
                        driver.find_element_by_xpath("/html/body/div[1]/div/div[5]/div/div[2]/div[1]/div/input").send_keys(tmp)
                        driver.find_element_by_xpath("/html/body/div[1]/div/div[5]/div/div[2]/div[3]/input").click()
                        driver.find_element_by_xpath("/html/body/div[1]/div/div[5]/div/div[2]/div[4]/span").click()
                except:
                    print("+ %d execution failure!" %jj)
                else:
                    print("+ %d execution successful" %jj)
            driver.quit()    
    
    if __name__ == "__main__":
        ss = time.strftime("%Y/%m/%d %H:%M:%S", time.localtime(time.time()))
        print(" _______________________________________________________")
        print("|-----------------" + ss + "------------------")
        ss = time.strftime("%H", time.localtime(time.time()))
        # 判断打卡时间,分别是6点,11点,17点
        if(ss == "06"):
            daka(1,["36.6","36.7","36.8"])
        elif(ss == "11"):
            daka(2,["36.7","36.8","36.9"])
        elif(ss == "17"):
            daka(3,["36.6","36.7","36.8"])
        ss = time.strftime("%Y/%m/%d %H:%M:%S", time.localtime(time.time()))
        print("|_________________" + ss + "_______________over\n")
                    
                
    
    

    获取cookies脚本

    import selenium.webdriver
    import time
    import json
    
    driver = selenium.webdriver.Chrome()
    driver.implicitly_wait(10)
    driver.get("http://www.yiban.cn/")
    driver.delete_all_cookies()
    # shuzu.txt是用来存放账号和密码的,一行一个账号和密码,账号和密码用逗号隔开
    fs = open('shuzu.txt', 'r')
    num = fs.readlines()
    if len(num) <= 0:
        print("无内容")
    else:
        for i in num:
            driver.delete_all_cookies()
            time.sleep(1)
            driver.get("http://www.yiban.cn/")
            time.sleep(3)
            driver.delete_all_cookies()
            driver.get("https://www.yiban.cn/login?go=http%3A%2F%2Fwww.yiban.cn%2F")
            lst = i.strip().split(",")
            driver.find_element_by_id("account-txt").send_keys(lst[0])
            driver.find_element_by_id("password-txt").send_keys(lst[1])
            driver.find_element_by_id("login-btn").click()
            print("登录过程可能需要手动输入验证码\n完成登录后,键入y,开始提取用户cookies\n无法登录情况下,键入n或其他任意字符,跳过此次提取")
            dd = input("是否完成登录?(y/n)")
            if(dd == 'y'):
                time.sleep(1)
                cookies = driver.get_cookies()
                jsoncookies = json.dumps(cookies)
                with open("cookies.txt", "a+")as f:
                    ss = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))
                    f.write("\n"+ss+"#"+str(lst[0])+"#"+str(lst[1])+"#"+"cookies--->"+jsoncookies)
                    print("cookies已添加在cookies.txt!")
            else:
                print("未提取cookies,并跳过此用户")
    fs.close()
    driver.quit()
    
    展开全文
  • 学程自动打卡脚本 Apple设备可以使用以下捷径,直接在自己的手机或者iPad上创建自动化,无需电脑或者服务器部署 捷径社区: 保存捷径后,根据两个注释,填入学校、账号、密码、打卡情况 网页版学程 学校 const app...
  • JNU-StuHealth 某个学校的自动打卡脚本 功能 √获取上次数据√打卡√根据状态发邮件 使用帮助 修改脚本里面有中文字的地方
  • 青柠疫服自动打卡脚本

    千次阅读 2021-08-14 09:09:31
    脚本用于西华大学青柠疫服打卡系统PS:此脚本实例于centos7上自动实现 Usage 安装依赖 安装selenium库 pip install selenium #pip3 install selenium pip install selenium #pip3 install selenium #pip3 ...

    Introduce

    此脚本用于西华大学青柠疫服打卡系统PS:此脚本实例于centos7上自动实现

    Usage

    安装依赖

    安装selenium库

    pip install selenium #pip3 install selenium

    pip install selenium 
    #pip3 install selenium 

    安装google chrome浏览器

    sudo yum install google-chrome-stable_current_x86_64.rpm

    chrome路径

    which google-chrome-stable

    做软连接

    ln -s 路径 /usr/bin/chrome

    解决root用户不能运行Chrome

    vim /opt/google/chrome/google-chrome
    #将最后一行改写为: exec -a "$0" "$HERE/chrome" "$@" --no-sandbox $HOME

    chromedriver安装

    验证google Chrome版本

    google-chrome-stable -version

    下载ChromeDriver安装

    选择对应版本下载,访问:https://npm.taobao.org/mirrors/chromedriver 

    wget https://npm.taobao.org/mirrors/chromedriver/72.0.3626.7/chromedriver_linux64.zip(这里的版本号需要手动更改成对应浏览器的版本)

    解压安装包(没有zip解压,执行yum -y install zip)

    unzip chromedriver_linux64.zip

    移动到/usr/bin目录下(或者移动到指定目录后排至软链接)

    sudo mv chromedriver /usr/bin

    赋予Chromedriver权限

    chmod +x /usr/bin/chromedriver

    测试chromedriver安装

    chromedriver 

    image

    代码使用

    PS:此代码健壮性不好,望谅解
    代码仅需修改line8-10,以及line87中的Sno、Sname、Password 以及对应api的账号密码
    PS:此api为验证码识别,地址为http://www.ttshitu.com/

    image

    image


    更多api使用详情见开发文档
    http://www.ttshitu.com/docs/python.html#pageTitle

    脚本自动执行

    crontab -e


    crontab格式:
     

    image

    python所在路径查看

    which python #which python3

    py文件路径查看

    find / -name xxx.py

    最终格式

    0 0 * * * python所在路径 需执行的.py文件路径


    这样就实现了每天0点定时打卡

    代码在本人的GitHub上:

    https://github.com/Malabis/qnyf/blob/work/qnyf.py

    展开全文
  • 系统自动签到打卡脚本(Python)

    千次阅读 2020-10-30 15:28:48
    系统自动签到打卡脚本一 环境和工具二 Python脚本代码三 设置触发器,设定打卡时间四 注意事项 一 环境和工具 Anaconda环境(比较方便,conda管理180个包可以直接用); 需要在conda环境里安装selenium包; 下载...

    一 环境和工具

    1. Anaconda环境(比较方便,conda管理180个包可以直接用);
    2. 需要在conda环境里安装selenium包;
    3. 下载浏览器的驱动(需要根据所用浏览器进行下载–建议使用谷歌浏览器)谷歌浏览器驱动下载地址

    二 Python脚本代码

    import time
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    
    browser = webdriver.Chrome()
    url = 'http://10.72.15.65:8080/omp/login.jsp'
    #填写索要签到的网站地址
    browser.get(url)
    
    try:
    
        browser.find_element_by_id('loginName').send_keys('----')
        #填写登录的用户名
        browser.find_element_by_xpath('//*[@id="password"]').send_keys('-----')
        #用户登录密码
        browser.find_element_by_xpath("/html/body/div[@class='login']/div[@id='web_qr_login']/div[@id='web_login']/div[@class='login-box']/div[@class='login_form']/form[@id='login_form']/div[3]/input[@class='button_blue']").click()
        time.sleep(2)
    
    
        browser.find_element_by_xpath('//*[@id="tree-box"]/div[1]/div[2]/a[1]').click()
        windows = browser.window_handles
        browser.switch_to.window(windows[-1])
    
        browser.switch_to.frame("menu")
        browser.find_element_by_xpath('/html/body/table[2]/tbody/tr/td[2]/table/tbody/tr[1]/td/a').click()
        time.sleep(2)
    
    
        browser.switch_to.default_content()#回到根目录才可以再次访问其他frame
        browser.switch_to.frame(browser.find_element_by_xpath('//*[@id="dmMain"]'))
    
    
        browser.find_element_by_xpath("/html/body/form/table[2]/tbody/tr/td[2]/table[2]/tbody/tr[2]/td/input").click()
        alert = browser.switch_to.alert
        print(alert.text)
        alert.accept()
        time.sleep(2)
    
    except:
        print('签到失败')
    
    browser.quit()
    
    
    
    
    
    
    
    
    
    
    

    三 设置触发器,设定打卡时间

    1. 右键我的电脑,点击管理;
    2. 在显示的栏目左侧面板上点击任务计划程序;
    3. 在右侧可以看到创建任务,开始设置签到时间。

    四 注意事项

    1. 每个系统网站的编码方式不一样,在选择查找当前页面的按钮时候,尝试运行程序能否选中;
    2. 选择Xpath路径时候,右键网页查看源代码直接复制,浏览器会推荐Xpath选择路径;
    3. 如有问题,欢迎私信。
    展开全文
  • 所以参考了网络上的代码,并做了改进,用python写了个脚本,可以每天定时自动在腾讯文档上打卡,且不需要填写的位置原本有数据。(本文摘自自己的私人公众号,水印什么的就无视8)【教学开始】首先,我们需要到官网...

    ​明明365天都不得不待在家里面,居然还要天天去腾讯文档打卡,烦死人了。

    天天都填一样的内容,重复无意义的事情,时间就是金钱,浪费人时间约等于谋财害命呀。

    所以参考了网络上的代码,并做了改进,用python写了个脚本,可以每天定时自动在腾讯文档上打卡,且不需要填写的位置原本有数据。

    (本文摘自自己的私人公众号,水印什么的就无视8)

    【教学开始】

    首先,我们需要到官网下载一个pycharm,下载社区版本就行。

    997e072e0e9d?utm_campaign=hugo

    下载python的最新版本,配置好环境变量(配置环境变量这种常识应该无须赘述了8),环境变量的地址就copy一下你的Python安装在的目录就行。

    注意:我红框圈起了两个,这两个都要添加,不然待会无法使用pip安装所需要的插件。

    997e072e0e9d?utm_campaign=hugo

    安装玩这两玩意后,打开控制台,输入【python】和【pip】验证一下安装是否成功,环境变量配置是否顺利。如果如下图所示,那就是成功了。

    997e072e0e9d?utm_campaign=hugo

    997e072e0e9d?utm_campaign=hugo

    成功后,我们打开命令行,输入pip install selenium

    997e072e0e9d?utm_campaign=hugo

    以及:pip install openpyxl

    (因为我已经安装过了所以会有点不一样,你们安装是会有进度条的)

    997e072e0e9d?utm_campaign=hugo

    【重点】然后,我们还需要下载个chromedriver,最好下载最新版本的8.3。

    如果运行中还是出错,就去谷歌浏览器设置那里,左边的关于chrome看你的浏览器的版本是什么,如果不是最新版本会自动更新的。

    997e072e0e9d?utm_campaign=hugo

    【下载完毕之后,将chormedriver放到python根目录下】

    至此,所有的准备工作都完成了。

    成功以后我们就打开pycharm,新建一个项目。

    997e072e0e9d?utm_campaign=hugo

    在左边的导航栏里面新建一个Python文件。

    997e072e0e9d?utm_campaign=hugo

    接下来就是代码了,主要思路就是通过模拟回车键enter和tab键实现表格行列移动:

    import time

    import datetime

    from selenium import webdriver

    from selenium.webdriver.common.keys import Keys

    from openpyxl import Workbook

    from openpyxl.utils import get_column_letter

    from selenium.webdriver.support.ui import Select

    from selenium.webdriver.common.action_chains import ActionChains

    #先获得时间

    today_time=str(datetime.datetime.now().year)+"/"+str(datetime.datetime.now().month)+"/"+str(datetime.datetime.now().day)

    #接下来写脚本自动登录网页

    driver = webdriver.Chrome()

    driver.get("")#将健康表的地址copy过来就行。

    time.sleep(1)

    driver.find_element_by_class_name('unlogin-container').click()#点击登入按钮

    time.sleep(1)

    driver.switch_to.frame(driver.find_element_by_id('login_frame'))

    driver.find_element_by_class_name('img_out_focus').click()

    #登入账号,用快速登入的功能,前提,已经电脑qq登入了

    driver.switch_to.parent_frame()

    time.sleep(2)

    driver.find_element_by_xpath('//*[@id="canvasContainer"]/div[1]/div[2]').click()

    time.sleep(0.5)

    #下面是模拟按下ctrl+f,打开搜索框,找到当前你想填写的列。我这里是找到对应的年月日,在相应的年月日下填写当天的信息。

    ActionChains(driver).key_down(Keys.CONTROL).key_down('f').perform()

    time.sleep(2)

    #下面的send_keys就是输入当天日期,因为不知道为什么下面的代码一次没有用,所以重复了两次。

    driver.find_element_by_id('search-panel-input').send_keys(str(today_time))

    time.sleep(2)

    driver.find_element_by_id('search-panel-input').send_keys(str(today_time))

    time.sleep(2)

    #搜索到之后关闭搜索框

    driver.find_element_by_class_name('dui-button').click()

    time.sleep(1)

    ####################################################################################

    #对以下地方进行修改

    for i in range(0, 21):#这里的循环的次数,修改为自己的信息所在的行号。

    #如果无效,可以将其改为driver.find_element_by_id('alloy-simple-text-editor').send_keys(Keys.ENTER)

    ActionChains(driver).key_down(Keys.ENTER).perform()

    #以下的的信息填写为自己的信息即可,你有多少列信息,就重复多少次,最后Keys.ENRER收尾。

    driver.find_element_by_id('alloy-simple-text-editor').click()

    driver.find_element_by_id('alloy-simple-text-editor').send_keys("你的信息一")

    ActionChains(driver).key_down(Keys.TAB).perform()

    driver.find_element_by_id('alloy-simple-text-editor').click()

    driver.find_element_by_id('alloy-simple-text-editor').send_keys("你的信息二")

    ActionChains(driver).key_down(Keys.TAB).perform()

    driver.find_element_by_id('alloy-simple-text-editor').click()

    driver.find_element_by_id('alloy-simple-text-editor').send_keys("你的信息三")

    #。。。。。。。。。。。。。。。。。。

    driver.find_element_by_id('alloy-simple-text-editor').send_keys(Keys.ENTER)

    time.sleep(1)

    如果对自己的电脑没有自信,中间的time.sleep()里面的参数可以改大一点,因为selenium常常会因为电脑网速或者硬件不行,而在页面还没加载出来就进行下一步,会容易出错。我建议每一条语句里面都sleep10秒。

    可能会有人出现搜索后enter和tab无效的情况,我同学用了我的代码后发现动不了,最后发现是chormedriver放错位置导致ActionChains无效,每个人都可以遇见不同的坑,到时就全凭毅力了。

    记得电脑挂着qq,否则自动快捷登录无效。

    改完后尝试性的运行一下,浏览器会自动打开,自动登录腾讯文档,然后自动修改表格,你就盯着看有没有改对地方,如果不小心把别人的给改了记得改回去。

    如果以上全部都没有问题,就可以进行最后一步了。

    电脑搜索管理工具,打开。

    997e072e0e9d?utm_campaign=hugo

    点击“任务计划程序”。

    997e072e0e9d?utm_campaign=hugo

    建立基本工作。

    997e072e0e9d?utm_campaign=hugo

    这里随意。

    997e072e0e9d?utm_campaign=hugo

    选择每天,然后选择自己想要运行的时间。

    997e072e0e9d?utm_campaign=hugo

    选择启动程序后,选择自己刚刚的python文件所在的位置,完成。

    997e072e0e9d?utm_campaign=hugo

    如果到点运行后命令行报错,那就要检查一下是不是网络不行或者硬件不行,而sleep又太短导致selenium出错了。

    展开全文
  • 简单健康打卡爬虫脚本

    千次阅读 2021-02-16 19:31:21
    所以脚本中用pytz库设置了时区,再进行时间的获取。 import requests from urllib import request,parse import urllib from time import strftime import pytz import datetime import http.cookiejar, urllib....
  • Python+Selenium实现上班体温打卡脚本程序 YQ期间,每天要打实习公司的体温打卡,还要打学校的体温打卡,经常忙到忘记,非常的难受,一怒之下,写了这个打卡程序,来帮我实现体温打卡!(温馨提示,请勿用于不良...
  • ()因为这个网页要模拟浏览器才允许访问,所以暂时简单这么搞了) 更具体的说: 1.浏览器驱动安装: # 1.Chrome地址栏输入,chrome://version/,查看自己Chrome的版本 # 2.在列表中下载对应版本的驱
  • python之网页自动打卡

    万次阅读 多人点赞 2017-08-17 17:22:01
    python自动打卡,每天忘记打卡,还是想偷个小懒,都来这里看看
  • 【油猴脚本】健康打卡自动化

    千次阅读 2020-06-08 17:58:48
    汕头大学健康打卡自动化 可以添加打卡网站到启动浏览器时打开...借鉴东南大学打卡自动化脚本:https://greasyfork.org/zh-CN/scripts/398138-seu-lwreportepidemicseu-dailyreport-automator 源码 // ==UserScript== /
  • Python进行网页自动打卡系统

    千次阅读 2020-08-28 21:41:20
    Python进行网页自动打卡系统安装Python下载Chromedriver安装selenium设置定时自动运行Python程序 安装Python 可以直接Python官网下载,需要进行路径环境配置,最好还要下载一个顺手的编辑器。也可以用anaconda平台...
  • shell脚本自动打卡打开微信

    千次阅读 2018-02-08 09:39:00
    写入apk在某个范围是打卡或者开启应用闹铃提醒打卡 input keyevent 224 input swipe 300 1800 300 800 am start -n  com.isoftstone.client.ipsa/com.isoftstone.ipsa.app.activity.SplashActivity sleep 10 input ...
  • , row[1]) do_sign() do_sendMail(row[2], "{}\n{}打卡成功".format(nowTime, row[3])) driver.quit() print("{}打卡成功".format(row[3])) except Exception as e: driver.quit() do_sendMail(row[2], "{}\n{}打卡...
  • 网页版自动打卡

    2011-11-02 08:39:11
    加入打开网页时自动获取随机延迟时间项 加入在自动签到20秒后关闭签到页的功能 有望在下一个重要的版本中直接使用服务器时间,这样就可以大大减少误差了 Auto Sign Machine Ver 2.51 加入自动上线功能,以...
  • yxAutoRecord 该脚本适用于,需绑定公司IP、网页打卡; 大体思路 1、schedule定时发送任务 2、nightmare模拟触发页面
  • 前一段时间发现扇贝网页版显示的打卡日记和手机上看到的不一致,感觉应该是网页版开发滞后的原因。这种不一致给查卡带来了诸多不便,于是就设法解决该问题。 起初我想到的方案是做一个静态页面放到对象存储上,然后...
  • 手机/网页端实现自动打卡

    千次阅读 2021-01-16 20:58:53
    网页端实现自动打卡 因为我比较烦这种打卡,上班打卡、下班打卡打卡还可能扣工资,扣绩效,或者要还补卡,这个十分的烦人。 手机端实现自动打卡 首先是环境准备:py开发环境(我用的pycharm 社区版)、手机一部...
  • 使用python 编写脚本突破反打卡脚本网站签到
  • 然后我又换了些第三方web控件,比如csExWB,打卡不报脚本错误,但弹出认证的窗口,还是无法正常访问操作,请教改如何解决呢? [img=https://img-bbs.csdn.net/upload/201712/30/1514642996_895597.jpg][/img]
  • 教你写个网页自动签到脚本

    千次阅读 多人点赞 2020-09-07 17:41:59
    转换完成后就可以直接使用对象 目前脚本是直接把返回的内容显示出来,你可以把它修改修改 例如返回的json是这种的 {“no”:1101,“error”:"\u4eb2\uff0c\u4f60\u4e4b\u524d\u5df2\u7ecf\u7b7e\u8fc7\u4e86",“data...
  • 每日打卡,三检打卡 实现定时自动打卡

    千次阅读 多人点赞 2020-12-18 18:43:14
    懒人打卡模式,再也不用上闹钟打卡了,总结记录一下实践过程.
  • 有些网页涉及嵌套多层网页的比如本文中的打卡按钮发现是嵌套在第3层(有关键字iframe算一层)这时候一定要记得一层层进入,要不然会导致find_element_by_xpath、find_element_by_id无法定位到元素切记,具体怎么看在...
  • page = require('webpage').create() ...# 用于处理page.evaluate中js脚本的console,使其输出在命令行可见. page.onConsoleMessage = (msg) -&gt; console.log 'CONSOLE: ' , msg # 用于处理异常 ...
  • 吉林大学自动健康打卡v2.0 软件架构 selenium - chromedriver 【调用chrmoe】 win32gui【酷Q被屏蔽,故改用该方案】 开发思路 用selenium完成测试,获取网页中“已完成项目”数据,通过win32gui打开对应QQ聊天...
  • 吉林大学自动健康打卡 软件架构 selenium - chromedriver 酷Q Air - CQHTTP 安装教程 将chrmoe驱动存放至 chrome根目录下Application文件夹 【C:\Program Files (x86)\Google\Chrome\Application】 新增系统...
  • 需求描述我们需要登录考勤系统(网页端,非手机端)进行签到,如果不想每天都早早起来打卡签到,就可以通过写程序实现这一功能。业务梳理通过长时间的早起打卡签到发现规律,我每天只是不停的点击,签到,都是规律性...
  • 本文介绍如何编写python脚本,实现网站自动、定时健康打卡功能,打卡成功后截取当前屏幕信息,并通过发送邮件告知对方已经打卡成功。 正文 思路: 1 package 安装 2 实现网站打卡功能 3 保存当前网站截图 4 发送...
  • Java复习打卡day34

    2021-04-19 17:06:30
    Java复习打卡day34javascript语言的介绍javascript语言的使用方法基础语法数据类型的介绍数据的二八十六进制的转换 javascript语言的介绍 JavaScript语言介绍 当大家在网页中看到网页中有3D/2D动画图像、随时间动态...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 884
精华内容 353
关键字:

网页打卡脚本