Python 爬取高考各学校各专业录取分数线

下学期有个 个人项目,高考志愿填报系统,
需要高考不同学校不同专业的录取分数线

通过简单的网页分析,得到请求的接口,然后模拟这个过程即可

import csv
import json
import requests

def save_data(data):
    with open('./高考志愿.csv', encoding='UTF-8', mode='a+', newline='') as f:
        f_csv = csv.writer(f)
        f_csv.writerow(data)
    f.close()
    
print("#########"
      " 版权所有:Riand & 数据接口来源-https://www.gaokao.cn/school/search  & 在此表示感谢!"
      "##########")

header={
'user-agent': '' #自己填自己的
}
head=['省份','学校名称','专业','最低录取分','最低录取名次','选课要求']

with open('./高考志愿.csv', encoding='utf-8-sig', mode='w', newline='') as f:
    f_csv = csv.writer(f)
    f_csv.writerow(head)
    f.close()
s1='https://api.eol.cn/web/api/?admissions=&central=&department=&dual_class=&f211=&f985=&is_doublehigh=&is_dual_class=&keyword=&nature=&page='
s2='&province_id=&ranktype=&request_type=1&school_type=&size=20&top_school_id=[589]&type=&uri=apidata/api/gk/school/lists&signsafe=429e2ced223b25d694a7a8ce81f73915'
s3='https://static-data.gaokao.cn/www/2.0/schoolspecialindex/2022/'
s4='/33/3/16/'


for i in range(1,143):
    url=s1+str(i)+s2
    html = requests.post(url,headers=header).text
    unicodestr = json.loads(html)
    dat = unicodestr["data"]
    dat = dat["item"]
    for j in dat:
        school = j["name"]
        schoolid = j["school_id"]
        province_name=j["province_name"]
        print(school)
        for k in range(1, 10):
            urll = s3 + str(schoolid) + s4 + str(k) + '.json'
            htmll = requests.get(urll, headers=header).text
            unicode = json.loads(htmll)
            try:
                da = unicode["data"]
            except:
                break
            da = da["item"]
            for w in da:
                sc = w["min"]
                min_section = w["min_section"]
                spname = w["spname"]
                sp_info = w["sp_info"]
                tap = (province_name, school, spname, sc, min_section, sp_info)
                save_data(tap)



  • 4
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值