Beispiel #1
0
def Refreshed(second):
    '''
    18版合同“刷新职位”
    :return:
    '''
    login('00852','20181205')
    position_url = 'https://easy.lagou.com/parentPosition/multiChannel/myOnlinePositions.json'
    position_header = get_code_token('https://easy.lagou.com/position/multiChannel/myOnlinePositions.htm')
    s = form_post(url=position_url,headers=position_header,data={'pageNo':1},remark='获取职位id')
    positionId=s['content']['data']['parentPositionVOs'][0]['positions'][0]['positionId']
    print(positionId)
    refresh_url = "https://easy.lagou.com/position/refreshPosition.json"
    refresh_header = get_code_token("https://easy.lagou.com/position/my_online_positions.htm?pageNo=1")
    refresh_data = {'positionId': positionId}
    print (refresh_header)
    jsonobject = form_post(url=refresh_url,headers=refresh_header,data=refresh_data,remark='刷新职位')
    a=jsonobject.get("state")
    print(a)

    if a=="406":
        assert True==True
    else:
        time.sleep(second)
        jsonobject = form_post(url=refresh_url,headers=refresh_header,data=refresh_data,remark='刷新职位')
        assert_equal("操作成功","操作成功","首次刷新成功","首次刷新失败")


# Refreshed(10)
Beispiel #2
0
def goods():
    login('00853', '05180001')
    url = 'https://jf.lagou.com/integral/mall/my/goods.json'
    return get_requests(url, remark='我兑换的商品')


# goods()
Beispiel #3
0
def ScheduleList(userid):
    '''
    查询未来28天排期
    :param userid:
    :return:
    '''
    login('00852', '20181205')
    position_url = 'https://easy.lagou.com/parentPosition/multiChannel/myOnlinePositions.json'
    position_header = get_code_token(
        'https://easy.lagou.com/position/multiChannel/myOnlinePositions.htm')
    s = form_post(url=position_url,
                  headers=position_header,
                  data={'pageNo': 1},
                  remark='获取职位id')
    positionId = s['content']['data']['parentPositionVOs'][1]['positions'][0][
        'positionId']
    print(positionId)
    header = get_app_header(userid)
    url = "https://gate.lagou.com/v1/zhaopin/topCard/" + str(
        positionId) + "/scheduleList"
    object = get_requests(url=url, headers=header, remark="查询未来28天排期")
    message = object['message']
    assert_equal("操作成功", message, "查询未来28天排期接口正确", "查询未来28天排期接口错误")


# MySchedule(100014641)
# SendBusiness(100014641)
# ScheduleList(100014641)
Beispiel #4
0
def akeyRefresh(second):
    login("00852", "20181205")
    position_url = 'https://easy.lagou.com/parentPosition/multiChannel/myOnlinePositions.json'
    position_header = get_code_token(
        'https://easy.lagou.com/position/multiChannel/myOnlinePositions.htm')
    s = form_post(url=position_url,
                  headers=position_header,
                  data={'pageNo': 1},
                  remark='获取职位id')
    positionId = s['content']['data']['parentPositionVOs'][1]['positions'][0][
        'positionId']
    print(positionId)
    refresh_url = "https://easy.lagou.com/parentPosition/multiChannel/statistics.json"
    refresh_header = get_code_token(
        "https://easy.lagou.com/position/my_online_positions.htm?pageNo=1")
    refresh_data = {'needCandidateNum': 'true', 'parentIds': positionId}
    print(refresh_header)
    jsonobject = form_post(url=refresh_url,
                           headers=refresh_header,
                           data=refresh_data,
                           remark='一键刷新职位')
    a = jsonobject.get("message")
    print(a)

    if a == "操作成功":
        assert_equal("操作成功", a, "一键刷新成功", "一键刷新失败")
    else:
        time.sleep(second)
        jsonobject = form_post(url=refresh_url,
                               headers=refresh_header,
                               data=refresh_data,
                               remark='刷新职位')
        assert_equal("操作成功", a, "一键刷新成功", "一键刷新失败")
Beispiel #5
0
def detail(gooids):
    login('0086', '18810432995')
    url = 'https://jf.lagou.com/integral/mall/goods/detail.json'
    data = {'goodsId': gooids}
    return get_requests(url=url, remark='商品详情', data=data)


# detail()
def post_position(phone, addressId):
    '''
    批量发布职位
    :param sum: 发布职位个数
    :return: 发布职位的请求

    '''
    login('00853', phone)
    count = 0
    posit_list = [('开发|测试|运维类', '后端开发', 'Java', '高级Java'),
                  ('开发|测试|运维类', '移动前端开发', 'IOS', '高级IOS'),
                  ('开发|测试|运维类', '移动前端开发', 'Android', '高级Android')]
    # for i in range(3):
    posit = random.randint(0, 2)
    try:
        refer_createPosition_url = "https://easy.lagou.com/position/multiChannel/createPosition.htm"
        Position_header = get_code_token(refer_createPosition_url)
        createPosition_url = "https://easy.lagou.com/parentPosition/multiChannel/create.json"
        createPosition_data = {
            **{
                'isSchoolJob': '1',
                'channelTypes': 'LAGOU',
                'department': '用户价值部',
                'jobNature': '全职',
                'salaryMin': '10',
                'salaryMax': '12',
                'education': '本科',
                'workAddressId': addressId,
                'positionBrightPoint': '20薪',
                'workYear': '应届毕业生',
                'channels': '108',
                'recommend': True,
                'extraInfor': '[{"labels":[{"id":"1","name":"电商"}]}]',
                'positionDesc': '<p>脑洞大,创意达,能吃苦。脑洞大,创意达,能吃苦。脑洞大,创意达,能吃苦。脑洞大</p>',
                'labels': '[{"id":"1","name":"电商"}]',
                'parentExtraInfo': '{}',
                "useEnergyCard": False
            }, "firstType": posit_list[posit][0],
            "positionType": posit_list[posit][1],
            "positionThirdType": posit_list[posit][2],
            "positionName": "校招需求" + posit_list[posit][3]
        }
    except:
        pass

    remark = "批量发布职位成功"
    r = form_post(url=createPosition_url,
                  data=createPosition_data,
                  headers=Position_header,
                  remark=remark)
    try:
        if r['state'] == 1:
            count += 1
    except:
        pass

    return {'count': count}
