python实现对python123平台题库爬取

这篇具有很好参考价值的文章主要介绍了python实现对python123平台题库爬取。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近在搞软件工程课程设计,做了一个在线考试系统,为了弄到题库数据,简单利用了python中的selenium库实现对python123平台自动登录并获取相应的选择试题。

实现自动登录并获取题目

只针对了自己所做过的选择题进行爬取,然后把所得数据存储在excel表格中。

from time import sleep
from selenium.webdriver import Chrome
import csv


datelist = []

def get_element():
    web.get("https://www.python123.io/index/login")
    uername = web.find_element_by_xpath(
        '//*[@id="links"]/div[1]/div[2]/div/div[1]/div[1]/div/div[1]/div/div[1]/div[2]/form/div[1]/div/input')
    passworld = web.find_element_by_xpath(
        '//*[@id="links"]/div[1]/div[2]/div/div[1]/div[1]/div/div[1]/div/div[1]/div[2]/form/div[2]/div/input')

    uername.send_keys('******')  # python123官网的用户名
    passworld.send_keys('******')  # python123的账户密码

    login = web.find_element_by_xpath(
        '//*[@id="links"]/div[1]/div[2]/div/div[1]/div[1]/div/div[1]/div/div[1]/div[2]/div[3]/div[1]/button')
    login.click()
    sleep(2)
    #选择课程
    web.find_element_by_xpath(
        '//*[@id="app"]/div/div[1]/div[1]/div[1]/nav/div[2]/div[1]/a[2]').click()
    sleep(2)
    #选择对应的课
    web.find_element_by_xpath(
        '//*[@id="app"]/div/div[1]/div[1]/div[2]/section/div/div[1]/div[2]/div/div/div/figure/img').click()
    sleep(2)

    #选择课程任务
    web.find_element_by_xpath(
        '//*[@id="app"]/div/div[1]/div[1]/div[2]/section/div/div/div[2]/div/div/div/div/div/div/div[1]/div/div/div/div[1]/div[3]/a[2]').click()
    sleep(2)


def parse_questionlist(datelist):

    #获取题目信息
    list = web.find_elements_by_css_selector('div[class="card-content is-clipped"]')

    for li in list:
        date = []

        timu = li.find_element_by_css_selector('div[class="mce-content-body"]').text  # 题目信息
        #print(timu)
        date.append(timu)

        xuanxiang = li.find_elements_by_css_selector('div[class="content content"]')

        for xuan in xuanxiang:
            Choose = xuan.find_element_by_css_selector('div[class="mce-content-body"]').text  # 选项
            date.append(Choose)
            #print(Choose)

        answer = li.find_element_by_css_selector('div.answers.rightanswer > span:nth-child(4)').text  # 答案
        date.append(answer)
        #print(answer)
        datelist.append(date)

    return datelist


def piliang_sava():


    #每个测试对应的selector
    num = [
        '//*[@id="app"]/div/div[1]/div[1]/div[2]/section/div/div/div[2]/div/div/div/div/div[2]/div[2]/div/div[1]/div',
        '//*[@id="app"]/div/div[1]/div[1]/div[2]/section/div/div/div[2]/div/div/div/div/div[2]/div[2]/div/div[2]/div',
        '//*[@id="app"]/div/div[1]/div[1]/div[2]/section/div/div/div[2]/div/div/div/div/div[2]/div[2]/div/div[3]/div',
        '//*[@id="app"]/div/div[1]/div[1]/div[2]/section/div/div/div[2]/div/div/div/div/div[2]/div[2]/div/div[4]/div',
        '//*[@id="app"]/div/div[1]/div[1]/div[2]/section/div/div/div[2]/div/div/div/div/div[2]/div[2]/div/div[5]/div',
        '//*[@id="app"]/div/div[1]/div[1]/div[2]/section/div/div/div[2]/div/div/div/div/div[2]/div[2]/div/div[6]/div',
        '//*[@id="app"]/div/div[1]/div[1]/div[2]/section/div/div/div[2]/div/div/div/div/div[2]/div[2]/div/div[7]/div',
        '//*[@id="app"]/div/div[1]/div[1]/div[2]/section/div/div/div[2]/div/div/div/div/div[2]/div[2]/div/div[8]/div'
        ]

    # 退出
    for i in range(0,8):

        # 选择测试
        sleep(5)

        web.find_element_by_xpath(num[i]).click()

        sleep(5)

        # 查看选择题
        web.find_element_by_xpath(
            '//*[@id="group-wrapper"]/div/div[2]/div[1]/div/a[4]').click()

        parse_questionlist(datelist)


        sleep(5)


        web.find_element_by_xpath(
            '//*[@id="app"]/div/div[1]/div[1]/div[2]/section/div/div/div[1]/div/div/div/ul[2]/li[2]/a').click()

    return datelist


def sava_data(datelist):

    f = open('python123题库爬取.csv','w',encoding='utf-8-sig',newline="")

    csv_write = csv.writer(f)

    csv_write.writerow(['题目', '选项A', '选项B', '选项C', '选项D','答案','题目状态'])

    for data in datelist:
        csv_write.writerow([data[0], data[1], data[2], data[3], data[4],data[5],'1'])

    f.close()


