likes
comments
collection
share

node抓取的河北地区非全日制研究生的招生专业和学校

作者站长头像
站长
· 阅读数 23

官方接口不能查某个学校有哪些专业,只能按专业查,所以自己写了一下,比较潦草。但是能大概看个完整版,官网有点拉,经常超时,也可能是限流

[

{
    "zy": "金融",
    "yx": [
        "(10075)河北大学",
        "(10079)华北电力大学(保定)"
    ]
},
{
    "zy": "应用统计",
    "yx": [
        "(10079)华北电力大学(保定)"
    ]
},
{
    "zy": "国际商务",
    "yx": [
        "(11832)河北经贸大学"
    ]
},
{
    "zy": "马克思主义理论",
    "yx": [
        "(10082)河北科技大学",
        "(10107)石家庄铁道大学"
    ]
},
{
    "zy": "法律",
    "yx": [
        "(10075)河北大学",
        "(10079)华北电力大学(保定)",
        "(10086)河北农业大学",
        "(11832)河北经贸大学"
    ]
},
{
    "zy": "警务",
    "yx": [
        "(11105)中国人民警察大学"
    ]
},
{
    "zy": "体育学",
    "yx": "获取超时了"
},
{
    "zy": "教育",
    "yx": [
        "(10075)河北大学",
        "(10092)河北北方学院",
        "(10094)河北师范大学"
    ]
},
{
    "zy": "体育",
    "yx": [
        "(10798)河北科技师范学院"
    ]
},
{
    "zy": "汉语国际教育",
    "yx": [
        "(10082)河北科技大学"
    ]
},
{
    "zy": "应用心理",
    "yx": [
        "(10081)华北理工大学"
    ]
},
{
    "zy": "翻译",
    "yx": [
        "(10079)华北电力大学(保定)",
        "(10081)华北理工大学",
        "(10082)河北科技大学",
        "(10094)河北师范大学"
    ]
},
{
    "zy": "新闻与传播",
    "yx": [
        "(10075)河北大学"
    ]
},
{
    "zy": "物理学",
    "yx": [
        "(10082)河北科技大学"
    ]
},
{
    "zy": "化学",
    "yx": [
        "(10082)河北科技大学"
    ]
},
{
    "zy": "力学",
    "yx": "获取超时了"
},
{
    "zy": "农业工程",
    "yx": "获取超时了"
},
{
    "zy": "电子信息",
    "yx": [
        "(10079)华北电力大学(保定)",
        "(10082)河北科技大学",
        "(10086)河北农业大学"
    ]
},
{
    "zy": "机械",
    "yx": [
        "(10079)华北电力大学(保定)",
        "(10082)河北科技大学",
        "(10086)河北农业大学",
        "(10216)燕山大学"
    ]
},
{
    "zy": "材料与化工",
    "yx": [
        "(10082)河北科技大学"
    ]
},
{
    "zy": "资源与环境",
    "yx": [
        "(10079)华北电力大学(保定)",
        "(10082)河北科技大学"
    ]
},
{
    "zy": "能源动力",
    "yx": [
        "(10079)华北电力大学(保定)",
        "(10082)河北科技大学",
        "(10107)石家庄铁道大学"
    ]
},
{
    "zy": "土木水利",
    "yx": [
        "(10075)河北大学",
        "(10086)河北农业大学",
        "(10216)燕山大学"
    ]
},
{
    "zy": "生物与医药",
    "yx": [
        "(10082)河北科技大学",
        "(10086)河北农业大学"
    ]
},
{
    "zy": "交通运输",
    "yx": [
        "(10107)石家庄铁道大学"
    ]
},
{
    "zy": "草学",
    "yx": "获取超时了"
},
{
    "zy": "农业",
    "yx": [
        "(10076)河北工程大学",
        "(10086)河北农业大学",
        "(10092)河北北方学院",
        "(10798)河北科技师范学院"
    ]
},
{
    "zy": "兽医",
    "yx": [
        "(10798)河北科技师范学院"
    ]
},
{
    "zy": "风景园林",
    "yx": [
        "(10086)河北农业大学",
        "(10107)石家庄铁道大学"
    ]
},
{
    "zy": "药学",
    "yx": "获取超时了"
},
{
    "zy": "公共卫生",
    "yx": [
        "(10081)华北理工大学"
    ]
},
{
    "zy": "护理",
    "yx": [
        "(10081)华北理工大学"
    ]
},
{
    "zy": "工商管理",
    "yx": [
        "(10075)河北大学",
        "(10076)河北工程大学",
        "(10077)河北地质大学",
        "(10080)河北工业大学",
        "(10082)河北科技大学",
        "(10094)河北师范大学",
        "(10107)石家庄铁道大学",
        "(10216)燕山大学",
        "(11832)河北经贸大学"
    ]
},
{
    "zy": "公共管理",
    "yx": [
        "(10075)河北大学",
        "(10079)华北电力大学(保定)",
        "(10080)河北工业大学",
        "(10081)华北理工大学",
        "(10094)河北师范大学",
        "(10216)燕山大学",
        "(11832)河北经贸大学"
    ]
},
{
    "zy": "会计",
    "yx": [
        "(10079)华北电力大学(保定)",
        "(10086)河北农业大学",
        "(11832)河北经贸大学"
    ]
},
{
    "zy": "工程管理",
    "yx": [
        "(10077)河北地质大学",
        "(10079)华北电力大学(保定)",
        "(10081)华北理工大学",
        "(10082)河北科技大学",
        "(10107)石家庄铁道大学",
        "(11832)河北经贸大学"
    ]
},
{
    "zy": "艺术",
    "yx": "获取超时了"
}

]

附上抓取代码

const reqwest = require("reqwest");
const fs = require("fs")
const qs = require('qs');
const axios = require('axios')
const cheerio = require('cheerio');



(async function () {
    axios.interceptors.response.use(response=>{
        return response.data
    })
    let zylist = await axios({ url: "https://yz.chsi.com.cn/zsml/pages/getZy.jsp", method: 'post' })
    console.log(zylist)
    // zylist = JSON.parse(zylist)
    let json = []
    for (let i = 0; i < zylist.length; i++) {
        let params = {
            ssdm: '13',
            dwmc: "",
            mldm: "",
            mlmc: "",
            yjxkdm: zylist[i].dm,
            zymc: "",
            xxfs: "2",
        }
        params = qs.stringify(params)
        let zy = zylist[i].mc
        let yx = []
        try {
            var dom_res = await axios({ url: "https://yz.chsi.com.cn/zsml/queryAction.do", method: 'post', data: params, contentType: 'application/x-www-form-urlencoded', timeout: 3300 })
        } catch (e) {
            yx='获取超时了'
            json.push({ zy, yx })
            console.log({ zy, yx })
           continue;
        }

        var $ = cheerio.load(dom_res);
        $('.ch-table tbody tr').each(function (index, tr) {
            let name = $('td', tr).eq(0).text().trim()
            if (name === '很抱歉,没有找到您要搜索的数据!') {
                return false
            }else{
                yx.push(name)
            }

        })
        if (yx.length !== 0) {
            json.push({ zy, yx })
            console.log({ zy, yx })
        }

    }
    console.log(json)
    fs.writeFileSync('./list.json', JSON.stringify(json))
})()