Beispiel #7
0
def address_id(code):
    '''code: 市的code, 获取市的区域的code, 返回lbsList'''
    login('00852', 20181205)
    url = 'https://easy.lagou.com/lbs/getChildLbsInfoByCode.json?code={}'.format(
        code)
    header = get_code_token(
        url='https://easy.lagou.com/position/multiChannel/createPosition.htm')
    remark = '获取地址id'
    content = get_requests(url=url, headers=header, remark=remark)
    return content['content']['data']['lbsList']
Beispiel #8
0
def PositionId():
    '''
    获取职位id
    :param userid:
    :return:
    '''
    login('00852', '20181205')
    res = get_strict_pages_orderResumes()
    positionId = res['content']['result'][0]['id']
    return positionId
Beispiel #9
0
def create_company_picture(company_info):
    '''创建公司图集'''
    for da in company_info:
        login('00853', da['phone'])
        r = saveCompanyProfile(da['companyId'])
        if r['state'] == 1:
            da['pic'] = 1
            print(str(da['companyId']) + '公司图片添加成功')
        else:
            continue
        return company_info
Beispiel #10
0
    def get(self):
        parser = reqparse.RequestParser()
        parser.add_argument('countryCode', type=str, help="请输入正确地区编号", required=True)
        parser.add_argument('phone', type=str, help="请输入正确手机号", required=True)
        args = parser.parse_args()

        login(args['countryCode'], args['phone'])
        cuserId, resumeId = get_userId_resumeId()
        company_id, compant_mds_Id, buserId = get_compangy()

        return {'state': 1, 'content': {'cuserId': cuserId, 'resumeId': resumeId, 'company_id': company_id,
                                        'compant_mds_Id': compant_mds_Id, 'buserId': buserId}}
def post_position_city(sum, addressId):
    '''
    批量发布职位
    :param sum: 发布职位个数
    :return: 发布职位的请求

    '''
    reslist = []
    login('00852', 20181205)
    for i in range(sum):
        position_info = postype[random.randint(0, 8)]
        firstType = position_info['firstType']
        positionType = position_info['positionType']
        positionThirdType = position_info['positionThirdType']
        positionName = position_info['positionName']
        refer_createPosition_url = "https://easy.lagou.com/position/multiChannel/createPosition.htm"
        Position_header = get_code_token(refer_createPosition_url)
        createPosition_url = "https://easy.lagou.com/parentPosition/multiChannel/create.json"
        createPosition_data = {
            **{
                'isSchoolJob': '1',
                'channelTypes': 'LAGOU',
                'department': '111',
                'jobNature': '全职',
                'salaryMin': '11',
                'salaryMax': '12',
                'education': '不限',
                'workAddressId': addressId,
                'positionBrightPoint': '11111',
                'workYear': '应届毕业生',
                'channels': '108',
                'recommend': True,
                'extraInfor': '[{"labels":[{"id":"1","name":"电商"}]}]',
                'positionDesc': '<p>111111111111111111111111111111111111111111111</p>',
                'labels': '[{"id":"1","name":"电商"}]',
                'parentExtraInfo': '{}',
                "useEnergyCard": False
            }, "firstType": firstType,
            "positionType": positionType,
            "positionThirdType": positionThirdType,
            "positionName": positionName + str(random.randint(10, 110))
        }

        remark = "批量发布职位" + str(sum) + "个成功"
        r = form_post(url=createPosition_url,
                      data=createPosition_data,
                      headers=Position_header,
                      remark=remark)
        reslist.append(r)
    return reslist
Beispiel #12
0
def checkOrderResumes(userid):
    '''
    生成或获取简历公开查看链接(Alanzhang)
    :return:
    '''
    login('00852', '20181205')
    wait(2000)
    id = get_requests("https://easy.lagou.com/can/new/list.json",
                      headers=None,
                      remark="获得简历id")
    orderid = id['content']['rows'][0]['id']
    print(orderid)
    header = get_app_header(userid)
    url = "https://gate.lagou.com/v1/zhaopin/orderResumes/" + orderid + "/public/url?generatesANew=false"
    jsonobject = get_requests(url=url, headers=header, remark="生成或获取简历公开查看链接")
    meassage = jsonobject['message']
    assert_equal("操作成功", meassage, "生成或获取简历公开查看链接", "生成公开链接错误")
Beispiel #13
0
def OperateSchedule(userid):
    '''
    置顶卡操作下线或取消预订
    :return:
    '''
    login('00852', '20181205')
    header = get_code_token('https://easy.lagou.com/userGoodsRecord/toCard/index.htm')
    sechedule_url = "https://easy.lagou.com/topCard/my-schedule.json?positionId=&city=&location=&status=&pageNo=1&pageSize=10"
    object = get_requests(url=sechedule_url, remark="获取置顶卡排序id", headers=header)
    id = object['content']['data']['scheduleList'][0]['id']
    print(id)
    header = get_app_header(userid)
    url = "https://gate.lagou.com/v1/zhaopin/topCard/" + str(id) + "/operateSchedule?operate=offline"
    src = put_requests(url=url, remark="置顶卡操作下线或取消预订", headers=header)
    print(src)
    message = src['message']
    assert_equal("操作成功", message, "置顶卡操作下线或取消预订正确", "置顶卡操作下线或取消预订接口报错")
Beispiel #14
0
def creatCompany_process(phone, countryCode, companyShortName, companyFullName,
                         userName, resumeReceiveEmail, userPosition,
                         industryField, financeStage):
    r1, r2, r3, r4 = None, None, None, None
    r1 = login(countryCode, phone)
    if r1['state'] == 1:
        r2 = saveHR(companyFullName, userName, resumeReceiveEmail,
                    userPosition)
        r3 = saveCompany(companyShortName, industryField, financeStage)
        upload_p = upload_permit()
        if upload_p['state'] == 1:
            r4 = submit_new()
    return r1, r2, r3, r4
