前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于获取某省专插本录取人数的代码

关于获取某省专插本录取人数的代码

作者头像
ITJoker
发布2022-08-30 11:20:59
1290
发布2022-08-30 11:20:59
举报
文章被收录于专栏:ITJoker的吹逼专栏
代码语言:javascript
复制
from requests import post
from requests import get
import time
import re


host = 'https://www.example.com'
headers = {
    'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    'Referer':'https://www.example.com',
    'Accept-Encoding': 'utf-8',
    'Connection':'keep-alive',
    'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100100 Firefox/74.0',
    'Content-Type':'application/x-www-form-urlencoded',
    'Cookie':'',
    }
def getSchool():
    schoolList = {}
    schoolList['num'] = []
    schoolList['name'] = []
    schoolList['school'] = {}
    url = '{0}/xxx'.format(host)
    response = get(url,headers)
    data_pattern = r'<select name="yxh" id="yxh">(.*?)</select>'
    raw_data = response.text.replace('\r\n','').replace('\t','')
    data = re.findall(data_pattern,raw_data)[0]
    school_no_pattern = '<option value=\"(.*?)\" >'

    school_name_pattern = '<option value="{0}" >(.*?)</option>'
    false_name = '---请选择---'
    for no in re.findall(school_no_pattern,data):
        if '---请选择---' in no:
            pass
        else:
            schoolList['num'].append(no)
    for i in range(len(schoolList['num'])):
        school_name_pattern = '<option value="{0}" >(.*?)</option>'.format(schoolList['num'][i])
        schoolname = re.findall(school_name_pattern,data)[0]
        schoolList['name'].append(schoolname)
        schoolList['school'][schoolname] = schoolList['num'][i]
    return (schoolList)

def getNum(school_num,school_name):
    if (school_num == ""):
        return
    query_url ='{0}/xxx'.format(host)
    num = int(9999)
    current_num = 0
    frontNum = int(school_num) * 100000
    sum_ = 0
    while(True):
        payload = 'kslx0=0&userid='+ str(frontNum  + current_num + num)
        response = post(query_url,data = payload,headers = headers)
        time.sleep(1)
        if '考生号错误' in response.text:
            num /= 2
            num = int(num)
        else:
            current_num = num
            sum_ = num
            num += 1
            payload = 'kslx0=0&userid='+ str(frontNum  + current_num + num)
            response = post(query_url,data = payload,headers = headers)
            if '考生号错误' in response.text:
                num /= 2
                num = int(num)
                return ("{0} {1} 报名人数:{2}" .format(school_name,school_num,str(sum_)))
                break;
            else:
                pass
        if(num == 0):
            break     
    return

def main():
    schoolList = getSchool()
    school_name_list = schoolList['name']
    for school_name in school_name_list:
        print('正在获取: {0} ...'.format(school_name))
        print(getNum(schoolList['school'][school_name],school_name))
main()
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档