在前程无忧上投递简历发现有竞争力分析,免费能看到匹配度评价和综合竞争力分数,可以做投递参考

计算方式

综合竞争力得分应该越高越好,匹配度评语也应该评价越高越好

抓取所有职位关键字搜索结果并获取综合竞争力得分和匹配度评语,最后筛选得分评语自动投递合适的简历

登陆获取cookie

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
# chrome_options.add_argument('--headless')
from time import sleep
import re
from lxml import etree
import requests
import os
import jsondriver = webdriver.Chrome(chrome_options=chrome_options,executable_path = 'D:\python\chromedriver.exe')
headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36"}

def get_cookie():    driver.get("https://login.51job.com/login.php?loginway=1&lang=c&url=")    sleep(2)    phone=input("输入手机号:")    driver.find_element_by_id("loginname").send_keys(phone)    driver.find_element_by_id("btn7").click()    sleep(1)    code=input("输入短信:")    driver.find_element_by_id("phonecode").send_keys(code)    driver.find_element_by_id("login_btn").click()    sleep(2)    cookies = driver.get_cookies()    with open("cookie.json", "w")as f:        f.write(json.dumps(cookies))    driver.close()

用webdriver登陆获取cookie,把cookie写入文件,在登陆的时候最好不用无头模式,偶尔有滑动验证码

前程无忧手机短信一天只能发送三条,保存cookie下次登陆用

#搜索职位并获得页码def get_job():    job = input("输入职位:")    url=f"https://search.51job.com/list/020000,000000,0000,00,1,99,{job},2,1.html?lang=c&stype=1&postchannel=0000&workyear=02&cotype=99&degreefrom=99&jobterm=99&companysize=99&lonlat=0%2C0&radius=-1&ord_field=0&confirmdate=9&fromType=5&dibiaoid=0&address=&line=&specialarea=00&from=&welfare="    r=session.get(url,headers=headers)    r.encoding=r.apparent_encoding    tree = etree.HTML(r.text)    x = tree.xpath('//span[@class="td"]/text()')[0]    total_page = int(re.findall("(\d+)", x)[0])    href = []    for i in range(1,total_page+1):        href.append(re.sub("\d.html", f'{i}.html', url))    return href

在职位搜索获取职位搜索结果的全部页码

#获取职位iddef get_job_code(url):    headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36"}    r=session.get(url,headers=headers)    tree=etree.HTML(r.text)    divs=tree.xpath('//div[@class="el"]/p/span/a/@href')    job=str(divs)    job_id=re.findall("\/(\d+).html",job)    return job_id

获取职位id

修改id请求网址到竞争力分析页面

#获取匹配的信息def get_info(job_id):    href=f"https://i.51job.com/userset/bounce_window_redirect.php?jobid={job_id}&redirect_type=2"    r=session.get(href,headers=headers)    r.encoding=r.apparent_encoding    tree=etree.HTML(r.text)    pingjia=tree.xpath('//div[@class="warn w1"]//text()')[0].strip()    gongsi=[]    for i in tree.xpath('//div[@class="lf"]//text()'):        if i.strip():            gongsi.append(i.strip())    fenshu=[]    for i in tree.xpath('//ul[@class="rt"]//text()'):        if i.strip():            fenshu.append(i.strip())    url=f"https://jobs.51job.com/shanghai/{job_id}.html?s=03&t=0"    return {"公司":gongsi[1],"职位":gongsi[0],"匹配度":pingjia,fenshu[3]:fenshu[2],"链接":url,"_id":job_id}

抓取竞争力分析页面,返回一个字典

主程序

#用cookie登陆if not os.path.exists("cookie.json"):    get_cookie()f=open("cookie.json","r")cookies=json.loads(f.read())f.close()session = requests.Session()for cookie in cookies:    session.cookies.set(cookie['name'], cookie['value'])

检查cookie文件载入cookie,不存在执行get_cookie()把cookie保存到文件

#获取所有职位idcode=[]for i in get_job():    code=code+get_job_code(i)

获取的职位id添加到列表

 #存入Mongodbimport pymongoclient=pymongo.MongoClient("47.102.109.190",27017)db=client["job_zhu"]job_info=db["job_info"]for i in code:    try:        if not job_info.find_one({"_id":i}):            info=get_info(i)            if not job_info.find_one(info):                job_info.insert_one(info)                print(info)                print("插入成功")    except:        print(code)

龟速爬取,用MongDB保存结果,职位id作为索引id,插入之前检查id是否存在简单去重减少访问

吃完饭已经抓到8000个职位了,筛选找到127个匹配度好的,开始批量投递

登陆状态点击申请职位,用wevdriver做