Beispiel #15
0
def get_resumeId(x):
    header_url = 'https://passport.lagou.com/grantServiceTicket/grant.html'
    url = 'https://www.lagou.com/mycenter/resume/getAllResumes.json'
    get_header(header_url)
    t = get_requests(url)
    js = t.content
    jsdic = json.loads(js)
    a = jsdic['content'][0]
    b = jsdic['content'][1]
    if a['type'] == x:
        return a['id']
    elif b['type'] == x:
        return b['id']


'''
login('00853', '12140007')

# positionId = 5375250
positionId = 5375318
0:附件简历,1:在线简历


resumeId = get_resumeId(0)
url = 'https://passport.lagou.com/grantServiceTicket/grant.html'
get_header(url)
sendResume_html = 'https://www.lagou.com/jobs/' + str(positionId) + '.html'
sendResume_url = 'https://www.lagou.com/mycenterDelay/deliverResumeBeforce.json'
sendResume_header = get_code_token(sendResume_html)
sendResume_data = {'positionId': positionId, 'type': 1, 'resumeId': resumeId, 'force': 'true'}
r = form_post(url=sendResume_url, headers=sendResume_header, data=sendResume_data, remark='发简历')
Beispiel #16
0
def create_resume(phone, countryCode, userIdentity, kwargs={}):
    if isinstance(kwargs, dict):
        name = kwargs.get('name', fake.name())
        birthday = kwargs.get('birthday', '1995.10')
        liveCity = kwargs.get('liveCity', '北京')
        joinWorkTime = kwargs.get('joinWorkTime', '2018.07')
        education = kwargs.get('education', '本科')
        startDate = kwargs.get('startDate', '2009.09')
        endDate = kwargs.get('endDate', '2013.07')
        city = kwargs.get('city', '北京')
        positionType = kwargs.get('positionType', '全职')
        positionName = kwargs.get('positionName', '机器学习')
        positionNameType1 = kwargs.get('positionNameType1', '开发|测试|运维类')
        positionNameType2 = kwargs.get('positionNameType2', '人工智能')
        salarys = kwargs.get('salarys', '10k-20k')
        isUnifiedEntrance = kwargs.get('isUnifiedEntrance', 1)

    r1 = login(countryCode, phone)

    basicMain_html = 'https://www.lagou.com/resume/perfectresume.html?showQRCode=true'
    remark = '创建简历的初始页面'
    get_requests(url=basicMain_html, remark=remark)

    head_url = 'https://www.lagou.com/resume/saveHeadPic.json?headPicPath={}'.format(
        '/common/image/pc/default_boy_headpic2.png')
    remark = "上传头像"
    get_requests(url=head_url, remark=remark)

    if userIdentity == 2:
        # 基本信息
        basicMain_url = 'https://www.lagou.com/resume/basicMain.json'
        basicMain_header = get_code_token(basicMain_html)
        basicMain_data = {
            'name': name,
            'birthday': birthday,
            'sex': '男',
            'email': '{}@testlagou.com'.format(phone),
            'userIdentity': userIdentity,
            'liveCity': liveCity,
            'joinWorkTime': joinWorkTime
        }
        remark = "添加基本信息"
        r2 = form_post(url=basicMain_url,
                       headers=basicMain_header,
                       data=basicMain_data,
                       remark=remark)

        # 工作经历
        workExperience_url = 'https://www.lagou.com/workExperience/save.json'
        workExperience_header = get_code_token(basicMain_html)
        workExperience_data = {
            "positionType": "机器学习",
            "positionType1": "开发|测试|运维类",
            "positionType2": "人工智能",
            "skillLabels": "机器学习",
            "department": "大数据智能中心",
            "companyIndustry": "电商",
            "companyName": "拉勾网",
            "positionName": "机器学习",
            "startDate": "2012.07",
            "requestSource": 1,
            "endDate": "2019.03",
            "workContent": "<p>哒哒哒哒哒哒多多多多多多多</p>",
            "isItVisible": 1
        }
        remark = "添加工作经历"
        r3 = form_post(url=workExperience_url,
                       headers=workExperience_header,
                       data=workExperience_data,
                       remark=remark)
    else:
        # 基本信息
        basicMain_url = 'https://www.lagou.com/resume/basicMain.json'
        basicMain_header = get_code_token(basicMain_html)
        basicMain_data = {
            'name': name,
            'birthday': birthday,
            'sex': '男',
            'email': '{}@testlagou.com'.format(phone),
            'userIdentity': userIdentity,
            'liveCity': liveCity
        }
        remark = "添加基本信息"
        r2 = form_post(url=basicMain_url,
                       headers=basicMain_header,
                       data=basicMain_data,
                       remark=remark)

    # 教育经历
    edu_header = get_code_token(basicMain_html)
    edu_url = 'https://www.lagou.com/educationExperience/save.json'
    edu_data = {
        'schoolName': '清华大学',
        'education': education,
        'professional': '计算机科学与技术',
        'startDate': startDate,
        'endDate': endDate,
        'isUnifiedEntrance': isUnifiedEntrance
    }
    remark = "添加教育经历"
    r4 = form_post(url=edu_url,
                   headers=edu_header,
                   data=edu_data,
                   remark=remark)

    # 个人名片
    personal_url = 'https://www.lagou.com/resume/personalCard.json'
    personal_header = get_code_token(basicMain_html)
    personal_data = {
        'myRemark': '<p>哈哈哈哈</p>',
        'socialAccountJson': '[]',
        'abilityLabels': '执行力'
    }
    remark = "添加个人名片"
    r5 = form_post(url=personal_url,
                   headers=personal_header,
                   data=personal_data,
                   remark=remark)

    # 求职意向
    expextJobs_url = 'https://www.lagou.com/expectJobs/expectJobs.json'
    expectJobs_header = get_code_token(basicMain_html)
    expectJobs_data = {
        'city': city,
        'positionName': positionName,
        'positionNameType1': positionNameType1,
        'positionNameType2': positionNameType2,
        'salarys': salarys,
        'status': '积极找工作',
        'arrivalTime': '随时'
    }
    remark = "添加求职意向"
    r6 = form_post(url=expextJobs_url,
                   headers=expectJobs_header,
                   data=expectJobs_data,
                   remark=remark)

    # 改善简历的头像和基本名片
    r7 = {'success': True}

    # 完善个人信息
    r8 = {'success': True}

    if userIdentity == 2:
        return [r1, r2, r3, r4, r5, r6, r7, r8]
    else:
        return [r1, r2, r4, r5, r6, r7, r8]
Beispiel #17
0
# coding:utf-8
# @Author: Xiawang
from utils.util import get_code_token, get_header, form_post, login

login('00853', '05180001')

rf_url = 'https://passport.lagou.com/grantServiceTicket/grant.html'
get_header(rf_url)

positionId = str(5375250)
location = 'first_level'
date = '2018-12-28'
topCardNum = str(1)


def add_topCard():
    topCard_html = 'https://easy.lagou.com/position/multiChannel/myOnlinePositions.htm?pageNo=1'
    topCard_url = 'https://easy.lagou.com/topCard/add-schedule.json'
    header = get_code_token(topCard_html)
    data = {
        'scheduleAddList':
        '[{"positionId":' + positionId + ',' + '"location"' + ':' + location +
        ',' + '"date"' + ':' + date + ',' + '"topCardNum"' + ':' + topCardNum +
        '}]'
    }
    return form_post(url=topCard_url, headers=header, data=data)
Beispiel #18
0
# -*- coding: utf8 -*-
__author__ = 'yqzhang'
from utils.util import get_requests, form_post,login,get_code_token
login('0086','18810432995')
# login('00852','20181205')
def flow():
    url='https://jf.lagou.com/integral/mall/gouyin/flow.json'
    # header=get_code_token('')
    data={'queryFlowType':0,'pageNo':1,'pageSize':10}
    return get_requests(url=url,data=data,remark='勾印流水')

# flow()
Beispiel #19
0
    def post(self):


        """
        @@@
        ### Auther = Xiawang

        ### web端简历处理接口,resumeId,positionId非必填,默认该账号第一条数据


        ### Request Header
        | 字段 | 值 |
        | ---- | ---- |
        | method | POST |
        | content-type | application/json |


        ### 参数

        | 字段 | 必填 | 类型 | 描述|
        | ---- | ---- | ---- | ---- |
        | countryCode | True | string | B端注册用户手机号的地区编号 |
        | phone | True | string | B端注册用户的手机号 |
        | type | True | int | 处理类型 |
        | resumeid | false| int | 简历id |
        | positionid | false | int | 职位id |

        type:1    待沟通
        type:2    面试
        type:3    淘汰
        type:4    录用
        type:5    入职



        ### 请求示例
        ```json
 {
            "countrycode": "00852",
            "username": "******",
            "type": 3,
            "resumeId": 1081023879159488512,
			"positionId": 13844989
        }
        ```


        ### 返回

        | 字段 | 类型 | 描述|
        | ---- | ---- | ---- | ---- |
        | state | int | 1表示成功 |
        | message | string | 构造数据的结果 |


        ### 响应示例
        ```json
{
    "state": 1,
    "message": "入职成功"
}
        ```

        @@@
        """

        parser = reqparse.RequestParser()

        parser.add_argument('countrycode', type=str, help="请输入用户手机号的归属区号", required=True)
        parser.add_argument('username', type=str, help="请输入用户的手机号", required=True)
        args1 = parser.parse_args()
        login(args1['countrycode'],args1['username'])

        try:
            pos,res=getIds()
        except Exception as IndexError:
            return {'state':1002,'message':'获取职位和简历id失败,该账号简历列表可能为空'}

        parser.add_argument('type', type=int, choices=(1, 2, 3,4,5), help="请选择简历处理方式", required=True)
        parser.add_argument('resumeId', type=int, help="请输入简历id", required=False, default=res)
        parser.add_argument('positionId', type=int, help="请输入应聘职位id", required=False, default=pos)
        args = parser.parse_args()

        if int(args['type']) == 1:
            r = move_to_communicated(args['positionId'], args['resumeId'])
            if r['state'] == 1:
                return {'state': 1, 'message': '移动到待沟通成功'}
            else:
                return {'state': r['state'], 'message': r['message']}
        if int(args['type']) == 2:
            # move_to_communicated(args['positionId'],args['resumeId'])
            r = move_to_interview(args['positionId'], args['resumeId'])
            if r['state'] == 1:
                return {'state': 1, 'message': '移动到面试成功'}
            else:
                return {'state': r['state'], 'message': r['message']}
        if int(args['type']) == 3:
            r = move_to_eliminate(args['positionId'], args['resumeId'])
            if r['state'] == 1:
                return {'state': 1, 'message': '淘汰成功'}
            else:
                return {'state': r['state'], 'message': r['message']}
        if int(args['type']) == 4:
            r = move_to_stageoffer(args['positionId'], args['resumeId'])
            if r['state'] == 1:
                return {'state': 1, 'message': '录用成功'}
            else:
                return {'state': r['state'], 'message': r['message']}
        if int(args['type']) == 5:
            r = move_to_employ(args['positionId'], args['resumeId'])
            if r['state'] == 1:
                return {'state': 1, 'message': '入职成功'}
            else:
                return {'state': r['state'], 'message': r['message']}
Beispiel #20
0
    remark = "验证B端申请认证公司是否成功"
    return form_post(url=completeInfo_url,
                     data=completeInfo_data,
                     headers=completeInfo_header,
                     remark=remark,
                     rd='王豪')


def completeInfo_process(detailAddress=None,
                         provinceId=None,
                         cityId=None,
                         districtId=None,
                         businessArea=None,
                         companyLng=None,
                         companyLat=None):
    r1 = company_auth()
    if r1.get('state', 0) == 1:
        r2 = completeInfo(detailAddress=detailAddress,
                          provinceId=provinceId,
                          cityId=cityId,
                          districtId=districtId,
                          businessArea=businessArea,
                          companyLng=companyLng,
                          companyLat=companyLat)
        return r1, r2


if __name__ == '__main__':
    login('00852', '20190819')
    completeInfo_process()
Beispiel #21
0
    def post(self):
        """
        @@@
        ### Auther = Xiawang

        ### B端注册-公司成立-招聘者认证提交及审核-公司认证及审核流程


        ### Request Header
        | 字段 | 值 |
        | ---- | ---- |
        | method | POST |
        | content-type | application/json |


        ### 参数

        | 字段 | 必填 | 类型 | 描述|
        | ---- | ---- | ---- | ---- |
        | countryCode | True | string | B端注册用户手机号的地区编号 |
        | phone | True | string | B端注册用户的手机号 |
        | userName | True | string | B端注册用户的姓名 |
        | companyShortName | True | string | B端注册公司的简称 |
        | companyFullName | True | string | B端注册公司的全称 |
        | updateCompanyShortName | True | string | B端注册公司的别称 |
        | resumeReceiveEmail | True | string | B端注册用户接收简历的邮箱 |

        ### 请求示例
        ```json
        {
            "countryCode": "00852",
            "phone": "20030902",
            "userName": "******",
            "companyShortName": "烽火啊啊啊",
            "companyFullName": "烽火啊啊啊",
            "updateCompanyShortName": "烽火啊啊啊",
            "resumeReceiveEmail": "*****@*****.**"
        }
        ```


        ### 返回

        | 字段 | 类型 | 描述|
        | ---- | ---- | ---- | ---- |
        | state | int | 1表示成功, 400表示错误 |
        | content | string | 构造数据的结果 |
        | data | dict | 构造成功数据的具体信息 |
        | HRInfo | dict | 招聘者信息 |
        | CompanyInfo | dict | 公司信息 |
        | Application | dict | 招聘者和公司的认证的申请结果 |
        | ApproveInfo | string | 招聘者和公司的认证的审核结果 |

        ### 响应示例
        ```json
        {
            "state": 1,
            "content": "B端注册-公司成立-招聘者认证提交及审核-公司认证及审核流程通过!",
            "data": {
                "HRInfo": {
                    "phone": "20010011",
                    "countryCode": "00852",
                    "userId": 100016375
                },
                "CompanyInfo": {
                    "companyShortName": "jjjjjj1",
                    "companyFullName": "jjjjjj1",
                    "companyId": 142419
                },
                "Application": {
                    "person": "招聘者申请认证成功",
                    "company": "公司申请认证成功"
                },
                "ApproveInfo": {
                    "passPersonApprove": "招聘者认证提交及审核通过",
                    "passCompanyApprove": "公司认证提交及审核通过"
                }
            }
}
        ```

        @@@
        """
        company_name = fake.company()
        parser = reqparse.RequestParser()
        parser.add_argument('countryCode',
                            type=str,
                            help="请输入B端注册用户手机号的归属区号",
                            required=True)
        parser.add_argument('phone',
                            type=str,
                            help="请输入B端注册用户的手机号",
                            required=True)
        parser.add_argument('userName',
                            type=str,
                            default=fake.name(),
                            help="请输入B端注册用户的姓名")
        parser.add_argument('userPosition',
                            type=str,
                            default='ceo',
                            help="请输入B端注册用户的职位")
        parser.add_argument('resumeReceiveEmail',
                            type=str,
                            default=fake.email(),
                            help="请输入接收简历的邮箱地址")
        parser.add_argument('companyShortName',
                            type=str,
                            default=company_name,
                            help="请输入注册公司的简称,要唯一")
        parser.add_argument('companyFullName',
                            type=str,
                            default=company_name,
                            help="请输入注册公司的全称,要唯一")
        parser.add_argument('checkedindustryField', help="请输入注册公司的行业标签")
        parser.add_argument('financeStage', help="请输入发展阶段")
        # 为构造校招职位增加的字段,之后补充至平台上
        parser.add_argument('detailAddress', help="请输入详细地址")
        parser.add_argument('provinceId', type=int, help="请输入省、直辖市id")
        parser.add_argument('cityId', type=int, help="请输入城市id")
        parser.add_argument('districtId', type=int, help="请输入区域id")
        parser.add_argument('businessArea', help="请输入商圈")
        parser.add_argument('companyLng', help="请输入经度")
        parser.add_argument('companyLat', help="请输入维度")

        args = parser.parse_args()
        HRInfo = {}
        CompanyInfo = {}
        ApproveInfo = {}
        Application = {}
        info = None
        if bool(args['checkedindustryField']) == True:
            industryField = ",".join(json.loads(args['checkedindustryField']))
            # industryField = args['checkedindustryField']
        else:
            industryField = '电商'
        r1, r2, r3, r4 = creatCompany_process(
            args['phone'], args['countryCode'], args['companyShortName'],
            args['companyFullName'], args['userName'],
            args['resumeReceiveEmail'], args['userPosition'], industryField,
            args['financeStage'])
        state = 0
        try:
            if r1['state'] != 1:
                state = 400
                info = "该手机号登录失败, 该用户的手机号: " + args['phone']

            if r2['state'] != 1:
                state = 400
                info = "上传B端用户信息失败,该用户的手机号: " + args['userName']

            if r3['state'] != 1:
                state = 400
                info = "B端成立公司失败,该公司简称:" + args['companyShortName']

            if r4['state'] != 1:
                state = 400
                info = "B端提交招聘者审核失败,该公司简称: " + args['companyShortName']
        except TypeError:
            info = info

        if not (state == 400):
            if r1['state'] == r2['state'] == r3['state'] == r4['state'] == 1:
                state = 1
                HRInfo['phone'] = args['phone']
                HRInfo['countryCode'] = args['countryCode']
                CompanyInfo['companyShortName'] = args['companyShortName']
                CompanyInfo['companyFullName'] = args['companyFullName']

            try:
                login_home_code('00853', 22222222)
                r51, r52, r53 = passPersonApprove()
                if r51['success'] != True:
                    state = 400
                    info = "home后台-审核中心-个人认证-审核招聘者失败, 该公司的简称: " + args[
                        'companyShortName']
            except TypeError:
                state = 400
                info = info

            login_r = login(args['countryCode'], args['phone'])
            try:
                if login_r['state'] == 1:
                    # if not args['detailAddress'] is None:
                    #     [r6, r7] = completeInfo_process(detailAddress=args['detailAddress'], provinceId=args['provinceId'],
                    #                                     cityId=args['cityId'], districtId=args['districtId'],
                    #                                     businessArea=args['businessArea'], companyLng=args['companyLng'],
                    # #                                     companyLat=args['companyLat'])
                    # else:
                    r6, r7 = completeInfo_process()
                if r6['state'] != 1:
                    state = 400
                    info = "上传营业执照失败, 该公司的简称: " + args['companyShortName'] + ","
                elif r7['state'] != 1:
                    state = 400
                    info = "简称为 " + args['companyShortName'] + " 申请认证公司失败"
            except TypeError:
                state = 400
                info = info

            if not (state == 400):
                if r4['state'] == r7['state'] == 1:
                    Application['person'] = "招聘者申请认证成功"
                    Application['company'] = "公司申请认证成功"
                    state = 2

                login_res = login_home_code('00853', 22222222)
                if not (login_res['state'] is 1):
                    info = "home后台登录失败,无法继续审核操作"
                else:
                    r8 = passCompanyApprove()
                if r8['success'] != True:
                    state = 400
                    info = "home后台-公司认证-审核公司成功!该公司的简称: " + args[
                        'companyShortName']

                if r51['success'] == True and r6['state'] == 1 and r8[
                        'success'] == True:
                    ApproveInfo['passPersonApprove'] = "招聘者认证提交及审核通过"
                    ApproveInfo['passCompanyApprove'] = "公司认证提交及审核通过"
                    CompanyInfo['companyId'] = r52
                    HRInfo['userId'] = r53
                    state = 1

        if state == 1:
            return {
                "state": 1,
                "content": "B端注册-公司成立-招聘者认证提交及审核-公司认证及审核流程通过!",
                "data": {
                    "HRInfo": HRInfo,
                    "CompanyInfo": CompanyInfo,
                    "Application": Application,
                    "ApproveInfo": ApproveInfo
                }
            }
        return {"state": 400, "content": "执行失败", "faiinfo": info}
Beispiel #22
0
def remove_member_has_offline_position():
    url = 'https://easy.lagou.com/member/removeMember.json?hasRecruitmentService=true&ignoreOfflinePosition=true'
    header = get_code_token(
        url='https://easy.lagou.com/settings/channel/my_channels.htm')
    return get_requests(url=url, headers=header, remark="解除招聘者信息", rd='曾小宁')


def close_trial_package(lg_CompanyId):
    contractNo = get_contract_list(lg_CompanyId)
    close_result = close_contract(contractNo=contractNo)
    return close_result


if __name__ == '__main__':
    from faker import Faker

    # fake = Faker('zh_CN')
    # phone, countryCode = 20020026, '00852'
    # companyShortName, companyFullName = '验证是否能移除招聘者认证2', '验证是否能移除招聘者认证2'
    # userName, resumeReceiveEmail = fake.name(), fake.email()
    # updateCompanyShortName = '验证是否能移除招聘者认证1'
    # r = saveHR_process(phone, countryCode, companyShortName, companyFullName, userName, resumeReceiveEmail,
    #                    updateCompanyShortName)

    r = login('00852', '20020026')
    if not remove_member(100024844):
        close_trial_package(96109603)
        login('00852', '20020026')
        print(remove_member(100024844))
Beispiel #23
0
    'https://easy.lagou.com/position/multiChannel/createPosition.htm')


def address_id(code):
    '''code: 市的code'''
    url = 'https://easy.lagou.com/lbs/getChildLbsInfoByCode.json?code={}'.format(
        code)
    header = get_code_token(
        url='https://easy.lagou.com/position/multiChannel/createPosition.htm')
    remark = '获取地址id'
    content = get_requests(url=url, headers=header, remark=remark)
    return content['content']['data']['lbsList']


def add_work_address():
    url = "https://easy.lagou.com/workAddress/add.json"
    data = {'workAddressId': '1758187'}
    remark = '添加工作地址'
    return form_post(url=url, headers=header, data=data, remark=remark)


def remove_work_address(workAddressId):
    url = "https://easy.lagou.com/workAddress/remove.json"
    data = {'workAddressId': workAddressId}
    remark = '移除工作地址'
    return form_post(url=url, headers=header, data=data, remark=remark)


if __name__ == '__main__':
    login('00852', 20181205)
    print(address_id('110100000'))
Beispiel #24
0
    def post(self):
        '''
                @@@
                ### Auther = Xiawang

                ### C端用户投递给B端公司在线的某职位


                ### Request Header
                | 字段 | 值 |
                | ---- | ---- |
                | method | POST |
                | content-type | application/json |


                ### 参数

                | 字段 | 必填 | 类型 | 描述|
                | ---- | ---- | ---- | ---- |
                | c_countrycode | True | string | C端用户手机号的归属区号 |
                | c_username |  True | string | C端用户的手机号 |
                | outerPositionId | True | string | 职位页面的职位id----页面必填,接口非必填 |


                ### 请求示例
                ```json
                 {
                    "c_countrycode": "00852",
                    "c_username": "******",
                    "outerPositionId": "574444"
                }
                ```


                ### 返回

                | 字段 | 类型 | 描述|
                | ---- | ---- | ---- | ---- |
                | state | int | 1表示成功, 400表示错误 |
                | content | string | 投递简历的结果 |



                ### 响应示例
                ```json
                {
                    "state": 400,
                    "content": "默认B端用户登录失败,无法继续投递简历流程"
                }

                ```

                @@@
                '''
        parser = reqparse.RequestParser()
        parser.add_argument('c_countrycode',
                            type=str,
                            help="请输入C端用户手机号的归属区号",
                            required=True)
        parser.add_argument('c_username',
                            type=str,
                            help="请输入C端用户的手机号",
                            required=True)
        parser.add_argument('outerPositionId',
                            type=int,
                            help="请填写投递的职位id, 在职位页url中去找")
        args = parser.parse_args()

        state = 0
        info = None
        if args['outerPositionId']:
            login_c = login(args['c_countrycode'], args['c_username'])
            if login_c['state'] == 1:
                send_r = sendResume(args['outerPositionId'])
                if '<i>' in send_r['msg']:
                    new_msg = ''.join(re.split('[<i></i> ]', send_r['msg']))
                else:
                    new_msg = send_r['msg']

                if send_r['success'] == True:
                    state = 1
                    info = "C端用户 {} {},投递职位id: {}".format(
                        args['c_username'], new_msg, args['outerPositionId'])
                else:
                    stat = 400
                    info = "C端用户 {} {},投递职位id: {}".format(
                        args['c_username'], new_msg, args['outerPositionId'])
            else:
                stat = 400
                info = "C端用户登录失败,无法继续投递简历流程"
        else:
            b_login_r = login('00852', '20181205')
            if b_login_r['state'] == 1:
                try:
                    positionId, outerPositionId = online_positionId_outerPositionId(
                    )
                except KeyError:
                    state = 400
                    info = "没有获取到职位id,无法投递"
                c_login_r = login(args['c_countrycode'], args['c_username'])
                if c_login_r['state'] == 1:
                    sendResume_r = sendResume(outerPositionId)
                    if '<i>' in sendResume_r['msg']:
                        new_msg = ''.join(
                            re.split('[<i></i> ]', sendResume_r['msg']))
                    else:
                        new_msg = sendResume_r['msg']
                    if sendResume_r['success'] == True:
                        state = 1
                        info = "C端用户{} {} 投递职位id: {}".format(
                            args['c_username'], new_msg, positionId)
                        # b_login_r = login('00852', '20181205')
                        # if b_login_r['state'] == 1:
                        #     offline_res = offlinePosition(positionId)
                        #     if offline_res['state'] == 1:
                        #         state = 1
                        #         info = "恭喜C端用户 {} {},投递职位id: {}".format(args['c_username'], new_msg,
                        #                                                 positionId)
                        #     else:
                        #         state = 1
                        #         info = "恭喜C端用户 {} {},投递职位id: {}, 但该职位没下线成功,再次投递此职位会报错哦".format(args['c_username'],
                        #                                                                        new_msg,
                        #                                                                        positionId)
                    else:
                        state = 400
                        info = "C端用户 {} {},投递职位id: {}".format(
                            args['c_username'], new_msg, positionId)
                else:
                    state = 400
                    info = "C端用户登录失败,无法继续投递简历流程"
            else:
                state = 400
                info = '默认B端用户登录失败,无法继续投递简历流程'

        return {'state': state, 'content': info}
    for key in position:
        # print (key)
        positioblist.append(key)
    return(positioblist)

def get_resumeId(x):
    # 0:附件简历,1:在线简历
    header_url = 'https://passport.lagou.com/grantServiceTicket/grant.html'
    url='https://www.lagou.com/mycenter/resume/getAllResumes.json'
    get_header(header_url)
    t=get_requests(url)
    js = t.content
    jsdic = json.loads(js)
    a= jsdic['content'][0]
    b= jsdic['content'][1]
    if a['type']==x:
        return a['id']
    elif b['type']==x:
        return b['id']

def batch_sendresume(resumeid,positionlist):
    # resumeId = get_resumeId(1)

    for i in positionlist:
        sendResume_html = 'https://www.lagou.com/jobs/' + str(i) + '.html'
        sendResume_url = 'https://www.lagou.com/mycenterDelay/deliverResumeBeforce.json'
        sendResume_header = get_code_token(sendResume_html)
        sendResume_data = {'positionId': i, 'type': 1, 'resumeId': resumeid, 'force': 'true'}
        form_post(url=sendResume_url, headers=sendResume_header, data=sendResume_data,remark='发简历')
login('0086','18211111111')
batch_sendresume(get_resumeId(1),getpositionidfromcompanyid(142128))
Beispiel #26
0
def get_userId_resumeId():
    url = 'https://www.lagou.com/resume/myresume.html'
    page = get_requests(url=url, remark="我的简历页面--获取简历id")
    try:
        resumeId = re.findall("resumeId: '(.*?)',", page, re.S)[0]
    except IndexError:
        resumeId = 0

    try:
        soup = BeautifulSoup(page, "html.parser")
        userId = soup.find(id="userid")['value']
    except IndexError:
        userId = 0
    return userId, resumeId


def get_userId():
    url = 'https://www.lagou.com/'
    page = get_requests(url=url, remark="拉勾网页面--获取userId")
    try:
        soup = BeautifulSoup(page, "html.parser")
        userId = soup.find(id="userid")['value']
    except IndexError:
        userId = 0
    return userId


if __name__ == '__main__':
    login('00852', "20030100")
    print(get_userId_resumeId())
Beispiel #27
0
# coding:utf-8
# @Author: cloudyyuan

from utils.util import login, get_code_token, form_post, get_header, get_requests, assert_equal
'''
人才沟通
'''
login('00852', '20181205')


def session_list():
    '''
    获取会话列表
    :return:
    '''
    header = get_header("https://easy.lagou.com/im/chat/index.htm")
    # data={"pageNo":1,"pageSize":15,"createBy":0,"unReadOnly":0}
    url = "https://easy.lagou.com/im/session/list.json?pageNo=1&pageSize=15&createBy=0&unReadOnly=0"
    object = get_requests(url=url, remark="获取会话列表", headers=header)
    meassage = object['message']
    assert_equal("操作成功", meassage, "获取会话列表成功", "获取会话列表失败", rd='mandy')


def allRead():
    '''
    全部标记已读
    :return:
    '''
    header = get_header("https://easy.lagou.com/im/chat/index.htm")
    url = "https://easy.lagou.com/im/session/allRead.json?createBy=0&unReadOnly=0"
    object = get_requests(url=url, remark="全部标记已读", headers=header)
Beispiel #28
0
    def post(self):
        """
        @@@
        ### Auther = Xiawang

        ### 发布职位


        ### Request Header
        | 字段 | 值 |
        | ---- | ---- |
        | method | POST |
        | content-type | application/json |


        ### 参数

        | 字段 | 必填 | 类型 | 描述|
        | ---- | ---- | ---- | ---- |
        | countrycode | True | string | B端用户手机号的归属区号 |
        | username | True | string | B端用户手机号 |
        | sum | True | int | 发布职位总数 |


        ### 请求示例
        ```json
         {
            "countrycode": "00852",
            "username": "******",
            "sum": 1
        }
        ```


        ### 返回

        | 字段 | 类型 | 描述|
        | ---- | ---- | ---- | ---- |
        | state | int | 1表示成功, 400表示错误 |
        | content | string | 构造数据的结果 |
        | data | list | 发布成功的职位信息 |
        | failinfo | list | 发布失败的职位信息 |


        ### 响应示例
        ```json
        {
            "state": 1,
            "message": "发布职位1个, 其中1个成功",
            "data": [{
                "position_name": "金融产品经理",
                "parentPositionId": 1788012,
                "positionId": 13846665
            }],
            "failinfo": [
                null
            ]
        }
        ```

        @@@
        """

        j = 0
        successlist = []
        faillist = [None]
        data = {}
        parser = reqparse.RequestParser()
        parser.add_argument('countrycode',
                            type=str,
                            help="请输入用户手机号的归属区号",
                            required=True)
        parser.add_argument('username',
                            type=str,
                            help="请输入用户的手机号",
                            required=True)
        parser.add_argument('firstType',
                            type=str,
                            help="请输入职位的一级类别",
                            default="市场|商务类")
        parser.add_argument('positionType', help="请输入职位的二级类别", default="市场|营销")
        parser.add_argument('positionThirdType',
                            type=str,
                            help="请输入职位的三级类别",
                            default="市场营销")
        parser.add_argument('positionName',
                            default="高级市场营销经理",
                            type=str,
                            help="职位名称")
        parser.add_argument('workAddress',
                            type=str,
                            help="工作地址",
                            required=True)
        parser.add_argument('sum', type=int, help="请输入发布职位的数量", required=True)
        args = parser.parse_args()

        address_id = junge_address(args['workAddress'])

        if args['workAddress'] == '' or (not bool(address_id)):
            return {'state': 400, 'message': '输入的工作地址没存在对应id,请重新输入'}

        login_res = login(args['countrycode'], args['username'])
        if login_res['state'] != 1:
            return {"message": login_res['message']}
        else:
            userId, companyId = get_user_company_id()
            flag = update_user_company_id(address_id, userId, companyId)
            if flag == False:
                return {'state': 400, 'message': '工作地址修改不成功,请重新输入'}

        result = post_position(sum=args['sum'],
                               positionName=args['positionName'],
                               firstType=args['firstType'],
                               positionType=args['positionType'],
                               positionThirdType=args['positionThirdType'],
                               workAddressId=address_id)

        state = 0
        for i in result:
            if i['state'] == 1:
                j += 1
                print(i)
                data["position_name"] = i['content']['data'][
                    'parentPositionInfo']['positionName']
                data["parentPositionId"] = i['content']['data'][
                    'parentPositionInfo']['parentPositionId']
                data["positionId"] = i['content']['data'][
                    'parentPositionInfo']['positionChannelInfoList'][0][
                        'positionId']
                successlist.append(data)
                data = {}
                state = 1
            else:
                data['state'] = i['state']
                data['message'] = i['message']
                faillist.append(data)
                data = {}
                state = 400

        return {
            "state": state,
            "content": "发布职位" + str(args['sum']) + "个, 其中" + str(j) + "个成功",
            "data": successlist,
            "errors": faillist
        }
Beispiel #29
0
    r = form_post(url=myonlinepostions_url, data=myonlinepostions_data, headers=Position_header, remark=remark, rd='royliu')
    try:
        positionId = r['content']['data']['parentPositionVOs'][0]['positions'][0]['positionId']
        outerPositionId = r['content']['data']['parentPositionVOs'][0]['positions'][0]['outerPositionId']
    except KeyError:
        positionId = 0
        outerPositionId = 0
    return positionId, outerPositionId


def get_online_positions():
    refer_offlinePosition_url = "https://easy.lagou.com/position/multiChannel/myOnlinePositions.htm?pageNo=1"
    Position_header = get_code_token(refer_offlinePosition_url)
    myonlinepostions_url = "https://easy.lagou.com/parentPosition/multiChannel/myOnlinePositions.json"
    myonlinepostions_data = {"pageNo": 1}
    remark = "获取下线职位的职位id"
    r = form_post(url=myonlinepostions_url, data=myonlinepostions_data, headers=Position_header, remark=remark, rd='royliu')
    positionIds = []
    if r['content']['data']['pageSize'] >= 10:
        for position_info in r['content']['data']['parentPositionVOs']:
            positionId = position_info['positions'][0]['positionId']
            positionIds.append(positionId)
    return positionIds


if __name__ == '__main__':
    login("0086", "19910626899")
    positionIds = get_online_positions()
    print(positionIds)
    # offlinePosition(positionId=positionId)
Beispiel #30
0
        company_id = re.findall(r'http://c.hr.lagou.com/gongsi/(.+?).html',
                                company_url)[0]
    except (IndexError, TypeError):
        company_id = 0
    return company_id


if __name__ == '__main__':

    # get_compangy()
    # print(get_userId_resumeId())
    # print(get_www_company_id())
    # print(get_userId_resumeId())
    new_phone_list = [
        20030252, 20030253, 20030254, 20030255, 20030256, 20030257, 20030258,
        20030259, 20030260, 20030261, 20030262, 20030263, 20030264, 20030265,
        20030266, 20030267, 20030268, 20030269, 20030270, 20030271, 20030272,
        20030273, 20030274, 20030275, 20030276, 20030277, 20030278, 20030279,
        20030280, 20030281, 20030282, 20030283, 20030284, 20030285, 20030286,
        20030287, 20030288, 20030289, 20030290
    ]
    sss = []
    for phone in new_phone_list:
        aaa = {}
        login('00853', phone)
        com_id = get_www_company_id()
        aaa['phone'] = phone
        aaa['companyId'] = com_id
        sss.append(aaa)
    print(sss)