2023第一天,给你们展示一下用Python实现自动答题

前言

python实现自动答题?

别管,我这就给你们展示一下 (效果图看不了 不知道为什么说我违gui)😥

话不多说,咱就直接看代码吧

在这里插入图片描述

代码

准备模块

import requests
import parsel
from selenium import webdriver

发送请求

所有 源码 点击 此处 领取 即可

def get_response(html_url):
    """
    发送请求
    :param html_url: 请求网址
    :return: 响应对象
    """
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'
    }
    response = requests.get(url=html_url, headers=headers)
    return response

获取答案链接

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:309488165
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''

def get_answer_url(html_url):
    """
    获取答案链接
    :param html_url:
    :return:
    """
    html_data = get_response(html_url).text
    selector = parsel.Selector(html_data)
    answer_url_id = selector.css('.Content li::attr(c)').getall()
    answer_url_list = [f'https://tiba.jsyks.com/Post/{i}.htm' for i in answer_url_id]
    return answer_url_list

获取答案

def get_answer_result(answer_url):
    """
    获取答案
    :param answer_url:
    :return:
    """
    answer_data = get_response(html_url=answer_url).text
    selector = parsel.Selector(answer_data)
    question = selector.css('#question a::text').get()
    answer = selector.css('#question h1 u::text').get()
    if answer == '对':
        answer = '正确'
    elif answer == '错':
        answer = '错误'

    answer_dict = {
        '问题': question,
        '答案': answer
    }
    return answer_dict

获取所有问题以及答案

def get_all_answer(answer_url_list):
    """
    获取所有问题以及答案
    :param link:
    :return:
    """
    page = 1
    for answer_url, li in zip(answer_url_list, lis):
        answer_dict = get_answer_result(answer_url)
        bs = li.find_elements_by_css_selector('b')
        num = 1
        for b in bs:
            choose = b.text
            if len(choose) > 2:
                choose = choose[0]
            print(choose, answer_dict['答案'])
            if choose in answer_dict['答案']:
                driver.find_element_by_css_selector(f'#LI{page} b:nth-child({num+2})').click()
                print('点击了')
            else:
                print('没有点击')
            num += 1
        page += 1
        print(answer_dict)

最后

朋友们学习python,有时候不知道怎么学,从哪里开始学。掌握了基本的一些语法或者做了两个案例后,不知道下一步怎么走,不知道如何去学习更加高深的知识。
那么对于这些朋友们,我准备了大量的免费视频教程,PDF电子书籍,以及源代码!直接在文末名片自取即可哦!

今天的分享到这里就结束了

顺便给大家推荐一些Python视频教程,希望对大家有所帮助:

Python零基础教学合集

对文章有问题的,或者有其他关于python的问题,可以在评论区留言或者私信我哦
觉得我分享的文章不错的话,可以关注一下我,或者给文章点赞(/≧▽≦)/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值