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

news2024/9/21 0:31:27

 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1927909.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

异常、File

异常、File 异常 异常就是代表程序出现的问题 Error:代表的系统级别错误(属于严重问题)。系统一旦出现问题,sun公司会把这些错误封装成Error对象。Error是给sun公司自己用,不是给我们程序员用的。因此我们开发人员不…

SpringCloud--常用组件和服务中心

常用组件 Euroke和nacos 区别 负载均衡 负载均衡策略有哪些 自定义负载均衡策略

AV1 编码标准中帧内预测技术概述

AV1 编码标准帧内预测 AV1(AOMedia Video 1)是一种开源的视频编码格式,旨在提供比现有标准更高的压缩效率和更好的视频质量。在帧内预测方面,AV1相较于其前身VP9和其他编解码标准,如H.264/AVC和H.265/HEVC,…

自建文件分享平台Pingvin Share系统

Pingvin Share可以用来代替 WeTransfer 等的分享网站,如果你有自己的服务器,可以支持通过 Docker 部署或者 Stand-alone 部署。 功能介绍 完全自建:轻松使用私有服务器搭建文件共享平台 完全隐私:你的文件只属于你!不…

相交链表+判断环型链表+求环型链表的入口节点

链表OJ题 一.相交链表二.判断环型链表三.求环型链表的入口节点 一.相交链表 相交链表 相交:两个链表从头开始遍历,尾节点一定是同一个节点。 情况一:当两个链表长度相同时: 情况二:当两个链表长度不同时&#xff1…

【详解】Spring Cloud概述

🎥 个人主页:Dikz12🔥个人专栏:Spring学习之路📕格言:吾愚多不敏,而愿加学欢迎大家👍点赞✍评论⭐收藏 目录 1. 认识微服务 1.1 单体架构 1.2 集群和分布式架构 1.3 集群和分布式…

如何利用windows本机调用Linux服务器,以及如何调用jupyter界面远程操控

其实这篇文章没必要存在,教程太多了 参考博客(1 2 3),如侵删 奈何网上的大神总是会漏掉一些凡人遇到的小问题 (1) 建议下载PuTTy for windows,从而建立与远程服务器的SSH连接 需要确认目标服…

nodejs安装部署运行vue前端项目

文章目录 1.安装nodejs2.安装Vue CLI1.配置npm镜像源:2.安装Vue CLI:3.创建Vue项目4.启动Vue项目5.Express 1.安装nodejs Node.js 是一个免费、开源、跨平台的 JavaScript 运行时环境,它让开发人员能够创建服务器、Web 应用、命令行工具和脚…

【C++PythonJava】字符处理详细解读_字符_ASCLL码_字母数字转换_算法竞赛_开发语言

文章目录 Beginning1)ASCLL 码2)大小比较2)判断数字字符3)字符、数字间的相互转换End Beginning 在 C 中,字符和整数有着密不可分的关系。原因就是在计算机中,字符是以一种较 ASCLL 码的整数存储的。自然&…

SpringSecurity框架【认证】

目录 一. 快速入门 二. 认证 2.1 登陆校验流程 2.2 原理初探 2.3 解决问题 2.3.1 思路分析 2.3.2 准备工作 2.3.3 实现 2.3.3.1 数据库校验用户 2.3.3.2 密码加密存储 2.3.3.3 登录接口 2.3.3.4 认证过滤器 2.3.3.5 退出登录 Spring Security是Spring家族中的一个…

C语言之qsort函数

一、qsort 1.库函数qsort qsort是库函数&#xff0c;直接可以用来排序数据&#xff0c;底层使用的是快速排序。 qsort函数可以排序任意类型的数据。 2.头文件 #include<stdlib.h> 3.参数讲解 void*类型的指针是无具体类型的指针&#xff0c;这种类型的指针的不能直接解…

Still-Moving效果惊艳!无需定制视频数据,DeepMind让文生定制视频变得简单!

文章链接&#xff1a; https://arxiv.org/pdf/2407.08674 github链接&#xff1a; https://still-moving.github.io/ Still-Moving 自定义文本生成图像&#xff08;T2I&#xff09;模型最近取得了巨大进展&#xff0c;尤其是在个性化、风格化和条件生成等领域。然而&#xff0c…

星辰计划02-独特视角的spring动态代理

承接上一文 动态代理 &#xff0c;这里探究spring 动态代理 会话1&#xff1a;spring动态代理 quick start &#x1f467;哥哥&#xff0c;哥哥&#xff0c;spring 怎么去搞动态代理的呢&#x1f468; 来来来&#xff0c;听我细细来说 quick start通过Spring的 ProxyFactory…

学习小记-Nacos的服务注册与发现原理

服务注册&#xff1a; 当一个服务实例启动时&#xff0c;它会向 Nacos 服务器注册自己的信息&#xff0c;包括 IP 地址、端口号、元数据&#xff08;如服务版本、区域信息等&#xff09;。服务实例使用 Nacos API 发送注册请求&#xff0c;Nacos 服务器接收请求并存储服务实例信…

浅聊授权-spring security和oauth2

文章目录 前言自定义授权spring security授权oauth2授权概述 前言 通常说到授权&#xff0c;就会想到登录授权、token令牌、JWT等概念&#xff0c;授权。顾名思义就是服务器授予了客户端访问资源的权益&#xff0c;那么要实现授权有几种方案呢&#xff0c;三种授权方式在公司项…

Python个性化电影推荐系统的设计与实现

&#x1f497;博主介绍&#x1f497;&#xff1a;✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示&#xff1a;文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

客户端通过服务器进行TCP通信(三)

一. 对TCP的基础讲解 服务端 1. 首先创建一个套接字&#xff0c;TCP是面向字节流的套接字&#xff0c;故需要使用SOCK_STREAM 2. 然后使用bind()函数将套接字与服务器地址关联(如果是在本地测试&#xff0c;直接将地址设置为217.0.0.1或者localhost&#xff0c;端口号为1000…

Mac电脑下运行java命令行出现:错误: 找不到或无法加载主类

mac 电脑 问题复现 随手写了一个main方法&#xff0c;想用命令行操作 进入 BlockDemo.java 所在目录&#xff1a; wnwangnandeMBP wn % cd /Users/wn/IdeaProjects/test/JianZhiOffer/src/main/java/com/io/wn wnwangnandeMBP wn % ls -l total 16 -rw-r--r-- 1 wangnan …

前端框架学习之 搭建vue2的环境 书写案例并分析

目录 搭建vue的环境 Hello小案例 分析案例 搭建vue的环境 官方指南假设你已经了解关于HTML CSS 和JavaScript的中级知识 如果你刚开始学习前端开发 将框架作为你的第一步可能不是最好的主意 掌握好基础知识再来吧 之前有其他框架的使用经验会有帮助 但这不是必需的 最…

【JavaScript 算法】二分查找:快速定位目标元素

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 一、算法原理二、算法实现三、应用场景四、优化与扩展五、总结 二分查找&#xff08;Binary Search&#xff09;是一种高效的查找算法&#xff0c;适用于在有序数组中快速定位目标元素。相比于线性查找&#xff0c;二分查找…