python爬取中国教育在线数据

毕设需要参考网上大佬做了个简单的爬虫,对python不熟悉写的不好。
专业信息爬取


```python
# coding=utf-8
import json
import pandas as pd
import requests
def detail(page_num):
    heads = {
   
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.106 Safari/537.36'}  # 请求头
    url = 'https://static-data.gaokao.cn/www/2.0/special/%s/pc_special_detail.json'#Url
    d2 = pd.DataFrame()
    #分页爬取一页10,需要对pandas进行安装pip install openpyxl
    for i in range(1,page_num):
        response = requests.get(url % (i), headers=heads)
        if response!=None:
            json_data = json.loads(response.text)
            my_json = json_data['data'] # 获得josn 数据的根目录
            df3 = pd.DataFrame({
   #d对my_json中文件进行获取
                'id':my_json['id'],
                'name':my_json['name'],
                '内容':my_json['content'],
                '工作':my_json['job'],
                'code':my_json['code'],
                'degree':my_json['degree'],
                '年限':my_json['limit_year'],
                '男女比例':my_json['rate'],
                'type':my_json['type'],
                'type_detail':my_json['type_detail']
            }, index=[0])
            d2 = d2.append(df3, ignore_index=True)
    print(d2)
    d2.to_excel("major.xlsx", index=False)

detail(5)

院校数据爬取
爬取的是2021年的院校录取最低分和院校的部分信息

import json

import numpy as np
import pandas as pd
import requests
import os
import time
import random
class School:
    school_id:""
    type:""
    name:""
    province_name:""
    city_name:""
    f211:""
    f985:""
    dual_class_name:""

#院校历年数据
#先循环获取每一页中的院校id,再从院校id进行准备的历年数据获取
def get_one_page(page_num):
    heads={
   'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.106 Safari/537.36'}#请求头,这个还是可以懂的
    url='https://api.eol.cn/gkcx/api/?access_token=&admissions=&central=&department=&dual_class=&f211=&f985=&is_doublehigh=&is_dual_class=&keyword=&nature=&page=%s&province_id=&ranktype=&request_type=1&school_type=&signsafe=&size=20&sort=view_total&top_school_id=[766,707]&type=&uri=apidata/api/gk/school/lists'
    list=[]
    df_all = pd.DataFrame()
    for i in range(1, page_num):  # 这个不用说了吧,用 i 来取代页码,从1到143
        response = requests.get(url % (i), headers=heads)  # 这个也不用说了,得到
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值