【绝命Coding助力秋招】Python实现<实习僧>海投脚本

 hello hello~ ,这里是绝命Coding——老白~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹
19d95742d45b4220ad0ae0359ffcba93.png

💥个人主页绝命Coding-CSDN博客
💥 所属专栏后端技术分享
这里将会不定期更新有关后端、前端的内容,希望大家多多点赞关注收藏💖

大家实习秋招应该都会投递简历的烦恼吧,海投脚本,就可以省去人力的麻烦,大家每天在选完自己想投的公司后,不妨使用脚本把每天可以沟通次数都投完。海投越多,机会越大。

(Boss海投原理与下面的基本是同样,大家也可以自己动手做个Boss海投脚本)

from selenium import webdriver  
from selenium.webdriver.chrome.service import Service  
import time  
  
from selenium import webdriver  
from webdriver_manager.chrome import ChromeDriverManager  
  
  
# 表示是否为第一次使用,第一次使用选择1会自动下载驱动,否则设为其他  
frequency = 2  
# chromedriver驱动路径,这里自己找到下载的默认位置,改成相应的  
path = r'C:\Users\jueMingCoding\.wdm\drivers\chromedriver\win32\107.0.5304\chromedriver.exe'  
iskeyword = True       # 设置是否进行关键词过滤  
keyword = ["java","后端"]       # 设置必须有该关键词才能进行投递  
  
# 下载驱动  
def downdriver():  
    driver = webdriver.Chrome(ChromeDriverManager().install())  
  
# 检查存在再进行数据的  
def check_find_elements(bro,by,value):  
    # 等待元素加载完毕  
    while (True):  
        try:  
            # 注意.是class name的意思  
            bro.find_element(by, value)  
            #print(value + "找到")  
            break  
        except Exception:  
            continue  
    return bro.find_elements(by, value)  
  
# 检查存在再进行数据的  
def check_find_element(bro,by,value):  
    # 等待元素加载完毕  
    while (True):  
        try:  
            # 注意.是class name的意思  
            bro.find_element(by, value)  
            #print(value + "找到")  
            break  
        except Exception:  
            continue  
    return bro.find_element(by, value)  
  
# 点击按钮进行沟通  
def deal(bro):  
    #print("正在处理")  
    try:  
        cls = bro.window_handles  
        bro.switch_to.window(cls[1])  
        # btn-box resume_apply  
        try:  
            bro.find_element("css selector", "[class='btn-box resume_apply']")  
            print("已经投递过该公司")  
            bro.close()  
            bro.switch_to.window(cls[0])  
            return  
        except Exception as e:  
            #print(e)  
            pass  
        isTD = False        # 是否投递  
        for key in keyword:  
            isTD = isTD or key.lower() in bro.title.lower()  
  
        if( (iskeyword == True and isTD ) or (iskeyword == False) ):  
            chat = check_find_element(bro, "css selector", "[class='btn-box resume_apply com_res']")  
            chat.click()  
            # /html/body/div[5]/div/div[1]/div/span  
  
  
            time.sleep(0.01)  
            #time.sleep(1)  
            # 这里点击img的  
            jl = check_find_element(bro, "xpath", "//img[@src='https://sxsimg.xiaoyuanzhao.com/static/img/deliver-layer/radio-choose.png']")  
            jl.click()  
            try:  
                bro.find_element("xpath", "//img[@aria-label='友情提示']")  
                bro.close()  
                bro.switch_to.window(cls[0])  
                return  
            except Exception as e:  
                pass  
            ok = check_find_element(bro, "css selector", "[class='btn']")  
            ok.click()  
            #time.sleep(1)  
        bro.close()  
        bro.switch_to.window(cls[0])  
    except Exception as e:  
        bro.close()  
        bro.switch_to.window(cls[0])  
        print("qaq",e)  
        return  
  
