报志愿神器!python自动获取各大学高考录取分数线

一年一度的高考结束后,最激动人心的时刻莫过于高考志愿填报了!然而每年家长和学生们每年就填报志愿都有困惑,怎样才能让孩子的分数发挥最大价值,上最理想的学校?如果从网站里查每个学校的分数线再做横向对比,那怕要查到天荒地老。。

图片

如果利用爬虫技术,将所有大学的分数线整合到一个excel表中,那么各个大学的分数线高低变一目了然,能报哪个学校的局势就非常明朗了!

py拓海利用业余时间写了个python脚本,可以成功获取到2000所高校的高考录取线信息,包括本科一批、本科二批、本科提前批等各批次录取信息。话不多说,脚本代码如下:

# -*- coding:utf-8 -*-
from selenium import webdriver
import os
import time
import xlwings
# 浏览器加载选项,options下两个方法是不记录日志防止报错:连到系统上的设备没有发挥作用
options = webdriver.ChromeOptions()
options.add_argument('–log-level=3')
options.add_experimental_option('excludeSwitches', ['enable-logging'])
# 使用chrome浏览器 指定webdriver.exe地址
browser = webdriver.Chrome(executable_path=r'D:/chromedriver.exe',options=options,service_log_path=os.devnull)
#设置超时时间
browser.set_page_load_timeout(4)
#智能隐性等待时间
browser.implicitly_wait(30)
#打开excel程序
app = xlwings.App(visible=True,add_book=False)
#新建一个excel
workbook = app.books.add()
#新建一个sheet
sht = workbook.sheets('sheet1')
#新建一行标题并写入
rowA1 = ['大学名称','年份','录取批次','招生类型','最低分/最低位次','省控线']
sht.range('A1').value = rowA1
#用于查询table标签中第几行第几列的str
def row_cell_get_table_text(browser,locator,row,cell):
    locator = "%s/tr[%s]/td[%s]" % (locator,row+1,cell)
    a = browser.find_element_by_xpath(locator).text
    return a
#主函数:获取高考网的各个学校录取线信息,并写入excel
def gaokao():
    try:
        rowi = 2#初始化变量,用于excel行的参数传入
        for i in range(27,2000):#循环两千所学校
            print('学校id:',i)
            DAY_PAGE = "https://gkcx.eol.cn/school/"+str(i)+"/provinceline"
            try:
                browser.get(DAY_PAGE)
                time.sleep(2)#延迟冗余
            except:
                continue
            print('打开页面成功')
            print('当前页面url:',browser.current_url)
            
            browser.refresh()#刷新页面冗余
            locator = "//*[@class='line_table_box']/table/tbody"#指定到table标签
            for row in range(1,5):
                try:
                    print('获取分数信息中...')
                    name = browser.find_element_by_xpath("//*[@class='line1']/span").text#学校名称
                    a = row_cell_get_table_text(browser,locator,row,1)
                    b = row_cell_get_table_text(browser,locator,row,2)
                    c = row_cell_get_table_text(browser,locator,row,3)
                    d = row_cell_get_table_text(browser,locator,row,5)
                    e = row_cell_get_table_text(browser,locator,row,6)
                    list = []#初始化list
                    list.append(name)
                    list.append(a)
                    list.append(b)
                    list.append(c)
                    list.append(d)
                    list.append(e)
                    print(list)
                    sht.range("A"+str(rowi)).value = list#将爬到的值写入excel
                    rowi = rowi + 1#excel行加1
                except:
                    break
            #browser.refresh()
    except Exception as e:
        print(e)
if __name__ == '__main__':
    gaokao()
    workbook.save(f'd:\\gaokao.xlsx')
    workbook.close()

脚本跑起来后效果如下:

图片

脚本很简单,且该有注释的地方我都进行了注释,有一定python基础的人都可以看懂,我在这里说几个注意点:

from selenium import webdriver
import os
import time
import xlwings

注意import包导入完整

# 使用chrome浏览器 指定webdriver.exe地址
browser = webdriver.Chrome(executable_path=r'D:/chromedriver.exe',options=options,service_log_path=os.devnull)

我使用的是chrome浏览器,所以请下载对应chrome版本的chromedriver.exe用于程序自动控制浏览器并放到D盘根目录,下面是各个版本chromedriver下载链接:http://npm.taobao.org/mirrors/chromedriver

查看自己的浏览器版本请看这里:

图片

如果没有自己的版本就下载一个版本相近的试试~

上面的源码直接复制到本地就可以运行!

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

Python资料、技术、课程、解答、咨询也可以直接点击下面名片,添加官方客服斯琪

猜你喜欢

转载自blog.csdn.net/Python_cocola/article/details/131307967