if __name__ == '__main__':

    web = Chrome()
    web.maximize_window()
    get_element()
    tiku = piliang_sava()
    #print(tiku)
    sava_data(tiku)

python爬取网站题库,python,selenium

python爬取网站题库,python,selenium文章来源地址https://www.toymoban.com/news/detail-531394.html

ps:初学python,可能有些地方不足,希望大家指点!

到了这里,关于python实现对python123平台题库爬取的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python selenium 爬取百度翻译结果的代码实现

    Python是一种功能强大的编程语言,可以用于各种任务,包括网络爬虫。 在本文中,我们将使用selenium库,来实现爬取百度翻译结果的功能。百度翻译是一个广泛使用的在线翻译工具,它提供了多种语言之间的即时翻译服务。selenium库可通过pip安装: pip install selenium 。 使用Se

    2024年02月03日
    浏览(50)
  • selenium爬虫框架爬取某壁纸网站

    基础知识 环境配置 开始爬虫 简单分析目标网站 写函数 获取浏览器对象: 下载每一张图片: 获取每一页的源代码: 运行print_result_every_page python基础语法 面向对象基础 html基础 xpath基础 selenium框架的基本使用 request库 lxml库      3.安装浏览器xpath插件         打开谷歌浏览

    2024年02月05日
    浏览(41)
  • Python爬虫入门系列之Selenium实现动态页面爬取

    在前一篇博客中,我们学习了如何使用多线程优化爬虫程序。但是,如果要爬取的网页是动态生成的或者包含大量JavaScript代码,单纯的静态页面爬取就不足够了。为了解决这个问题,我们可以使用Selenium库来模拟真实的浏览器行为,从而实现动态页面的爬取。 Selenium是一个用

    2024年02月11日
    浏览(54)
  • Python爬虫:实现爬取、下载网站数据的几种方法

    使用脚本进行下载的需求很常见,可以是常规文件、web页面、Amazon S3和其他资源。Python 提供了很多模块从 web 下载文件。下面介绍 requests 模块是模仿网页请求的形式从一个URL下载文件 示例代码: 安装 wget 库 示例代码 有些 URL 会被重定向到另一个 URL,后者是真正的下载链接

    2024年02月05日
    浏览(70)
  • Python爬虫使用selenium爬取qq群的成员信息(全自动实现自动登陆)(1)

    browser.find_element_by_xpath(‘.//ul[@id=“headerNav”]/li[4]’).click() 8.点击群管理之后,进入群管理界面,我们需要的是成员管理 WebDriverWait(browser, 1000).until( EC.presence_of_all_elements_located( (By.CLASS_NAME, ‘color-tit’) ) ) browser.find_element_by_class_name(‘color-tit’).click() 9.点击成员管理之后会重新

    2024年04月28日
    浏览(45)
  • 使用爬虫爬取百度搜索结果及各网站正文(request库、selenium库和beautifulsoup库)

    任务: 给定搜索词,获取百度搜索结果 根据各项结果获取对应网站正文部分 header实际为一个字典,为访问百度时提供必要的信息。 一般来讲只需要提供 Cookie 就可以访问大多数网站,其余可能需要的还有 Host 、 User-Agent 等 通过分析百度搜索url可以发现 https://www.baidu.com/s?wd=茅

    2024年03月27日
    浏览(51)
  • python-docx:将excel爬取题库转化为word格式便于浏览

    POE的GPT4.0错误太多难以吐槽。 似乎段落和运行的删除一直是失败的,所以在第一次添加的时候设置好所有格式 大纲等级设置失败了

    2024年02月12日
    浏览(85)
  • 如何利用python爬取网站数据

    Python是一种非常适合用于网络爬虫的编程语言,以下是Python爬取网站数据的步骤: 1. 确定目标网站和所需数据:首先要找到需要爬取数据的网站,确定你需要爬取的数据是哪一部分。 2. 发送请求:使用Python中的requests库向目标网站发送请求,获取网站的HTML源码。 3. 解析HTM

    2024年02月06日
    浏览(42)
  • python爬取招聘网站数据

    这段代码是使用Selenium自动化测试模块进行网页爬取的示例代码。它通过模拟人的行为在浏览器中操作网页来实现爬取。具体的流程如下: 导入所需的模块,包括Selenium、时间、随机、csv等模块。 打开浏览器,创建一个Chrome浏览器实例。 设置要爬取的页数范围。 循环遍历每

    2024年02月02日
    浏览(66)
  • Python爬虫:如何使用Python爬取网站数据

    更新:2023-08-13 15:30 想要获取网站的数据?使用Python爬虫是一个绝佳的选择。Python爬虫是通过自动化程序来提取互联网上的信息。本文章将会详细介绍Python爬虫的相关技术。 在使用Python爬虫之前,我们需要理解网络协议和请求。HTTP是网络传输的重要协议,它是在Web浏览器和

    2024年02月13日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包