# 打开页面  
def open():  
    s = Service(path)  
    bro = webdriver.Chrome(service=s)  
    bro.get("https://www.shixiseng.com/")  
    check_find_element(bro, "css selector","[class='nickname']")  
    bro.get("https://www.shixiseng.com/interns?keyword=Java&city=%E5%85%A8%E5%9B%BD&type=intern&from=menu")  
    print("请在20秒内完成搜索或者筛选工作,否则默认在推荐页面进行投递 ~")  
  
    for i in range(20):  
        print("时间还剩"+str(20-i)+"秒……")  
        time.sleep(1)  
    print("开始海投~")  
    #bro.set_window_size(300, 300)  
    #bro.minimize_window()       # 最小化窗口,不影响  
    while(True):  
        #jobs = check_find_elements(bro, "css selector", '.info-primary-wrap')  
        # btn btn-startchat-out        # start-chat-btn        # 推荐页start-chat-btn  
        jobs = check_find_elements(bro, "css selector", "[class='title ellipsis font']")  
        #print(jobs)  
  
        print(jobs)  
        for job in jobs:  
            try:  
                job.click()  
            except Exception as e:  
                print('aa',e)  
                continue  
            #print("qaq")  
  
            deal(bro)  
        #break  
        next_index(bro)  
    time.sleep(100)  
  
# 点击下一页  
def next_index(bro):  
    check_find_element(bro, "css selector", "[class='el-icon el-icon-arrow-right']").click()  
    #check_find_element(bro, "xpath", '//*[@id="container"]/div[2]/div/div[3]/div[3]/div/div/a[10]')  
  
# Press the green button in the gutter to run the script.  
if __name__ == '__main__':  
    print("- 实习僧一键投递脚本启动成功(注意该脚本需要全屏) -")  
    if( frequency == 1 ):  
        print("第一次运行,正在下载驱动 ~ ")  
        downdriver()  
        print("下载成功,请修改frequency变量并重新启动")  
    else:  
        print("正在启动浏览器 ~")  
        open()  
 

 更多历史精彩文章(篇幅过多,不一一列出):

(简历相关)

求职经验分享(1):一份合格的简历应该如何写?-CSDN博客(推荐)

求职经验分享(2):简历如何优化以及如何应对面试【后端篇】-CSDN博客

(项目亮点相关)

大厂面试官赞不绝口的后端技术亮点【后端项目亮点合集(1):Redis篇】-CSDN博客

大厂面试官赞不绝口的后端技术亮点【后端项目亮点合集(2)】-CSDN博客
(八股文)
大厂面试官问我:Redis处理点赞,如果瞬时涌入大量用户点赞(千万级),应当如何进行处理?【后端八股文一:Redis点赞八股文合集】_java中redis如何实现点赞-CSDN博客

大厂面试官问我:布隆过滤器有不能扩容和删除的缺陷,有没有可以替代的数据结构呢?【后端八股文二:布隆过滤器八股文合集】_布隆过滤器不能扩容-CSDN博客

………

(算法篇)
大厂面试:算法考前必看汇总(全)_大厂面试算法题-CSDN博客

 Boss海投脚本也会继续分享,感兴趣的小伙伴可以给个三连~

914cbb12b2c3492aaa31232a11aa9c64.png

相关推荐

  1. python脚本实战

    2024-07-15 22:54:04       28 阅读
  2. 99个Python脚本实用实例

    2024-07-15 22:54:04       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 22:54:04       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 22:54:04       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 22:54:04       57 阅读
  4. Python语言-面向对象

    2024-07-15 22:54:04       68 阅读

热门阅读

  1. js实现文件的分片上传

    2024-07-15 22:54:04       21 阅读
  2. Linux高级IO流详解

    2024-07-15 22:54:04       20 阅读
  3. 10个使用Numba CUDA进行编程的例子

    2024-07-15 22:54:04       18 阅读
  4. OSINT技术情报精选·2024年7月第2周

    2024-07-15 22:54:04       16 阅读
  5. 第一个AI应用(文心智能体平台)

    2024-07-15 22:54:04       16 阅读
  6. pytorch学习--使用m1 进行训练

    2024-07-15 22:54:04       18 阅读
  7. Halcon与C++之间的数据转换

    2024-07-15 22:54:04       17 阅读
  8. QT 报错C2872: “byte“: 不明确的符号

    2024-07-15 22:54:04       18 阅读
  9. 【linux 100条命令】

    2024-07-15 22:54:04       19 阅读
  10. setContentView 流程

    2024-07-15 22:54:04       22 阅读
  11. HTTP——GET请求

    2024-07-15 22:54:04       22 阅读
  12. linux系统php开机自启动 phpfpm

    2024-07-15 22:54:04       17 阅读