打印英语四六级准考证pdf

打印英语四六级准考证

注意点:
1.你必须具备一个能知道自己身份的资料
2.你还需要有第三方的验证码接口,其实不贵,1元可以500次,直接搜快识别注册就可以了
3.使用ip代理(不推荐,这是不合法的),当你爬到某次数时,会限制你爬取。(这还在学)
下面上代码:

import base64
import json
import time  # 计算耗费时间
import pymysql  # 连接数据库,由于我把数据存在数据库里面的
import requests
from selenium import webdriver

# 就是点提交的时候判断是否有弹框出现
def isElementExist():
    flag = True
    try:
        driver.find_element_by_css_selector('body > div.panel.window.panel-htop.messager-window')
        return flag
    except:
        flag = False
        return flag

# 第三方验证码API接口,我这里用的是快识别的接口,我觉得接近99.8%的正确率
def base64_api(uname, pwd, img, typeid):
    with open(img, 'rb') as f:
        base64_data = base64.b64encode(f.read())
        b64 = base64_data.decode()
    data = {"username": uname, "password": pwd, "typeid": typeid, "image": b64}
    result = json.loads(requests.post("http://api.ttshitu.com/predict", json=data).text)
    if result['success']:
        return result["data"]["result"]
    else:
        return result["message"]
    return ""

# 具体逻辑代码
def input_content(key,cname):
    time.sleep(3)
    # 选择省份按钮
    driver.find_element_by_css_selector('#selProvince > option:nth-child(18)').click()
    time.sleep(2)
    # 选择身份证类别按钮
    driver.find_element_by_css_selector('#selIDType > option:nth-child(2)').click()
    time.sleep(3)
    # 自动填写身份证
	driver.find_element_by_css_selector('#txtIDNumber').send_keys(key)
    time.sleep(1)
    # 自动填写米子按钮
    driver.find_element_by_css_selector('#txtName').send_keys(cname)
    # 截取图片
    img_label = driver.find_element_by_css_selector('#vcodeImg')
    time.sleep(2)
    # 截图保存本地,并发送给第三方。
    img_label.screenshot('yanzhengma.png')
    # 获得验证码
    result = base64_api(uname='你的快识别用户名', pwd='你的跨识别密码', img='验证码保存的路径在哪', typeid=3)
    # 发送验证码
    time.sleep(1)
    # 填写第三方发送的验证码
    driver.find_element_by_css_selector('#txtVerificationCode').send_keys(result)
    # 点击登录按钮
    time.sleep(4)
    driver.find_element_by_css_selector('#ibtnLogin').click()
    # 这里看是否有弹框,因为点击提交时,有可会有错误,验证码错误,或者给同学没有报名,所以必须判断
    result = isElementExist()
    print(result)
    # 为真有弹框弹出
    if result:
    	# 点击弹框里面的内容
        a = driver.find_element_by_css_selector('body > div.panel.window.panel-htop.messager-window > div.messager-body.panel-body.panel-body-noborder.window-body > div:nth-child(2)').text
        # 把验证错误的记录下来,并保存到文件中,以便查看
        if a== '验证码错误':
            with open('c.txt', mode='a', encoding='utf-8') as f:
                f.write(str(cname))
                f.write(str(key))
        print('================================',a , key, cname)
        # 点击弹框的确定按钮
        driver.find_element_by_css_selector(
            'body > div.panel.window.panel-htop.messager-window > div.dialog-button.messager-button > a').click()
         # 点击首页按钮
        driver.find_element_by_css_selector('#nav > div > ul > li:nth-child(2) > a').click()
        time.sleep(2)
        # 点击快速进入准考证按钮
        driver.implicitly_wait(5)
        driver.find_element_by_css_selector('#main_l > a.c_hei.cet_banner06').click()

    else:
        time.sleep(2)
        # 点击下载pdf按钮
        driver.find_element_by_css_selector('tbody > tr > td:nth-child(2) > a').click()
        time.sleep(6)
        # 首页按钮
        driver.find_element_by_css_selector('#nav > div > ul > li:nth-child(2) > a').click()
        time.sleep(2)
        # 进入按钮
        # 智能等待时间
        driver.implicitly_wait(5)
        driver.find_element_by_css_selector('#main_l > a.c_hei.cet_banner06').click()

# 连接我自己的数据库
def connect_db():
    db = pymysql.connect(host='localhost',
                         user='root',
                         password='数据库密码',
                         database='数据库名称',
                         port=3306,
                         charset='utf8')
    cursor = db.cursor()
    cursor.execute('select sname,carid from dangzhibu where cid not like "2016%"')
    db.commit()
    # 返回所有的结果
    result = cursor.fetchall()
    cursor.close()
    db.close()
    return result

lis = list(connect_db())  # 连接数据库返回的结果
# 返回一个浏览器对象
driver = webdriver.Edge('C:\Program Files (x86)\Microsoft\Edge\Application\msedgedriver.exe')
driver.get('http://cet-bm.neea.edu.cn/Home/QuickPrintTestTicket')
# 浏览器最大化
driver.maximize_window()
# 遍历所有数据库查询到的信息
# 如果没有数据库,可以直接调用input_content(身份证号,名字),不需要数据库
for i in lis:
    input_content(i[1],i[0])
    time.sleep(5)

