1. 项目简介

        本项目利用网络爬虫技术从某高考网抓取各大高校的历年高空录取分数线,并进行数据清洗存储到文件系统中,对外提供高校信息查询服务和依据高空分数筛选可能录取的高校等信息,方便考生选择合适的学校进行填报。 以高校搜索,查看该高校不同专业历年的录取分数线,以专业搜索,可查看不同高校该专业的录取分数线情况,以分数搜索,可查看可录取的高校和专业。 本项目利用 pandas + sklearn 对高考的高校和专业的数据进行统计分析,并利用 flask 搭建后台,构建标准 restful 接口,前端利用 bootstrap + echarts + jquery 调用后台接口,并进行前端的渲染可视化。


【系统演示】基于 Python 的高考志愿高校及专业分析系统


2. 功能组成

       基于 Python 的高考志愿高校及专业分析系统的功能主要包括:

python被纳入高考 python 高考志愿_网络爬虫

3. 高校及专业录取分数线信息抓取

        利用 python 的 request + beautifulsoup 等工具包编写高考分数线信息的原生爬虫,抓取的信息经过数据清洗和结构化后存储到数据库或文件系统中:

for page in range(1, total_page):
    url = base_url.format(page)
    print('抓取第 {} 页的数据, {}'.format(page, url))

    headers = {
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
        'Content-Type': 'application/x-www-form-urlencoded',
        'Accept-Encoding': 'gzip, deflate, compress',
        'Accept-Language': 'en-us;q=0.5,en;q=0.3',
        'Cookie': 'Your cookies',
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36',
        'Referer': url,
        'Host': 'xxxxxx.xxx.com'
    }
    response = requests.get(url, headers=headers)
    response.encoding = 'gbk'
    soup = BeautifulSoup(response.text, 'lxml')
    scores_List = soup.find(name='div', attrs={'class': 'scores_List'})

    dls = scores_List.find_all(name='dl')

    for dl in dls:
        try:
            score_info = {}
            name = dl.find('strong').text
            link = dl.find('a')['href']
            print(name, link)
            # 打开学校的详情页
            response = requests.get(link, headers=headers)
            response.encoding = 'gbk'
            soup = BeautifulSoup(response.text, 'lxml')
            # 大学的基本信息
            college_msg = soup.find('div', class_=['college_msg', 'bk'])
            # 趋势线
            score_qushi = soup.find('div', class_='graybox').img
            if score_qushi:
                score_qushi = score_qushi['src']

            score_table = soup.find('div', class_='tabCon5').table
            # 平均分
            mean_score = score_table.find('td', id='pjf').text

            score_info = {
                '高校': name,
                '链接': link,
                '基本信息': str(college_msg),
                '录取分数线图': score_qushi,
                '平均分': int(mean_score),
                '历年分数线': str(score_table)
            }
            all_school_infos.append(score_info)
        except Exception as e:
            pass

4. 基于 Python 的高考志愿高校及专业分析系统

4.1 系统注册登录

python被纳入高考 python 高考志愿_数据挖掘_02

4.2 查询高校基本信息和历年录取分数线

        搜索清华大学:

python被纳入高考 python 高考志愿_python被纳入高考_03

        搜索中央财经大学:

python被纳入高考 python 高考志愿_数据挖掘_04

4.3 知分填志愿:查询可能录取的高校

python被纳入高考 python 高考志愿_python_05

4.4  专业搜索:查询各大高校专业分数线

        用户输入感兴趣的专业,查看各大高校该专业的录取分数线情况,点击该学校可继续查看该学校的基本信息和历年的录取情况:

python被纳入高考 python 高考志愿_python_06

5. 总结

         本项目利用网络爬虫技术从某高考网抓取各大高校的历年高空录取分数线,并进行数据清洗存储到文件系统中,对外提供高校信息查询服务和依据高空分数筛选可能录取的高校等信息,方便考生选择合适的学校进行填报。 以高校搜索,查看该高校不同专业历年的录取分数线,以专业搜索,可查看不同高校该专业的录取分数线情况,以分数搜索,可查看可录取的高校和专业。 本项目利用 pandas + sklearn 对高考的高校和专业的数据进行统计分析,并利用 flask 搭建后台,构建标准 restful 接口,前端利用 bootstrap + echarts + jquery 调用后台接口,并进行前端的渲染可视化。