for i in job_info.find({"匹配度":{$regex:"排名很好"},"综合竞争力得分":{$gte:"80"}}):print(i)try:driver.get(i)driver.find_element_by_id("app_ck").click()sleep(2)except:pass

用cookie登陆简单for循环投递,在Mongodb里查表,正则筛选匹配度和竞争力得分获取所有匹配结果

投递成功

代码

from selenium import webdriverfrom selenium.webdriver.chrome.options import Optionschrome_options = Options()chrome_options.add_argument('--headless')from time import sleepimport refrom lxml import etreeimport requestsimport osimport json

driver = webdriver.Chrome(chrome_options=chrome_options,executable_path = 'D:\python\chromedriver.exe')headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36"}driver.get("https://search.51job.com/list/020000,000000,0000,00,1,99,%2B,2,1.html?lang=c&stype=1&postchannel=0000&workyear=01%2C02&cotype=99&degreefrom=03%2C04&jobterm=99&companysize=99&lonlat=0%2C0&radius=-1&ord_field=0&confirmdate=9&fromType=5&dibiaoid=0&address=&line=&specialarea=00&from=&welfare=")

#用webdriver获取cookie写入文件def get_cookie():    driver.get("https://login.51job.com/login.php?loginway=1&lang=c&url=")    sleep(2)    phone=input("输入手机号:")    driver.find_element_by_id("loginname").send_keys(phone)    driver.find_element_by_id("btn7").click()    sleep(1)    code=input("输入短信:")    driver.find_element_by_id("phonecode").send_keys(code)    driver.find_element_by_id("login_btn").click()    sleep(2)    cookies = driver.get_cookies()    with open("cookie.json", "w")as f:        f.write(json.dumps(cookies))    driver.close()

#搜索职位并获得页码def get_job():    job = input("输入职位:")    url=f"https://search.51job.com/list/020000,000000,0000,00,1,99,{job},2,1.html?lang=c&stype=1&postchannel=0000&workyear=02&cotype=99&degreefrom=99&jobterm=99&companysize=99&lonlat=0%2C0&radius=-1&ord_field=0&confirmdate=9&fromType=5&dibiaoid=0&address=&line=&specialarea=00&from=&welfare="    r=session.get(url,headers=headers)    r.encoding=r.apparent_encoding    tree = etree.HTML(r.text)    x = tree.xpath('//span[@class="td"]/text()')[0]    total_page = int(re.findall("(\d+)", x)[0])    href = []    for i in range(1,total_page+1):        href.append(re.sub("\d.html", f'{i}.html', url))    return href

#获取职位iddef get_job_code(url):    headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36"}    r=session.get(url,headers=headers)    tree=etree.HTML(r.text)    divs=tree.xpath('//div[@class="el"]/p/span/a/@href')    job=str(divs)    job_id=re.findall("\/(\d+).html",job)    return job_id

#获取匹配的信息def get_info(job_id):    href=f"https://i.51job.com/userset/bounce_window_redirect.php?jobid={job_id}&redirect_type=2"    r=session.get(href,headers=headers)    r.encoding=r.apparent_encoding    tree=etree.HTML(r.text)    pingjia=tree.xpath('//div[@class="warn w1"]//text()')[0].strip()    gongsi=[]    for i in tree.xpath('//div[@class="lf"]//text()'):        if i.strip():            gongsi.append(i.strip())    fenshu=[]    for i in tree.xpath('//ul[@class="rt"]//text()'):        if i.strip():            fenshu.append(i.strip())    url=f"https://jobs.51job.com/shanghai/{job_id}.html?s=03&t=0"    return {"公司":gongsi[1],"职位":gongsi[0],"匹配度":pingjia,fenshu[3]:fenshu[2],"链接":url,"_id":job_id}

#用cookie登陆if not os.path.exists("cookie.json"):    get_cookie()f=open("cookie.json","r")cookies=json.loads(f.read())f.close()session = requests.Session()for cookie in cookies:    session.cookies.set(cookie['name'], cookie['value'])

#获取所有职位idcode=[]for i in get_job():    code=code+get_job_code(i)

 #存入Mongodbimport pymongoclient=pymongo.MongoClient("47.102.109.190",27017)db=client["job_zhu"]job_info=db["job_info"]for i in code:    try:        if not job_info.find_one({"_id":i}):            info=get_info(i)            if not job_info.find_one(info):                job_info.insert_one(info)                print(info)                print("插入成功")    except:        print(code)

转载于:https://www.cnblogs.com/shenyiyangle/p/10822688.html

用python在前程无忧高效投递简历相关推荐

  1. python自动投递简历_用python在前程无忧高效投递简历

    在前程无忧上投递简历发现有竞争力分析,免费能看到匹配度评价和综合竞争力分数,能够作投递参考 计算方式php 综合竞争力得分应该越高越好,匹配度评语也应该评价越高越好html 抓取全部职位关键字搜索结果 ...

  2. python自动投递_利用python如何在前程无忧高效投递简历

    前言 在前程无忧上投递简历发现有竞争力分析,免费能看到匹配度评价和综合竞争力分数,可以做投递参考 计算方式 综合竞争力得分应该越高越好,匹配度评语也应该评价越高越好 抓取所有职位关键字搜索结果并获取综 ...

  3. 投递简历上百家,石沉大海了无音讯?阿里Java技术架构师教你如何写好你的技术简历

    你是否也遇到过这类问题? 投递简历上百家,石沉大海了无音讯? 一直找不到工作,很迷茫,不知道该不该继续? 那么没有面试机会的时候,我们如何通过简历打破僵局呢?在文章开始之前先给大家推荐一个免费的直播课 ...

  4. 拉勾招聘,自动化投递简历脚本

    本人也只是出步了解自动化,脚本写得比较烂,但基本上运行没问题,希望有技术的大大能给些指导. 由于最近在找工作,智联跟前程无忧都有一键投递功能,拉勾跟BOSS直聘的话只能一个一个点,对于正在海投的小伙伴 ...

  5. 求职秘籍-如何投递简历

    从下面6个问题系统回答下如何投递简历: 什么时间投递简历比较好找工作? 去哪个招聘网站投递简历更好? 为什么不要海投简历? 通过邮箱投递简历需要注意什么? 如何找贵人帮忙内推? 简历进入[待沟通]状态 ...

  6. wps怎么投递简历发到boss直聘_BOSS直聘角逐招聘季:装机量、下载增量、增长率三料冠军...

    中新经纬客户端6月3日电 相比以往春招时间,今年的招聘旺季从3月延长到了5月.回顾过去一个月,各大招聘平台纷纷行动"抢滩"招聘季.央视新闻和BOSS直聘联合推出"职&qu ...

  7. Python程序员如何投简历!

    <花千骨>一剧,白子画为什么收花千骨为徒? <琅琊榜>中,梅长苏为什么选靖王而弃太子.誉王? <泰坦尼克号>里,杰克和露丝为什么会一见钟情? 王子基特为什么会选择灰 ...

  8. MySQL做题实战2||实习广场投递简历分析

    简介:题目来自牛客网在线编程SQL实战,文章内容主要是讲解博主自己做题时的思路.相关见解以及要点总结.总的来说,路漫漫其修远兮,吾将上下而求索! 一.题目内容一(难度:简单) 在牛客实习广场有很多公司 ...

  9. 数据库SQL实战-实习广场投递简历分析(mysql)

    1. 实习广场投递简历分析(一) 1.1 题目描述 在牛客实习广场有很多公司开放职位给同学们投递,同学投递完就会把简历信息存到数据库里. 现在有简历信息表(resume_info),部分信息简况如下: ...

最新文章

  1. 用双注意力模块来做语义分割
  2. 从user 登陆開始
  3. c# 大数据量比较时-方案
  4. 防火墙认证的类型——Vecloud
  5. oracle 把逗号分隔符,将逗号分隔为Oracle中的列
  6. Python基础七(函数)
  7. 带有Spring的JavaFX 2
  8. Oracle-BPM安装详解
  9. itext替换pdf中的中文
  10. 【汇编语言与计算机系统结构笔记20】补充内容:可定制处理器指令集
  11. 推荐两款Docker可视化工具
  12. LINUX 查看分区UUID的两种方法
  13. 4399ATAPI讲解用例配置篇
  14. Quartz 视频教程免费下载
  15. matlab计算星期,在matlab中计算周数
  16. python实现火车票查询_火车票查询(python版)
  17. 给大家安利一个Python版本的记忆翻牌小游戏!上才艺!!
  18. 外部联接(Outer Join)和笛卡尔积(Cartesian Product)
  19. Java 14:JDK 14进入GA时的所有新功能
  20. 乳腺结节属于癌前病变吗?

热门文章

  1. 那些忍了很久的话——人工智能盲目跟风该休了
  2. Quectel_EC200xEC600xEG912Y系列_HTTP(S)_POST请求
  3. 使用inet_aton报错
  4. JavaScript 高级编程(二)
  5. c++做题记录1 01:全面的MyString 查看提交统计提问 总时间限制: 1000ms 内存限制: 65536kB 描述 程序填空,输出指定结果
  6. 删除win10桌面IE浏览器图标
  7. Win10默认输入法切换中英文标点
  8. Net2 A Graph Attention Network Method
  9. 海贼王热血航线正在连接服务器,《航海王热血航线》登录异常解决方法 无法进入怎么解决...
  10. java手机教程_Java手机基础教程 (普通高等教育“十二五”规划教材(动漫游戏类))...