总结:再写这个的时候还是遇见一些问题,比如怎么判断弹框是否出现,还有休眠时间的设置,这些都是一个很大的问题,特别是休眠时间需要把握,如果快了,按钮没有出来就需要点,结果就报错了。这个也可以用多线程,但是尽量不要用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
网络安全题库 网络安全题库全文共14页,当前为第1页。网络安全题库全文共14页,当前为第1页。 网络安全题库全文共14页,当前为第1页。 网络安全题库全文共14页,当前为第1页。 网络安全复习题 第7题[单选题] 1. 关于多重防火墙技术错误的是 用专家系统实现对入侵检测, 需将有关入侵的知识转化为 () A:组合主要取决于网管中心向用户提供什么样的服务,以 结构。 及网管中心能接受什么等级风险。 A:条件结构 B:设置的周边网络被攻破后,内部网络也就被攻破了。 B:then 结构 C:多重防火墙的组合方式主要有两种:叠加式和并行式。 C:if-then 结构 D:新旧设备必须是不同种类、不同厂家的产品。 D:while 循环结构 参考答案: B 参考答案: C 第 2 题[单选题] 第8题[单选题] 背包公钥密码系统利用的是 关于被屏蔽子网错误的是 A:背包问题的多解性 A:如果攻击者试图完全破坏防火墙,他可以重新配置连接 B:背包问题的 NP性 三个网的路由器, 既不切断连接又不要把自己锁在外面, 同 C:欧拉定理 时又不使自己 发现。 D:概率加密技术 B:在内部网络和外部网络之间建立一个被隔离的子网,用 参考答案: B 两台分组过滤路由器将这一子网分别与内部网络和外部网 第 3 题[单选题] 络分开。 下列哪项不是 RAS可靠性的内容? C:在很多实现中,两个分组过滤路由器放在子网的两端, A:可靠性 在子网内构成一个"非军事区" DMZ。 B:可恢复性 D:这种配置的危险带仅包括堡垒主机、子网主机及所有连 C:可维护性 接内网、外网和屏蔽子网的路由器。 D:可用性 参考答案: A 参考答案: B 第9题[单选题] 第 4 题[单选题] 以下不属于软件的保护方式的是 下面哪一项是计算机网络里最大的安全弱点 A:破坏磁盘保护法 A:网络木马 B:网卡序列号及 CPU序列号:只认随机带的网卡或者 CPU B:计算机病毒 C:软件注册(注册码,序列号,注册文件) C:用户帐号 D:压缩 D:网络连接 参考答案: D 参考答案: C 第 10题[单选题 ] 第 5 题[单选题] 计算机犯罪起源于: 用户策略我们集中归纳为以下几点,哪个是错误的? A:1940' A:只有用户拥有数据库通道。 B:1950' B:其他用户在没有管理员允许的情况下不能读取或更改文 C:1960' 件。 D:1970' C:管理员应该保证所有用户数据的完整性,机密性和有效 参考答案: A 性。 第 11题[单选题 ] D:用户应该知道他进入的命令,或者那些进入为了他的利 以下哪个不是安全操作系统的基本特征? 益。 A:弱化特权原则 参考答案: C B:自主访问控制和强制访问控制 第 6 题[单选题] C:安全审计功能 能够提供"审慎的保护"的安全等级是: D:安全域隔离功能 A:A类 参考答案: A B:B类 第 12题[单选题 ] C:C类 下列哪些不属于计算机安全中的硬件类危险: D:D类 A:灾害 参考答案: C B:人为破坏 最新范本 ,供参考! 网络安全题库全文共14页,当前为第2页。网络安全题库全文共14页,当前为第2页。 网络安全题库全文共14页,当前为第2页。 网络安全题库全文共14页,当前为第2页。 C:操作失误 C:计算机系统 硬件的保护机构不起作用。 或不能提供软件 D:数据泄漏 保护,操作系统没有安全保护机构,造成信息泄漏。 参考答案: D D:通讯网络 终端安装在不安全的环境, 产生电磁辐射, 以 第13题[单选题] 及通讯网线路上的泄漏。 KerberosSSP 能够提供三种安全性服务 , 不是的是 参考答案: A A:认证:进行身份验证 第 19题[单选题 ] B:代理:代替用户访问远程数据 以下加解密方法中,不能够泄露加密算法的是 C:数据完整性:保证数据在传送过程中不被篡改 A:E( M)=C, D (C)=M D:数据保密性:保证数据在传送过程中不被获取 B:EK(M) =C, DK(C) =M 参考答案: B C:EK1(M)=C, DK2 (C)=M 第14题[单选题] D:EK(M) =C, DF(K)(C) =M Debug 的单步执行是跟踪调试软件技术的基石。 以下不能有 参考答案: A 效破坏 debug 的基本方法是 第 20题[单选题 ] A:抑制跟踪中断 黑客将完成某一动作的程序依附在某一合法用户的正常程 B:封锁键盘输入 序中,这种攻击方式是 C:设置显示器的显示性能 A:口令入侵术 D:屏蔽中断 B:特洛伊木马 参考答案: D C:Email 病毒 第15题[单选题] D:监听术 目录的访问模式的最小集合是? 参考答案: B A: read 与 write-expand 第 21题[单选题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值