📜  在Python中使用Selenium检查 CBSE 结果

📅  最后修改于: 2022-05-13 01:54:47.285000             🧑  作者: Mango

在Python中使用Selenium检查 CBSE 结果

先决条件: Selenium Python

在本文中,我们将从他们的网站上抓取 CBSE 结果并将结果存储在 CSV 文件中。 CSV 文件将包含以下信息。

  1. 候选人名字
  2. 通过或失败状态
  3. 获得的分数

需要安装

  • 转到命令提示符并将其放入:
pip install selenium
  • 完成后,下载用于自动化的 Web 驱动程序。在这里,我们将使用来自 http://chromedriver.chromium.org/ 的 chromedriver

方法:

  1. 首先进入第 12 个网站,请遵循此链接(这是针对 CBSE 董事会第 12 个结果 2014 传递的)。
  2. 然后通过紧急 ctrl + shift + I 或进入浏览器设置并手动单击调查详细信息单击调查元素。
  3. 然后导航到填充卷号的框,然后复制 x_path。
  4. 然后导航视图提交按钮,然后复制 x_path。
  5. 我们希望将结果存储在 CSV 文件中,然后导航学生姓名、未通过状态、获得的分数,然后通过脚本自动填写卷号转到下一页查找学生姓名的 x_path、未通过状态、获取分数。

给出一些屏幕截图以逐步遵循此说明:

第1步:

第2步:

第 3 步:

第4步:

第 5 步:

第 6 步:

跟随同样的左三个主题

下面是实现:

Python3
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
import csv
import time
  
  
# creating csv file
filename = "cbse.csv"
  
# open csv file to write
f = open(filename, 'w')
  
# creat header in file
header = "NAME,STATUS,NUM\n"
f.write(header)
  
# put range of rollnumber
for i in range(9639428, 9639432):
      
    # use try and exception because if any
    # rollnumber is invalid then whole
    # program is not stop.
    try:
        driver = webdriver.Chrome()
          
        # link is given above copy and paste
        driver.get(
            "http://resultsarchives.nic.in/cbseresults/cbseresults2014/class12/cbse122014_total.htm")
  
        # put rollnumber
        driver.find_element_by_xpath(
            '/html/body/table[3]/tbody/tr/td/font/center[2]/form/div[1]/center/p/input[1]').send_keys(i)
          
        # view result xpath
        driver.find_element_by_xpath(
            '/html/body/table[3]/tbody/tr/td/font/center[2]/form/div[1]/center/p/input[2]').click()
          
        # student name
        name = driver.find_element_by_xpath(
            '/html/body/div[2]/table[2]/tbody/tr[2]/td[2]/font/b').text
          
        # status pass or fail
        status = driver.find_element_by_xpath(
            '/html/body/div[2]/div/center/table/tbody/tr[12]/td[2]/b[1]/font').text
          
        # first subject find xpath then next 4 subject
        m1 = driver.find_element_by_xpath(
            '/html/body/div[2]/div/center/table/tbody/tr[2]/td[5]/font').text
        m2 = driver.find_element_by_xpath(
            '/html/body/div[2]/div/center/table/tbody/tr[3]/td[5]/font').text
        m3 = driver.find_element_by_xpath(
            '/html/body/div[2]/div/center/table/tbody/tr[4]/td[5]/font').text
        m4 = driver.find_element_by_xpath(
            '/html/body/div[2]/div/center/table/tbody/tr[5]/td[5]/font').text
        m5 = driver.find_element_by_xpath(
            '/html/body/div[2]/div/center/table/tbody/tr[6]/td[5]/font').text
          
        # sum all marks
        num = str(int(m1)+int(m2)+int(m3)+int(m4)+int(m5))
  
        # all details fill into file
        f.write(name+","+status[9:]+","+num+"\n")
        driver.close()
      
    except NoSuchElementException as exception:
        continue
  
f.close()


输出: