node抓取的河北地区非全日制研究生的招生专业和学校
官方接口不能查某个学校有哪些专业,只能按专业查,所以自己写了一下,比较潦草。但是能大概看个完整版,官网有点拉,经常超时,也可能是限流
[
{
"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))
})()
转载自:https://segmentfault.com/a/1190000041735169